2017-07-28 1 views
0

J'ai travaillé avec Jmeter pour tester la charge. Mais maintenant je me concentre sur l'automatisation api. Lire le fichier de CSV pour les points de terminaison et la réponse attendue, seul défi que je suis confronté à savoir comment valider le json basé sur paire de valeur clé, de sorte que je ne peux valider que les données dans lesquelles je suis intéressé et non corps entier .Comment pouvons-nous valider json basé sur la paire de valeur de clé dans Jmeter

en Java utilisant Eclipse nous pouvons le faire en utilisant la méthode ci-dessous:

JSONObject obj1=null,obj2=null; 

     obj1=new JSONObject(actual); 
     obj2=new JSONObject(required); 
    Iterator<?> keys = obj2.keys(); 
    while(keys.hasNext()) { 
     String key = (String)keys.next(); 
     if(obj2.get(key) instanceof JSONArray) 
     { 
      if(!compareJSONArray(obj2.getString(key),obj1.getString(key))) 
      {return false;} 
      status=true; 
     }else if(obj2.get(key) instanceof JSONObject) 
     { 
      if(!compareJSON(obj2.getString(key),obj1.getString(key))) 
      {return false;} 
      status=true;  
     }else{ 
      if(obj2.getString(key).equalsIgnoreCase(obj1.getString(key))) 
        { 

       status=true; 
        } 
      else{ 
       return false; 
      } 

     } 

Comment puis-je faire ce qui suit dans Jmeter. S'il vous plaît Aide

Répondre

2

Vous pouvez utiliser JSON Path Assertion pour valider les réponses JSON en utilisant JSON Path expressions de langage.

JSON chemin Assertion peut être installé à l'aide JMeter Plugins Manager

JMeter JSON Path Assertion via Plugins Manager


Une autre option est d'utiliser JSR223 Assertion et Groovy language. Groovy est presque entièrement compatible Java, vous devriez donc pouvoir réutiliser votre code Java existant. Vous pouvez également savoir que Groovy has built-in JSON support afin que vous puissiez ré-implémenter votre logique de comparaison JSON à l'aide de scripts de style Groovy.

1

JSR223 Sampler vous permettent d'exécuter le langage Java

Vous pouvez mettre votre code dans JSR223 Sampler et utiliser des variables en utilisant: vars.get("VARIABLE_NAME") ou propriétés: props.get("propertyName")

Vous pouvez effectuer résultat en utilisant:

SampleResult.setSuccessful(true/false) 
SampleResult.setResponseCode("code") 
SampleResult.setResponseMessage("message")