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.textresponse._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

回到顶部