如何在蝗虫中为单个请求的响应时间编写事件挂钩

剑圣17

我打算使用蝗虫测试我的Web服务器的性能,以下代码的问题是,它只给了我平均时间

我的基本代码如下

from locust import HttpLocust, TaskSet, task, events, web
def index(l):
        l.client.get("/")

def stats(l):
        l.client.get("/stats/requests")

class MyTaskSet(TaskSet):
       tasks = [index,stats]

class MyLocust(HttpLocust):
    host = "http://127.0.0.1:8089"
    min_wait = 2000
    max_wait = 5000
    task_set = MyTaskSet
    request_success_stats = [list()]
    request_fail_stats = [list()]

    def __init__(self):
        super(MyLocust, self).__init__()
        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, response_length])

    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)
剑圣17

这是在测量实际的响应时间。

这里的要点是,如果有效载荷具有多个URI,则将记录每个URI的响应时间,必须对它们进行排序/在记录结果时删除重复项

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章