6 locust 检查点
1 检查点
- 接口响应不应该以状态码200为准
- 系统常常自定义 code 字段,code=1 表示成功;code=xx 表示失败
- locust 在请求方法中设置 catch_response = True
- 调用 resp.success() 或 resp.failure() 在结果中标注成功或失败
# 新建任务集 from locust import TaskSet, task, HttpLocust, between class TestLogin(TaskSet): @task def baidu_login(self): url = 'https://www.baidu.com/login' data = { "username": "admin1", "password": "admin123456" } with self.client.post(url=url, # headers=headers, data=data, catch_response=True, # catch_response: 允许该请求被标记为失败 name='01_baidu_login') as resp: # name: 结果收集是会按照 name 进行归类 # 断言 if resp.status_code == 200: if resp.json()['code'] == 1: resp.success() print(resp.json()) else: resp.failure('01_baidu_login failed: code is ' + resp.json()['code']) print(resp.text) else: resp.failure('01_baidu_login failed: status is not 200') print(resp.text) class RunTest(HttpLocust): # 有变化。HttpLocust 改为 HttpUser/FastHttpUser task_set = {TestLogin} # 有变化。task_set 改为 tasks。且值为 dict wait_time = between(0, 0) host = "" if __name__ == '__main__': import os os.system('locust -f ./locustfile2.py --web-host=127.0.0.1 --web-port=9999')