Locust Performance-Zero-basierte Eintragsreihe (10) -Ereignis-Anwendung

In diesem Artikel wird weiterhin über die Anwendung von Heuschrecken auf Ereignisse gesprochen.

Verwendung des Init-Ereignisses

Das Init-Ereignis wird zu Beginn jedes Locust-Prozesses ausgelöst. Dieser Ereignismechanismus ist besonders nützlich für verteilte Testanforderungen. Wir können Init-Ereignisse für jeden Worker-Prozess festlegen. Wenn der Test beispielsweise ausgelöst wird, müssen wir globale Variablen und andere Statuswerte für jeden Worker-Prozess abrufen. Es ist besser, Init-Ereignisse für diese Art von Anforderung zu verwenden. Das Folgende ist aus dem offiziellen Fall angepasst.

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")

Nach dem Ausführen des obigen Codes lauten die Konsolenausgabeinformationen wie folgt, und wir können feststellen, dass der Locust-Prozess, den wir lokal ausführen, ein Worker / Standalone-Knoten ist, was korrekt ist. Da es sich zunächst definitiv nicht um den Masterknoten handelt, sind die Gründe:

1) Wir sind hier kein verteilter Test, Sie können ihn als Einzelmaschinentest verstehen, es handelt sich also nicht um einen Masterknoten.

2) Der Master-Knoten simuliert keine virtuellen Benutzer. Der Hauptknoten wird hauptsächlich verwendet, um zu Beginn des Tests eine Echtzeitdatenanzeige anzuzeigen und die Weboberfläche von locust zu übernehmen.

In den folgenden Kursen wird auch der Inhalt verteilter Tests ausführlich erläutert. Bleiben Sie also auf dem Laufenden.

[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
...

Locust Performance-Zero-basierte Eintragsreihe (10) -Ereignis-Anwendung

Ich denke du magst

Origin blog.51cto.com/13734261/2571559
Empfohlen
Rangfolge