Я не уверен, что это самый простой способ, но вы можете использовать механизм перехвата событий саранчи .
Давайте запустим в командной строке Python встроенный http-сервер:
python -m http.server
и создайте файл example.py
с таким содержанием:
#!/usr/bin/env python
from locust import HttpLocust, TaskSet, task, events
class UserBehavior(TaskSet):
""" Defines user behaviour in traffic simulation """
@task()
def index(self):
self.client.get("/")
class WebsiteUser(HttpLocust):
""" Defines user that will be used in traffic simulation """
task_set = UserBehavior
min_wait = 3000
max_wait = 5000
def setup(self):
self.file = open('stats.csv', 'w')
events.request_success += self.hook_request_success
def teardown(self):
self.file.close()
# hook that is fired each time the request ends up with success
def hook_request_success(self, request_type, name, response_time, response_length, **kw):
self.file.write(request_type + ";" + name + ";" + str(response_time) + ";" + str(response_length) + "\n")
Теперь в той же папке, где живет example.py
, запустите из командной строки:
locust -f example.py --no-web -c 10 -r 1 --host=http://localhost:8000
Если вы остановите его через некоторое время, вы найдете в файле stats.csv
сведения о каждом успешном запросе.