1
votes

Les minuteries JMeter démarrent-elles après une demande de retour? Sinon, où est-ce dans la documentation?

La documentation JMeter dans 3.4 Timers ne définissez pas le début et la fin de chaque minuterie:

Si vous choisissez d'ajouter plusieurs minuteries à un groupe de threads, JMeter prend la somme des minuteries et met en pause pendant ce laps de temps avant d'exécuter les échantillonneurs auxquels les minuteries s'appliquent.

Dans cette description, il n'est pas clair si un minuteur démarre au moment où une demande d'échantillonnage est déclenchée ou si un minuteur démarre au moment où une demande d'échantillonneur revient avec la réponse.

La documentation Apache JMeter pour Constant Timer définit un Constant Timer comme étant :

Si vous souhaitez que chaque thread soit suspendu pendant le même laps de temps entre les requêtes, utilisez ce minuteur.

Cela aussi laisse une ambiguïté sur ce que signifie "entre les requêtes" - se situe entre le début des requêtes, ou entre la fin d'une requête et le début de la suivante?

Lors de la lecture de un article moyen Test de performance avec un temps de réflexion , l'auteur Malith Jayasinghe définit temps de réflexion comme étant:

... le «temps de réflexion» joue un rôle important lors des tests de performance. Il est défini comme le temps entre l'achèvement d'une demande et le début de la demande suivante.

Ceci est d'une manière rafraîchissante spécifique quant à la définition du temps de réflexion, mais je ne trouve aucune preuve que c'est ainsi que JMeter fonctionne dans la documentation.

Où sont les documents faisant autorité sur le point de savoir si le temps de réflexion / temps d'attente commence à partir du moment où une requête est déclenchée ou s'il commence à partir du moment où une requête est renvoyée?


0 commentaires

3 Réponses :


2
votes

Comme le dit la documentation sur JMeter Timers :

Un minuteur fera retarder JMeter d'un certain temps avant chaque échantillonneur qui est dans son champ d'application.

Donc, si vous ajoutez un minuteur à l'échantillonneur, JMeter attendra avant de démarrer cet échantillonneur.
Si vous ajoutez un minuteur dans le même scope avec un groupe d'échantillonneurs - JMeter attendra temps spécifié avant chaque échantillonneur.

Notez également:

Par défaut, un thread JMeter exécute les échantillonneurs en séquence sans pause.


1 commentaires

Merci pour les citations - je pense que vous êtes sur quelque chose ici; par défaut, un thread exécute les échantillonneurs sans pause, et l'ajout d'un minuteur ajoute juste un peu de temps avant chaque échantillonneur sans penser au temps de requête. Cela semble être une façon vraiment obscure de signaler des informations importantes, alors j'attendrai quelques jours pour voir si quelqu'un indique une réponse plus précise et pourtant définitive dans la documentation jMeter.



0
votes

Si vous souhaitez régler le minuteur ou attendre le thread après la réponse, ajoutez BeanShell PostProcessor et ajoutez Thread.sleep(5000);

Cela attendra le fil de discussion suivant pendant 5 secondes après avoir obtenu la réponse de celui en cours.


0 commentaires

1
votes

Pour y répondre officiellement, vous devriez consulter l ' Ordre d'exécution de JMeter

0 éléments de configuration

1 pré-processeurs

2 minuteries

3 Échantillonneur ...

Remarque Les minuteries sont exécutées / retardées avant de manipuler l'échantillonneur actuel

Ce qui signifie que le délai du minuteur est avant le démarrage de l'échantillonneur

Vous pouvez également jeter un coup d'œil à un exemple de code JMeter pour voir le retard se produit avant de manipuler l'exemple

delay(pack.getTimers());
    SampleResult result = null;
    if (running) {
        Sampler sampler = pack.getSampler();
        result = doSampling(threadContext, sampler);


0 commentaires