深度解刨性能测试工具Locust

An open source load testing tool.

一个开源性能测试工具。

define user behaviour with python code, and swarm your system with millions of simultaneous users.

使用Python代码来定义用户行为。用它可以模拟百万计的并发用户访问你的系统。

如果你常关注我的博客,大概会注意到我有三、四年没有写过关于性能测试的文章了,其实,今年也没更新几篇像样的博客,反而是我最忙的一年,原因是在写一本关于接口自动化的书。

回到主题,为何突然关注性能测试工具?其实,我只是单纯对Locust工具本身感兴趣而已。1、它与目前主流的LoadRunner和Jmeter玩法都不一样。2、它完全基于Python开发,用Python来编写用户行为。

嗯,如果想用好它的话,你必须对Web开发有一定的认识。而且还要熟悉Python开发。

官方网站:Locust - A modern load testing framework

Locust安装

1、安装Python:

官方:Welcome to Python.org

安装Python2 或Python3

2、安装Locuse

2.1, 通过pip命令安装 /> pip install locustio

2.2, 通过GitHub上克隆项目安装(Python3推荐):https://github.com/locustio/locust

3、安装 pyzmq

If you intend to run Locust distributed across multiple processes/machines, we recommend you to also install pyzmq.

如果你打算运行Locust 分布在多个进程/机器,我们建议你也安装pyzmq.

通过pip命令安装。 /> pip install pyzmq

4、安装成功,CMD敲入命令验证。 /> locust --help

编写简单的性能测试脚本

创建load_test.py文件,通过Python编写性能测试脚本。

python 复制代码
from locust import HttpLocust, TaskSet, task
 
class UserBehavior(TaskSet):
 
    @task(1)
    def baidu(self):
        self.client.get("/")
 
 
 
class WebsiteUser(HttpLocust):
    task_set = UserBehavior
    min_wait = 3000
    max_wait = 6000

创建UserBehavior()类继承TaskSet类,为用户行为。

创建baidu() 方法表示一个行为,访问百度首页。用@task() 装饰该方法为一个任务。1表示一个Locust实例被挑选执行的权重,数值越大,执行频率越高。在当前UserBehavior()行为下只有一个baidu()任务,所以,这里的权重设置为几,并无影响。

WebsiteUser()类用于设置性能测试。

task_set :指向一个定义了的用户行为类。

min_wait :用户执行任务之间等待时间的下界,单位:毫秒。

max_wait :用户执行任务之间等待时间的上界,单位:毫秒。

运行性能测试

切换到性能测试脚本所在的目录,启动性能测试:


.../> locust -f load_test.py --host=https://www.baidu.com

2016-11-19 22:38:16,967\] fnngj-PC/INFO/locust.main: Starting web monitor at \*:8089 \[2016-11-19 22:38:16,967\] fnngj-PC/INFO/locust.main: Starting Locust 0.7.5 ----------------------------------------------------------------- load_test.py 为测试脚本,https://www.baidu.com 为测试的网站。 打开浏览器访问:http://127.0.0.1:8089 ![](https://file.jishuzhan.net/article/1729561854335782913/abd503be394249ca13cbe3be6826fa37.webp)   Number of users to simulate 设置模拟用户数   Hatch rate (users spawned/second) 孵化率?不知道怎么翻译,每秒产生(启动)的用户数。   点击Start swarming 开始运行性能测试。 ![](https://file.jishuzhan.net/article/1729561854335782913/a2d9f40ffddf8c5caf29c507edee09f0.webp)  如果引起了你的兴趣,剩下的你自个玩吧!难点在性能测试脚本的编写上。 **最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:** ![](https://file.jishuzhan.net/article/1729561854335782913/1a23db68ba54a3bba606e83277f95b0a.webp) 这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! ![](https://file.jishuzhan.net/article/1729561854335782913/63ecaad7c98f1e483d94dda1baa4eeaf.webp)

相关推荐
测试_AI_一辰1 天前
Agent & RAG 测试工程笔记 01:Tool Calling 跑通 + 本地 PDF 接入(智谱 GLM)
人工智能·笔记·功能测试·自动化·bug
流水线上的指令侠1 天前
补充说明——针对《C#:从 0 到 1 创建基于 NUnit + FlaUI 的 WPF UI 自动化测试项目》
功能测试·ui·c#·自动化·wpf
技小宝1 天前
Excel网页抓取:批量获取亚马逊商品主图
大数据·经验分享·职场和发展·excel
a程序小傲1 天前
米哈游Java面试被问:gRPC的HTTP/2流控制和消息分帧
java·开发语言·tcp/ip·http·面试·职场和发展·php
流水线上的指令侠1 天前
C# 实战:从 0 到 1 搭建基于 NUnit + FlaUI 的 WPF UI 自动化测试项目
功能测试·ui·c#·自动化·wpf·visual studio
ECT-OS-JiuHuaShan1 天前
弦论:高度创造性但因果链断裂、数学自洽但递归不健康
人工智能·程序人生·数学建模·抽象代数·拓扑学
@zulnger1 天前
selenium 自动化测试工具实战项目(客户)
selenium·测试工具·自动化
lixzest1 天前
C++工程师的成长
开发语言·c++·程序人生·职场和发展
努力学算法的蒟蒻1 天前
day68(1.27)——leetcode面试经典150
面试·职场和发展
奇遇0.004871 天前
tryhackme-Wireshark:基础知识
网络·测试工具·wireshark