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')

 

posted @ 2021-01-27 16:52  栗子测试开发  阅读(151)  评论(0)    收藏  举报