7

API を介してテストを呼び出し、

locust -f locustfile.py --host=http://localhost --no-web  --hatch-rate=20 --clients=10000

そして結果が出ました

 Name                                                          # reqs      # fails     Avg     Min     Max  |  Median   req/s
--------------------------------------------------------------------------------------------------------------------------------------------
 POST 8000/queries.json                                           137     0(0.00%)       5       2      23  |       5   11.00

--------------------------------------------------------------------------------------------------------------------------------------------
 Total                                                            708     0(0.00%)    

この結果をファイルに書きたいと思います。誰でもこれで私を助けることができますか?

以下はpythonのコードです

@task(1)
def test_topview(self):
    post_data_topview = """{ "category": "321",   "num": 20,   "genderCat" : ["23"] }"""
    with self.client.request(method="POST", url="http://192.168.1.107:8001/queries.json", headers= {"Content-Type" : "application/json"}, data = post_data_topview, catch_response = True ) as response:
        if not matched(response.content) :
            response.failure("No content")

どうもありがとうございました。

4

5 に答える 5

9

アップデート

このリリースでは、オプションを使用して csv ファイルを保存する機能--csvが追加されました。したがって、次のコマンドを実行して、テストの結果を次のように保存できます。foo_requests.csvfoo_distribution.csv

locust -f locustfile.py --host=http://localhost --no-web  --hatch-rate=20 --clients=10000 --only-summary --csv=foo

バージョン 0.8 未満の場合

Locust の結果を保存するためのコミットがありましたが、まだ Locust にマージされていません。ただし、この commit を使用して手動で更新できます。--statsfile=result.log結果を保存するために新しいパラメータを追加しています。

次に、完全なコマンドは次のようになります

locust -f locustfile.py --host=http://localhost --no-web  --hatch-rate=20 --clients=10000 --only-summary --statsfile=result.log

Locust の更新とログの結果の確認については、この投稿を確認できます。

于 2016-01-11T13:14:54.613 に答える
3

イナゴ統計をファイルに出力しようとしましたが成功しませんでしたが、イベント フックを使用して実行できます: http://docs.locust.io/en/latest/api.html#available-hooks

イベント request_success および request_failure に関数を追加できるため、リクエストが成功または失敗するたびに、リクエスト データをリストまたは任意の変数に取得するためにフック関数が呼び出されます。

次に、たとえばデータをcsvファイルに簡単に印刷できます

それがあなたを助けることを願っています

import locust.events
from locust import HttpLocust, TaskSet


class LocustUser(HttpLocust):
    task_set = TaskSet
    min_wait = 1000
    max_wait = 1000

    request_success_stats = [list()]
    request_fail_stats = [list()]

    def __init__(self):
        locust.events.request_success += self.hook_request_success
        locust.events.request_failure += self.hook_request_fail
        locust.events.quitting += self.hook_locust_quit

    def hook_request_success(self, request_type, name, response_time, response_length):
        self.request_success_stats.append([name, request_type, response_time])

    def hook_request_fail(self, request_type, name, response_time, exception):
        self.request_fail_stats.append([name, request_type, response_time, exception])

    def hook_locust_quit(self):
        self.save_success_stats()

    def save_success_stats(self):
        import csv
        with open('success_req_stats.csv', 'wb') as csv_file:
            writer = csv.writer(csv_file)
            for value in self.request_success_stats:
                writer.writerow(value)
于 2016-08-22T10:34:08.503 に答える