1
votes

Gérez les cas négatifs dans JMETER, par exemple ma réponse de sortie attendue est de 400

Comment gérer les cas négatifs dans JMETER, par exemple ma réponse de sortie attendue est de 400 ("Il n'y a pas d'enregistrements") pour une API GET?

Dans JMETER, la réponse est un échec ou un avertissement.

JMeter ne gère-t-il que des scénarios positifs comme pour tout le code de réponse de l'API GET devrait être 200?


0 commentaires

3 Réponses :


0
votes

Vous pouvez ajouter à la requête HTTP Assertion de réponse avec l'état Ignorer coché < / p>

Les réponses HTTP avec des statuts dans les plages 4xx et 5xx sont normalement considérées comme infructueuses. La case à cocher "Ignorer l'état" peut être utilisée pour définir l'état réussi avant d'effectuer d'autres vérifications. Notez que cela aura pour effet d'effacer tout échec d'assertion précédent, alors assurez-vous que cela n'est défini que sur la première assertion.


2 commentaires

Merci pour votre réponse @ user7294900, mais mon doute n'est toujours pas clair, le code de réponse 400 est attendu pour moi, je veux donc être vert, mais comme j'ai compris, l'API n'est affichée qu'en vert lorsque le code d'état est 200 pour l'API GET. J'ai ajouté le statut Ignorer comme 400 est-ce correct?


@AvnishRathore vous pouvez soit ignorer l'état, soit choisir le bouton radio Code de réponse et entrer le modèle à tester comme 400, pour permettre à seulement 400 d'être considéré comme réussi



0
votes
  1. Ajoutez Assertion de réponse en tant qu'enfant de l ' HTTP Request échantillonneur qui renvoie Code d'état HTTP 400
  2. Configurez-le comme suit:

    • Cochez la case Ignorer l'état
    • Définissez "Champ à tester" sur Code de réponse
    • Définissez "Règles de correspondance de modèle" sur Equals
    • Ajoutez 400 en tant que "modèle à tester"

       entrez la description de l'image ici

De cette façon, JMeter passera uniquement si l'échantillonneur de requête HTTP parent renvoie le code d'état 400 , sinon il échouera.


0 commentaires

0
votes

J'ai essayé avec ceci, en ajoutant une assertion BeanShell avec le code suivant.

import org.apache.jmeter.assertions.AssertionResult;
String failureMessage = "";
String ResCode = SampleResult.getResponseCode();
if (!ResCode.equals("400")) {
    failureMessage = "Got Response Code" + ResCode;
    AssertionResult result = new AssertionResult("Expected Response 400");
    result.setFailure(true);
    result.setFailureMessage(failureMessage);
    prev.addAssertionResult(result);
    prev.setSuccessful(false);
    SampleResult.setStartNextThreadLoop(true);
} else {
 //failure criteria
}

entrez la description de l'image ici


0 commentaires