JMeter - comment se connecter à la demande complète pour une réponse échoué?

StackOverflow https://stackoverflow.com/questions/1515689

  •  19-09-2019
  •  | 
  •  

Question

J'utilise la ligne de commande JMeter pour souligner tester notre site Web api. Maintenant, voici un exemple de résultat Je reviens:

Creating summariser <summary>
Created the tree successfully using street_advisor.jmx
Starting the test @ Sat Oct 03 15:22:59 PDT 2009 (1254608579848)
Waiting for possible shutdown message on port 4445
summary +     1 in   0.0s =   37.0/s Avg:    27 Min:    27 Max:    27 Err:     1 (100.00%)
<snip a few more lines>
<then i break it>

Alors je reçois une erreur.

À l'heure actuelle, toutes les erreurs vont dans un fichier. Quand je vérifie ce fichier, il est dit qu'il est un 404. Er .. ok. Y at-il de toute façon je peux voir exactement ce que la demande JMeter a essayé?

Voici un extrait de mon fichier de configuration ...

<ResultCollector guiclass="SimpleDataWriter" testclass="ResultCollector" testname="Error Writer" enabled="true">
          <boolProp name="ResultCollector.error_logging">true</boolProp>
          <objProp>
            <name>saveConfig</name>
            <value class="SampleSaveConfiguration">
              <time>true</time>
              <latency>true</latency>
              <timestamp>false</timestamp>
              <success>true</success>
              <label>true</label>
              <code>true</code>
              <message>true</message>
              <threadName>false</threadName>
              <dataType>true</dataType>
              <encoding>false</encoding>
              <assertions>true</assertions>
              <subresults>true</subresults>
              <responseData>false</responseData>
              <samplerData>false</samplerData>
              <xml>true</xml>
              <fieldNames>false</fieldNames>
              <responseHeaders>true</responseHeaders>
              <requestHeaders>true</requestHeaders>
              <responseDataOnError>false</responseDataOnError>
              <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
              <assertionsResultsToSave>0</assertionsResultsToSave>
              <bytes>true</bytes>
            </value>
          </objProp>
          <stringProp name="filename">./error.jtl</stringProp>
        </ResultCollector>

Maintenant, avant que quelqu'un dit: « Vérifiez les fichiers journaux de serveur Web », je sais que je peux le faire et eh oui, je l'ai trouvé 404 .. mais je suis l'espoir de voir s'il est possible sans les accès .. surtout si ils sont sur un autre serveur et / ou je ne peux pas y avoir accès. S'il vous plaît aider!

Était-ce utile?

La solution

Voir les résultats Arbre composant affiche une arbre de tous les exemples de réponses, vous permettant de visualiser à la fois la demande et la réponse d'un échantillon.

Lors de tests de charge ( Toujours en mode non GUI ), remplir dans le champ "Nom du fichier" et sélectionnez sauvegarder uniquement les réponses dans l'erreur:

 Voir les résultats Arbre dans l'erreur

Comme vous pouvez le voir ci-dessus nous avons cliqué sur Configurer pour sélectionner tous les champs sauf les CSV.

Vous pouvez également enregistrer la réponse entière à un fichier en utilisant Enregistrer les réponses à un fichier :

 Enregistrer les réponses à un fichier

Autres conseils

J'ai trouvé ce fil recherche d'une solution pour connecter la réponse uniquement quand un échantillonneur échoue, si la solution retenue n'est pas bon pour moi. J'ai échecs des échantillons occasionnels à une charge très élevée impliquant des centaines de milliers d'échantillons, donc un écouteur d'arbre est tout à fait impossible pour moi (il atteindra plusieurs giga-octets en taille), alors voici ce que je suis venu avec (ce qui devrait être bon pour le scénario de l'OP ainsi):

Ajouter un [JSR223 Assertion][1] (devrait venir après toutes les autres affirmations) et mettre le code ci-dessous il:

if (Boolean.valueOf(vars.get("DEBUG"))) {
  for (a: SampleResult.getAssertionResults()) {
    if (a.isError() || a.isFailure()) {
      log.error(Thread.currentThread().getName()+": "+SampleLabel+": Assertion failed for response: " + new String((byte[]) ResponseData));
    }
  }
}

Cela entraînera la réponse entière se connecté au fichier journal jmeter ce qui est bien dans mon cas, comme je sais que les réponses sont vraiment petites, mais pour les grandes réponses, pourrait être fait un traitement plus intelligent.

Il y a un « Enregistrer les réponses à un fichier » auditeur, qui peut enregistrer le fichier uniquement en cas d'erreur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top