压测工具有很多,以前也接触过不少,今天整理了一下新接触的locust工具。Locust是一个开源负载测试工具。可以定义用户行为,也可以仿真百万个用户。Locust是非常简单易用,分布式,用户负载测试工具。Locust是完全基于时间的,因此单个机器可以支持几千个并发用户。相比其他许多事件驱动的应用,Locust 不使用回调,而是使用轻量级的处理方式 gevent。Gevent 是一个基于 greenlet 的 Python 的并发框架,以微线程 greenlet 为核心,使用了 epoll 事件监听机制以及诸多其他优化而变得高效。本文地址:http://www.04007.cn/article/1236.html,未经许可,不得转载.
Locust原来叫做Locustio,现在安装不能再使用Locustio了,如下:本文地址:http://www.04007.cn/article/1236.html,未经许可,不得转载.
# 安装locustio模块会出现报错,因为已经更名。 [root@test ~] pip install locustio #Locust package has moved from 'locustio' to 'locust'.Please update your reference (or pin your version to 0.14.6 if you dont want to update to 1.0) ERROR: Failed building wheel for locustio ERROR: Could not build wheels for locustio, which is required to install pyproject.toml-based pyproject.toml-based projects # 直接安装 locust [root@test ~] pip install locust Successfully installed ... #会安装很多扩展。写好相对应的脚本,使用locust -f test.py启动后,在浏览器中访问localhost:8099即可打开压测设置界面,里面有三个设置数据了解一下。
Number of users (peak concurrency):用户峰值,即一共启动多少个用户
Spawn rate (users started/second):每秒启动用户数,这个数是让所有用户不要一下全启动,而是陆续启动,一直达到峰值的数据量。
Host:请求的host本文地址:http://www.04007.cn/article/1236.html,未经许可,不得转载.
注意:Number of users并不是并发数,Spawn rate更不是并发数,网上好像误导,经过我多次压测以及数据对比,我认为这里只是用户数,真正的并发数看压测界面上的RPS即每秒的请求数,这个数和Number of users以及脚本中配置的wait_time有关。本文地址:http://www.04007.cn/article/1236.html,未经许可,不得转载.
wait_time:等待时间,是指用户在每个任务执行后等待多少时间,等待时间可以促使性能测试更贴近实际中的场景,单位为秒。例如wait_time = between(2, 5)表示等待2-5秒之间,选择的值是随机的。启动的用户数和随机的请求时间就会随机自动得出RPS,但这样这个RPS不是一个可控的数据,
Locust任务等待wait_time主要有三种方式,分别是constant、between、constant_pacing.
constant(2) # 任务执行完毕等待2秒开始下一任务。
between(1,7) # 任务执行完毕等待1-7秒(中间随机取值)开始下一任务
constant_pacing(2) # 设置任务启动总得等待时间,若任务耗时超过该时间,则任务结束后立即执行下一任务;若任务耗时不超过该时间,则等待达到该时间后执行下一任务。
constant_throughput自适应时间,以确保任务每秒最多运行 X 次。
constant_pacing自适应时间,确保任务(最多)每 X 秒运行一次(它是constant_throughput的数学反转)本文地址:http://www.04007.cn/article/1236.html,未经许可,不得转载.
比如如果你要使用 Locust 实现 200 的并发测试,可以使用 wait_time = constant_throughput(0.1) 和用户总数 2000 搭配使用即可,这样这个RPS就是一个可控的数值。本文地址:http://www.04007.cn/article/1236.html,未经许可,不得转载.
本文地址:http://www.04007.cn/article/1236.html 未经许可,不得转载. 手机访问本页请扫描右下方二维码.
![]() |
![]() |
手机扫码直接打开本页面 |