如何使用带有 locust 的 pythons 请求模块来加载测试一堆 api

Posted

技术标签:

【中文标题】如何使用带有 locust 的 pythons 请求模块来加载测试一堆 api【英文标题】:How can I use pythons request module with locust to load test bunch of apis 【发布时间】:2020-06-22 09:39:02 【问题描述】:

我有一个现有的 api 测试框架,它使用 python3 的 requests 模块。我决定使用locust 模块使用相同的框架对我的api 进行负载测试。据我了解locust 使用自己的客户端进行 api 调用。

有没有办法可以将 pythons requests 模块与 locust 一起使用?这样我就不必再次为蝗虫编写相同的代码(使用它自己的客户端)

请注意,在 gui 和非 gui 模式下,将 requests 模块与 locust 一起使用确实会进行 api 调用,但不会捕获响应时间(进行负载测试时的主要内容)。

【问题讨论】:

【参考方案1】:

我想你误会了,Locust 没有实现自己的 HTTP 客户端。

Locust User 类只是为其他客户端提供了一个包装器,最常用的一个(HttpUser)使用 requests

因此,如果您在 HttpUser 子类中调用(例如)self.client.request("GET", "someurl"),您实际上将调用requests

https://docs.locust.io/en/stable/api.html#httpuser-class

【讨论】:

【参考方案2】:

Locust 是一种包装材料。您可以在 locust 中重用现有的“请求”客户端: https://***.com/a/66270578/10299604

【讨论】:

以上是关于如何使用带有 locust 的 pythons 请求模块来加载测试一堆 api的主要内容,如果未能解决你的问题,请参考以下文章

Locust如何测试物联网MQTT

一日一技:使用 Locust对网络接口进行压力测试

python3.5安装locust遇到的问题总结

python locust 性能测试:locust 关联---提取返回数据并使用

locust使用经验---每个任务使用新的链接以及处理大量TIME_WAIT连接

如何使用优秀的性能测试工具Locust?我们找了大神来做实战演示!忍不住收藏!