Jmeter: à l'aide d'un Beanshell Affirmation de tester une valeur nulle valeur JSON
SI suis en train de tester une valeur JSON qui peut être = null.
J'ai d'abord essayé à l'aide de jp@gc - JSON Chemin Affirmation. mais qui ne semble pas retourner quelque chose ou de définir la variable si elle rencontre une valeur null.
Donc j'essayais de le faire fonctionner comme ceci:
- utilisation jp@gc - JSON Chemin Extracteur pour essayer d'extraire la valeur d'une variable.
- utilisation Beanshell Affirmation de test pour voir si la variable existe ou a une valeur null
- Si la variable n'existe pas, ou n'existe et a une valeur nulle, je sais que la valeur JSON est nulle.
Je n'ai pas écrit les scripts avec Jmeter avant, je dois peut-être faire quelque chose évidemment faux, mais voici ce que j'ai essayé dans le Beanshell Affirmation:
try {
String myValue = vars.get("myValue");
log.info("myValue =" + myValue);
}
catch (e) {
log.info( "caught exception: "+e );
String myValue = null;
}
if (myValue.length() > 0 && myValue != 0 ){
Failure = true;
FailureMessage = "myValue was " + myValue + ".";
}
else{
Failure = false;
}
Pour ce test, une valeur null passe le test.
Le problème, je suis en cours d'exécution en est que le bloc try/catch ne fonctionne pas. Au lieu de cela, je vois le message suivant dans le journal:
jmeter.assertions.BeanShellAssertion: org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval Sourced file: inline evaluation of: ``import org.apache.jmeter.util.JMeterUtils; try { //myValue = JMeterUtils.get . . . '' : Attempt to resolve method: length() on undefined variable or class name: myValue
Quelqu'un peut me dire ce que je fais mal et/ou comment obtenir ce test de nulle valeur JSON pour travailler?
- Pouvez-vous montrer la réponse du serveur?
Vous devez vous connecter pour publier un commentaire.
Vous aurez besoin de modifier votre code.
myValue
chaîne n'est pas défini, vous devez le rendre plus "global"De corriger le code sera aussi simple comme suit:
Il y a beaucoup de mauvaises choses dans ce code;
myValue
. C'est parce qu'il est défini dans le bloc try-catch. Pour corriger, vous devez déclarerString myValue
avant le bloc try-catch. Mais...vars
ne jeter aucune Exception, mais retourne null quand la clé n'existe pas.myValue
n'est pas null, utilisezmyValue != null
.Voici le code mis à jour:
http://jmeter-plugins.org/wiki/JSONPathAssertion/
Depuis la v. 1.2.1 de jp@gc - JSON Chemin Affirmation, il est possible de valider la contre valeur null. Ce n'est pas une version stable au moment de la rédaction de ce commentaire, bien que.
Il peut être téléchargé à partir d'ici: http://jmeter-plugins.org/downloads/all/#Developer-Snapshots