ローカストパフォーマンス-ゼロベースのエントリシリーズ(11)-イベントフックの使用

ローカストは多くのイベントフック(イベントフック)が使用できるように生まれました。前述の記事に加えて、使用できるものがいくつかあります。通常、これらのイベントはLocust環境(Environment)インスタンスにありますが、ご存知のように、locustファイルがロードされたばかりのとき、環境インスタンスはまだ作成されていません。次に、locustファイルで、これらのイベントのオブジェクトに直接アクセスすることもできます。locust.events変数をインポートするだけです。イベントがトリガーされると、イベントのフックメソッドが呼び出され、コールバックメソッドとして理解できます。特定の場合と組み合わせて説明します。

from locust import events,HttpUser,between,task
@events.request_success.add_listener
def process_success_requests(request_type,name,response_time,response_length,**kwargs):
    print('success Type: {}, Name: {}, ResposeTime: {}, Length: {}'.format(request_type,name,response_time,response_length))

class MyUser(HttpUser):
    wait_time = between(2,5)

    @task
    def open_index_page(self):
        self.client.get("http://www.myweb.com:8000/admin/login/?next=/admin/")

上記の場合、簡単にするために、要求を正常に処理するためのイベントフックのみが実装されます。要求が成功すると、GET、POSTなどの要求タイプ、要求されたURL、要求の応答時間、および要求の戻りサイズが出力されます。ローカストファイルが実行された後のコンソール出力は次のとおりです。

Hatching and swarming 1 users at the rate 1 users/s (0 users already running)...
[2020-11-27 08:59:30,215] jasondeMacBook-Pro.local/INFO/locust.runners: All users hatched: MyUser: 1 (0 already running)
success Type: GET, Name: /admin/login/?next=/admin/, ResposeTime: 127.31385231018066, Length: 94929
success Type: GET, Name: /admin/login/?next=/admin/, ResposeTime: 108.82806777954102, Length: 94929
success Type: GET, Name: /admin/login/?next=/admin/, ResposeTime: 103.49106788635254, Length: 94929
success Type: GET, Name: /admin/login/?next=/admin/, ResposeTime: 119.99106407165527, Length: 94929
success Type: GET, Name: /admin/login/?next=/admin/, ResposeTime: 98.76322746276855, Length: 94929
success Type: GET, Name: /admin/login/?next=/admin/, ResposeTime: 104.08234596252441, Length: 94929
success Type: GET, Name: /admin/login/?next=/admin/, ResposeTime: 115.71598052978516, Length: 94929

次に、上記のタイムフックは、次の方法で実装することもできます(つまり、タグを使用する代わりに、変数の割り当てを使用します)
ローカストパフォーマンス-ゼロベースのエントリシリーズ(11)-イベントフックの使用

おすすめ

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