当前位置: 首页 > news >正文

【性能测试】2_Locust _Locust基本使用

文章目录

  • 一、实现步骤
  • 二、编写测试脚本
  • 三、运行Locust
    • 3.1 打开Locust的web界面
    • 3.2 效果展示
      • 3.2.1 Statistics统计报表
      • 3.2.2 Charts图表展示
      • 3.2.3 失败、异常、下载数据

一、实现步骤

1、创建 任务集 和 任务

  • 定义任务类,从 TaskSet 继承
  • 在类内添加任务,@task 任务的具体实现与定义方法语法一致

2、定义用户类

  • 绑定任务 task_set = 任务类类名
  • 设置用户间的最小延迟时间 min_wait =
  • 设置用户间的最大延迟时间 max_wait =
  • 指定主机地址 host =
1、定义任务和任务集(定义一个事务,事务中包含多个接口请求) 2、定义用户类(线程组 用户,控制事务执行)

二、编写测试脚本

需求:访问 https://www.baidu.com 模拟100人访问

fromlocustimportTaskSet,HttpLocust,task# 1.定义 任务集 和 任务classTaskClass(TaskSet):# TaskClass 表示任务集""""定义任务"""# 访问首页-任务(会被自动调用)@taskdefindex(self):result=self.client.get("/")# 此行代码相当于requests.Session().get()print("响应结果:",result.text)# 打印结果# 2.定义 用户类classUser(HttpLocust):# 定义用户类,继承了 HttpLocust 类# 绑定任务task_set=TaskClass# task_set 属性名不能变; 注意:TaskClass 后,没有 ()# 设置 用户间 最小延迟时间 - 单位 msmin_wait=1000# 设置 用户间 最大延迟时间max_wait=3000# 指定 主机地址host="https://www.baidu.com"
  • 自定义的User类继承了 HttpLocust 类, 这个类代表用户, 生成一个实例, 模拟用户发送http请求

  • task_set: 该属性指向 TaskSet 类, 定义用户的行为

  • min_wait: 用户执行任务之间等待时间的下界, 单位: 毫秒, 默认值: 1000

  • max_wait: 用户执行任务之间等待时间的上界, 单位: 毫秒, 默认值: 1000

  • host: 被测应用的网址, 例如: http://www.baidu.com

  • weight: 用户被选中的概率, 权重越大, 被选中的机会就越大。 默认值: 10 。

    权重——当有多个用户类(线程组)来执行时,通过这个权重来控制不同用户类之间的请求数比例

三、运行Locust

终端运行命令:

locust -f .\LocustTest\1.py ____________________________________________________________ 参数介绍: -f:用来指定locust文件所在路径 --host:用来指定测试应用的网址 locust -f .\LocustTest\1.py --host=http://example.com

3.1 打开Locust的web界面

使用上面的命令行启动Locust之后, 打开浏览器并访问: http://localhost:8089 (如果你在本地运行Locust)。 可以看到如下界面

参数说明:

  • Number of users to simulate: 要模拟的用户数量
  • Hatch rate (users spawned/second): 孵化率(用户生成/秒), 即每秒启动虚拟用户数
  • 点击Start swarming 开始运行性能测试

3.2 效果展示

3.2.1 Statistics统计报表

设置虚拟用户数100, 每秒启动10个用户, 点击Start swarming 开始运行

界面说明:

  • Type: 请求类型
  • Name: 请求路径
  • Requests: 当前请求的数量
  • Fails: 当前请求失败的数量
  • Median (ms): 中间值, 单位毫秒, 一半服务器响应时间低于该值, 而另一半高于该值
  • Average (ms): 所有请求的平均响应时间, 毫秒
  • Min (ms): 请求的最小的服务器响应时间, 毫秒
  • Max (ms): 请求的最大服务器响应时间, 毫秒
  • Average size (bytes): 平均单个请求的大小, 单位字节
  • Current RPS: 每秒钟请求的个数
  • 点击Edit可以编辑请求用户数
  • 点击STOP按钮可以停止测试
  • 点击New test可以重新开始测试

3.2.2 Charts图表展示

三个图标分别是:

  • Total Requests per Second: 每秒发送请求数
  • Response Times(ms): 平均响应时间
  • Number of Users: 虚拟用户数

3.2.3 失败、异常、下载数据

http://www.jsqmd.com/news/285405/

相关文章:

  • 【CDA干货】财务分析一定要学会的2个模型:杜邦分析法+UE模型
  • 漏打卡、迟到早退、旷工:制造业工厂异常考勤闭环怎么做
  • 【CDA干货】新手必需掌握的4个业务指标,分析决策不跑偏
  • java_ssm60沧州雄狮足球俱乐部管理系统
  • No131:AI中国故事-对话荀子——性恶论与AI约束:礼法并用、化性起伪与算法治理
  • 异常、崩溃、复位过程详解
  • java_ssm61派斯学院高校教材管理系统
  • sql 性能调优
  • java_ssm62海洋馆水族馆管理系统
  • 学长亲荐10个AI论文网站,MBA论文写作必备!
  • AI应用架构演进:从信息顾问到智能执行者的实战指南
  • java_ssm63牙科诊所项目预约管理系统
  • MySQL 数据库管理入门:从创建到删除(T1) - 详解
  • java_ssm64电子病历系统_r4pwo
  • 终极对决:中网、麦肯锡、华与华,谁才是中国B2B企业转型的最强引擎?
  • java_ssm56校园电动车租赁管理系统
  • B2B品牌资产数字化:盘点那些能让技术积淀转化为溢价能力的战略伙伴
  • java_ssm57校园零食商城网络购物平台
  • VS Code常用插件汇总
  • 新能源赛道超车必看:谁是助力工业巨头卡位高价值产业链环节的实战派?
  • 技术演进中的构建沉思-259 Ajax:浏览器历史管理
  • java_ssm58模型玩具商城交易平台
  • SSD的**数据驻留与自刷新机制**,
  • 未来五年企业认准的证书,持证人薪资涨幅有多少?
  • java_ssm55校园奶茶饮品点单系统网络销售平台
  • 两个有序集合
  • ArcGIS大师之路500技---064通过字段计算器获得要素几何属性
  • 告别听歌枷锁 R3PLAY + cpolar 实现真正的听歌自由
  • ArcGIS大师之路500技---065shp文件形状数与表记录数不一致的修复方法
  • rust语言lint工具