【发布时间】:2020-06-11 11:06:55
【问题描述】:
我开始使用 LocustIO 对 3rd 方 API 进行负载测试,该 API 提供了一种执行批处理请求的方法 (http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_BatchRequests)。
如何使用 LocustIO 做到这一点?
我尝试了以下方法:
def batch(self):
response = self.client.request(method="POST", url="/$batch", auth=("ABC", "DEF"), headers={"ContentType": "multipart/mixed; boundary=batch_36522ad7-fc75-4b56-8c71-56071383e77b"}, data="Content-Type: application/http\nContent-Transfer-Encoding: binary\n\nGET putyoururlhere HTTP/1.1\nAccept: application/json\n\n\n")
Auth 是我需要对 API 进行身份验证的东西,但这不是问题的重点,“putyoururlhere”应该替换为实际的 url。无论哪种方式,它在执行测试时都会出错,所以我一定做错了什么。
有经验的人怎么做?
亲切的问候!
【问题讨论】:
-
嗨!你得到什么错误?你能用 Locust 以外的东西来做请求吗?
-
请求本身使用 .NET 但使用 LocustIO 客户端库,请求本身会导致“错误请求”,我猜它与请求正文的构造方式有关.将正文发送到批处理请求意味着将 HTTP 协议、新行添加到 1 个字符串等中,但我不确定如何使用 self.client.request() 在一行中执行此操作。我想也许 \n 作为换行符,但不确定。我主要是 .NET/javascript 开发人员和 Python 新手,所以我可能会遗漏一些简单的东西......
-
哦,我现在明白了..