response.status_code是200,但response.content是空
我与蝗虫工作负载测试了几个API的,下面就是蝗虫文件(locustfile.py)看起来像:response.status_code是200,但response.content是空
class MyTests(TaskSet): def on_start(self):
print("Starting tests")
def get_something(self):
with self.client.get("some_baseuri" + "some_basepath", catch_response=True) as response:
print("Response code: {}".format(response.status_code))
print("Response body: {}".format(response.content))
@task(1)
def my_task(self):
self.get_something()
class WebsiteUser(HttpLocust):
task_set = MyTests
这里的我怎么触发我的测试:
locust -f locustfile.py --no-web --clients=1 --hatch-rate=10 --host=http://127.0.0.1 --num-request=2 --print-stats --only-summary
的问题是,在日志中,response.status_code
打印为200,但response.content
恰好是空的。当我使用Postman命中相同的API时,我会在预期的响应中看到正确的响应主体。这看起来像一个奇怪的问题,阻止我调用另一个依赖于get_something()
方法的API,因为其他API将get_something()
方法中的某些数据用作输入。
回答:
response.text
或response._content
而不是response.content
工作。
回答:
Locust的默认HTTP客户端是请求。
的要求为您提供了多种方法访问响应内容:
- 的内容以纯文本格式的解码,使用
response.text
- 的内容为JSON解码,使用
response.json()
- 用于访问内容二进制数据,使用
response.content
- 为原始插座响应,请使用
response.raw
这在“请求”文档的“响应内容”部分详细解释:http://docs.python-requests.org/en/master/user/quickstart/#response-content
以上是 response.status_code是200,但response.content是空 的全部内容, 来源链接: utcz.com/qa/261150.html