locust压测使用介绍及需要token验证信息接口压测

启动运行locust

  1. 方法一:启动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“”后你就可以开始压测你想压测的服务了

  2. 方法二:通过DOS命令输入测试参数及运行命令

    1. 启动测试: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 设置运行时间)

    2. 查看报告:测试结束后,进入Scripts目录下会生成以onetest文件名开头的.csv测试报告

locust 测试结果的字段分析

在这里插入图片描述

  1. Type:请求类型,即接口的请求方法;
  2. Name:请求路径;
  3. requests:当前已完成的请求数量;
  4. fails:当前失败的数量;
  5. Median:响应时间的中间值,即50%的响应时间在这个数值范围内,单位为毫秒;
  6. Average:平均响应时间,单位为毫秒;
  7. Min:最小响应时间,单位为毫秒;
  8. Max:最大响应时间,单位为毫秒;
  9. Content Size:所有请求的数据量,单位为字节;
  10. 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验证信息的接口即可进行压测

猜你喜欢

转载自blog.csdn.net/zhuan_long/article/details/111194828