# -*-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