启动运行locust
-
方法一:启动web,通过web端进行参数设置
1)dos进入Scripts目录下,执行 locust -f ****.py --host=http://0.0.0.0:0000 (PS:-f后面加需要执行的.py文件名字 --host测试的http服务的ip和port)
2)打开浏览器,如果是本机访问则输入http://localhost:8089/ 如下图 (PS:Number of users to simulate:设置模拟的用户总数,Hatch rate (users spawned/second):每秒启动的虚拟用户数 ,Start swarming:执行locust脚本)
第一个输入框:想并发的人数
第二个输入框:虚拟用户初始化的比例
比如下图中的意思就是想测试1000个虚拟用户对系统的压测,刚开始的时候是以10人/秒的速度开始递增到1000
点击“”Start Swarming“”后你就可以开始压测你想压测的服务了
-
方法二:通过DOS命令输入测试参数及运行命令
-
启动测试:dos进入Scripts目录下,执行 locust -f ****.py --csv=onetest --host=http://0.0.0.0:0000 --no-web -c10 -r10 -t2 (PS:-f 指定运行的py文件的名字,–csv 生成报告的名字,–host 测试的http服务的ip和port,–no-web 不用web启动,-c 设置虚拟用户数, -r 设置每秒启动虚拟用户数, -t 设置运行时间)
-
查看报告:测试结束后,进入Scripts目录下会生成以onetest文件名开头的.csv测试报告
-
locust 测试结果的字段分析
- Type:请求类型,即接口的请求方法;
- Name:请求路径;
- requests:当前已完成的请求数量;
- fails:当前失败的数量;
- Median:响应时间的中间值,即50%的响应时间在这个数值范围内,单位为毫秒;
- Average:平均响应时间,单位为毫秒;
- Min:最小响应时间,单位为毫秒;
- Max:最大响应时间,单位为毫秒;
- Content Size:所有请求的数据量,单位为字节;
- reqs/sec:每秒钟处理请求的数量,即QPS;
locust 做token校验类型接口性能测试
#coding=utf-8
import csv,os,time
from locust import HttpUser,TaskSet,task
class OrderDetails(TaskSet):
@task
def Login(self):
LoginData = {
"username": "15650199152", "password": '111111'}
response = self.client.post("/api/v4/user/login", data=LoginData).text
#print(response)
self.dic = {
}
self.dic = eval(response)
#print("self.dic =",self.dic)
@task
def Paycheck(self):
PaycheckHeaders = {
"token": self.dic["data"],
"x-client-hash": "kJVQzkkJ2metJnt8EZZJdm5jGgMhDM7uPyIx9Pkn",
"x-csrf-token": "3VSFMIP1vhIG7DyMCnRhUWwZ6zrEmbRq3jKS3o0w",
"x-requested-with": "XMLHttpRequest"}
PaycheckData = {
"order_sn":"1004202012151003065921"}
PaycheckResponse = self.client.post("/api/v4/trade/paycheck",data = PaycheckData,headers = PaycheckHeaders).text
#print(PaycheckResponse)
class WebSiteUser(HttpUser):
host = "https://XXX.XXX.XXX" # 压测域名
tasks = [OrderDetails]
min_wait = 2000
max_wait = 5000
如上方代码,先调用登录接口获取从返回值中获取token,之后将token信息传入下一个接口,需要token验证信息的接口即可进行压测