如何使用带有 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的主要内容,如果未能解决你的问题,请参考以下文章
python locust 性能测试:locust 关联---提取返回数据并使用