Locust


#  -*-coding:utf-8 -*-
# Author : ppp
# Data : 2021/11/27,13:57
# 项目:ppp_test
# 文件名 :Locust3
from locust import HttpUser, SequentialTaskSet, task, between
# 定义用户行为类
class UserBehavior(SequentialTaskSet):
    # 脚本开始前执行
    def on_start(self):
        print('开始***')
    # 脚本结束后执行
    def on_stop(self):
        print('结束***')
    @task(1)  # 任务项2,这里面数字越大,执行权重比越高,不设置默认1
    def login_(self):
        url = 'https://###'  # 接口请求的URL地址
        # 定义请求头为类变量,这样其他任务也可以调用该变量
        self.headers = {"Content-Type": "application/json"}
        self.username = "admin"
        self.pwd = '123456'
        data = {"username": self.username, "password": self.pwd}
        with self.client.post(url,
                              json=data,
                              headers=self.headers,
                              catch_response=True) as rsp:
            # self.token = rsp.json()['token']
            if rsp.status_code == 200:
                print(rsp.text)
            else:
                rsp.failure('admin登录 接口失败!')
    @task(1)  # 任务项1
    def select_(self):
        url = '/test1'  # 接口请求的URL地址
        # 引用上一个任务的 类变量值   实现参数关联
        # headers = {"Token": self.token}
        # 使用self.client发起请求,请求的方法 选择 get
        with self.client.get(url, catch_response=True) as rsp:
            if rsp.status_code == 200:
                print(rsp.text)
            else:
                rsp.failure('getuser_ 接口失败!')
class WebsiteUser(HttpUser):
    tasks = [UserBehavior]
    wait_time = between(0.5, 1)  # 执行事务的暂停时间下限和上限

if __name__ == '__main__':
    import os
    os.system("locust -f locust3.py --host=https://###")
    # -f指定文件
    # --host指定被测的url