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

文章目录

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

一、实现步骤

1、创建 任务集 和 任务

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

2、定义用户类

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

二、编写测试脚本

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

python 复制代码
from locust import TaskSet, HttpLocust, task

# 1.定义 任务集 和 任务
class TaskClass(TaskSet):  # TaskClass 表示任务集
    """"定义任务"""

    # 访问首页-任务(会被自动调用)
    @task
    def index(self):
        result = self.client.get("/")     # 此行代码相当于requests.Session().get()
        print("响应结果:", result.text)    # 打印结果


# 2.定义 用户类
class User(HttpLocust):    # 定义用户类,继承了 HttpLocust 类
    # 绑定任务
    task_set = TaskClass   # task_set 属性名不能变; 注意:TaskClass 后,没有 ()

    # 设置 用户间 最小延迟时间 - 单位 ms
    min_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

终端运行命令:

bash 复制代码
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 失败、异常、下载数据

相关推荐
少云清1 天前
【性能测试】14_JMeter _JMeter测试报告
jmeter·性能测试
少云清2 天前
【性能测试】4_JMeter _JMeter使用示例
jmeter·性能测试
少云清2 天前
【性能测试】12_JMeter _JMeter定时器
jmeter·性能测试
少云清2 天前
【性能测试】13_JMeter _JMeter分布式
分布式·jmeter·性能测试
先鱼鲨生3 天前
JMeter工具的使用
测试开发·jmeter·性能测试
少云清3 天前
【性能测试】11_JMeter _JMeter逻辑控制器
jmeter·性能测试
少云清5 天前
【性能测试】9_JMeter _JMeter录制脚本(了解)
jmeter·性能测试
少云清5 天前
【性能测试】8_JMeter _JMeter跨线程组关联
jmeter·性能测试
Wpa.wk6 天前
性能测试 - 搭建线上的性能测试环境参考逻辑图
java·经验分享·测试工具·jmeter·性能测试