ローカストパフォーマンス-ゼロベースのエントリーシリーズ(10)-イベントアプリケーション

この記事では、イベントへのイナゴの適用について引き続き説明します。

initイベントの使用法

initイベントは、各Locustプロセスの開始時にトリガーされます。このイベントメカニズムは、分散テスト要件に特に役立ちます。ワーカープロセスごとにinitイベントを設定できます。たとえば、テストがトリガーされたときに、ワーカープロセスごとにグローバル変数やその他の状態値を取得する必要があります。この種の要件にはinitイベントを使用する方が適切です。以下は公式の事例から引用したものです。

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

上記のコードを実行した後、コンソールの出力情報は次のようになり、ローカルで実行しているローカストプロセスはワーカー/スタンドアロンノードであることがわかります。これは正しいです。最初は間違いなくマスターノードではないため、理由は次のとおりです。

1)ここでは分散テストではありません。単一のマシンテストとして理解できるため、マスターノードではありません。

2)マスターノードは仮想ユーザーをシミュレートしません。マスターノードは主に、テストの開始時にリアルタイムのデータ表示を表示し、イナゴのWebインターフェイスを実行するために使用されます。

以降の一連のコースでは、分散テストの内容についても詳しく説明しますので、ご期待ください。

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

ローカストパフォーマンス-ゼロベースのエントリーシリーズ(10)-イベントアプリケーション

おすすめ

転載: blog.51cto.com/13734261/2571559