Série d'entrée basée sur zéro performance acridienne (10) - application d'événement

Cet article continue de parler de l'application des criquets sur les événements.

Utilisation de l'événement init

L'événement init est déclenché au début de chaque processus Locust. Ce mécanisme d'événement est particulièrement utile pour les exigences de test distribuées. Nous pouvons définir des événements d'initialisation pour chaque processus de travail. Par exemple, lorsque le test est déclenché, nous devons extraire des variables globales et d'autres valeurs d'état pour chaque processus de travail. Il est plus approprié d'utiliser des événements d'initialisation pour ce type d'exigence. Ce qui suit est adapté du cas officiel.

from locust import events,between,User,task
from locust.runners import MasterRunner

class MyUser(User):
    wait_time = between(5,8)

    @events.init.add_listener
    def on_locust_init(environment,**kwargs):
        if isinstance(environment.runner,MasterRunner):
            print("I'm on master node")
        else:
            print("I'm on a worker or standalone node")

    @task
    def task_1(self):
        print("it is task1")

    @task
    def task_2(self):
        print("it is task2")

Après avoir exécuté le code ci-dessus, les informations de sortie de la console sont les suivantes, et nous pouvons constater que le processus de locust que nous exécutons localement est un nœud worker / autonome, ce qui est correct. Comme ce n'est certainement pas le nœud maître au début, les raisons sont:

1) Nous ne sommes pas un test distribué ici, vous pouvez le comprendre comme un test de machine unique, donc ce n'est pas un nœud maître.

2) Le nœud maître ne simulera aucun utilisateur virtuel. Le nœud maître est principalement utilisé pour afficher l'affichage des données en temps réel au début du test et pour entreprendre l'interface Web de criquets.

La série de cours suivante expliquera également en détail le contenu des tests distribués, alors restez à l'écoute.

[2020-11-26 09:06:41,135] jasondeMacBook-Pro.local/INFO/locust.main: Starting web interface at http://:8089
I'm on a worker or standalone node
[2020-11-26 09:06:41,144] jasondeMacBook-Pro.local/INFO/locust.main: Starting Locust 1.1.1
[2020-11-26 09:06:47,454] jasondeMacBook-Pro.local/INFO/locust.runners: Hatching and swarming 1 users at the rate 1 users/s (0 users already running)...
[2020-11-26 09:06:47,454] jasondeMacBook-Pro.local/INFO/locust.runners: All users hatched: MyUser: 1 (0 already running)
it is task1
it is task2
it is task1
it is task1
it is task2
it is task1
...

Série d'entrée basée sur zéro performance acridienne (10) - application d'événement

Je suppose que tu aimes

Origine blog.51cto.com/13734261/2571559
conseillé
Classement