失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 性能测试Locust--(7)使用更快的HTTP client提高Locust性能

性能测试Locust--(7)使用更快的HTTP client提高Locust性能

时间:2021-05-24 18:55:21

相关推荐

性能测试Locust--(7)使用更快的HTTP client提高Locust性能

Locust默认的HTTP客户端使用python-requests。因为requests是一个维护良好的python程序包,它提供了许多python开发人员都熟悉的优质API。因此,在许多情况下,建议使用使用请求的默认HttpLocust

但是,如果计划运行大规模的测试,Locust提供了一个替代的HTTP 客户端FastHttpLocust,它使用geventhttpclient而不是requests。

该客户端的速度明显提高,其性能是HTTP-requests的5 ~ 6倍。这并不一定意味着每个CPU内核可以模拟的用户数量将自动增加5 ~ 6倍,因为这还取决于负载测试脚本。

总之,如果你的Locust脚本在执行HTTP-requests时花费了大量的CPU时间,那么你可能会看到显著的性能提升。

如何使用FastHttpLocust

代替HttpLocust的子类是FastHttpLocust:

from locust import TaskSet, task, betweenfrom locust.contrib.fasthttp import FastHttpLocustclass MyTaskSet(TaskSet):@taskdef index(self):response = self.client.get("/")class MyLocust(FastHttpLocust):task_set = MyTaskSetwait_time = between(1, 60)

注意

与默认python-requests的HttpLocust相比,FastHttpLocust使用一个完全不同的API实现另一个HTTP client 。因此,取决于如何使用HttpClient,FastHttpLocust可能无法替代HttpLocust。

在FastHttpLocust的客户端实现中,SSL域名检查被关闭。因此,它将允许通过无效的SSL证书而不会产生任何问题。

API

FastHttpSession类

classFastHttpSession(base_url, **kwargs)

request(method, path, name=None, data=None, catch_response=False, stream=False, headers=None, auth=None, **kwargs)

发送HTTP请求并返回

locust.contrib.fasthttp.FastResponse对象.

Parameters:

method --创建新Request对象方法。path --Path将与已指定的base host URL连接。也可以是完整URL,在这种情况下,将请求完整URL,并且忽略host。name --可选,在Locust的统计信息中可以指定一个参数作为标签,而不是URL路径。这可用于将请求的不同URL分组到Locust的统计信息中的单个条目中。catch-response --可选,Boolean,如果设置了Boolean参数,可用于使请求返回上下文管理器,以用作with语句的参数。即使响应代码正常(2xx),也可以根据响应的内容将请求标记为失败。

反之亦然,即使没有响应代码(即500或404),也可以使用catch_response来捕获请求,然后将其标记为成功。data – 可选,请求体-body, Dict或bytesheaders – 可选,请求头,Dictauth – 可选,验证(用户名,密码)元组,以启用基本HTTP验证。stream – 可选,如果设置为true,则不会立即使用响应主体,而是可以通过访问Response对象上的stream属性来使用它。

将流设置为True的另一个作用是:不会将下载响应内容的时间记录到Locust报告中的请求时间。

classFastResponse(ghc_response, request=None, sent_request=None)

content

Unzips, 如有必要,并缓冲接收到的Body. 小心大文件!

headers= None

类似于Dict的对象,包含响应标头

text

以解码字符串的形式返回响应的文本内容(python2上的unicode)

如果觉得《性能测试Locust--(7)使用更快的HTTP client提高Locust性能》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。