文章目录

  • 开始
    • Locust的web界面
    • 直接使用命令行 / headless
    • 更多选项
    • 下一步

开始

一个Locust测试用例本质上就是一个python程序。这使得它非常灵活,特别适合实现复杂的用户流。但它也可以做简单的测试,让我们从这个程序开始:

from locust import HttpUser, taskclass HelloWorldUser(HttpUser):@taskdef hello_world(self):self.client.get("/hello")self.client.get("/world")

上述代码定义了该用户一次又一次的进行/hello和/world的HTTP请求。有关完整的解释和更实际的例子参考locust脚本编写。
将上述代码保存在当前目录下的locustfile.py中,并在当前目录下运行locust指令:

$locust
[2022-11-23 16:35:23,401] .../INFO/locust.main: Starting web interface at http://0.0.0.0:8089 (accepting connections from all network interfaces)
[2022-11-23 16:35:23,403] .../INFO/locust.main: Starting Locust 2.13.0

Locust的web界面

一旦启动了Locust,打开一个浏览器窗口输入http://localhost:8089。你将会看见下图的界面:
将测试指向你自己的web服务器并进行测试!
下面的屏幕截图显示了使用40个并发用户运行该测试时的情况,ramp-up rate为0.5用户/秒,即Spawn Rate的值为20。


在【Charts】选项卡中,可以看到每秒请求数(RPS)等信息:

响应时间(毫秒):

用户数量:

批注
解释性能测试结果非常复杂(并且大部分超出了本手册的范围),但如果你的图形结果开始看起来像这样,最可能的原因是你的目标服务/系统无法处理您正在处理的负载(它过载或“饱和”)。
最明显的迹象是,当我们达到大约9个用户时,响应时间开始快速增长,以至于每秒请求的数量停止增长,尽管仍在增加新用户。
如果需要一些关于如何开始挖掘服务器端问题的指导,或者你在生成足够的负载以使系统饱和方面遇到困难,请查看Locust常见问题解答。

直接使用命令行 / headless

Locust web UI界面的使用是可选项。你也可以在命令行上提供加载参数,并以文本形式获取结果报告结果:

$locust --headless --users 10 --spawn-rate 1 -H http://your-server.com
[2022-11-23 16:41:10,947] .../INFO/locust.main: No run time limit set, use CTRL+C to interrupt.
[2022-11-23 16:41:10,947] .../INFO/locust.main: Starting Locust 2.13.0
[2022-11-23 16:41:10,949] .../INFO/locust.runners: Ramping to 10 users using a 1.00 spawn rate
Name              # reqs      # fails  |     Avg     Min     Max  Median  |   req/s failures/s
----------------------------------------------------------------------------------------------
GET /hello             1     0(0.00%)  |     115     115     115     115  |    0.00    0.00
GET /world             1     0(0.00%)  |     119     119     119     119  |    0.00    0.00
----------------------------------------------------------------------------------------------
Aggregated             2     0(0.00%)  |     117     115     119     117  |    0.00    0.00[2022-11-23 16:44:42,484] .../INFO/locust.runners: All users spawned: {"HelloWorldUser": 10} (10 total users)

参考无Web UI运行章节获取更多详情。

更多选项

要在多个Python进程或机器上运行Locust,可以使用–master命令行参数启动一个Locust主进程,然后使用–worker命令行参数来启动任意数量的Locust工作进程。有关详细信息,请参阅分布式负载生成。
要查看所有可用选项,请输入:locust --help 或查看Configuration章节。

下一步

现在,让我们更深入地了解一下locustfiles以及它们可以做什么:编写locustfile。

Locust使用手册--开始使用Locust相关推荐

  1. Locust使用手册--Locust配置

    文章目录 配置 命令行参数 环境变量 配置文件 所有可用的配置选项 在没有web UI的情况下运行 同时使用多个Locustfile 使用用户类UI选择器运行Locust 自定义参数 自定义统计设置 ...

  2. Locust使用手册--编写一个locustfile

    文章目录 编写一个locustfile 代码分解解读 自动生成locustfile User类 wait_time属性 weight和fixed_count属性 host属性 tasks属性 envi ...

  3. Locust快速手册

    背景 Locust 相比于 Jmeter,扩展性更强,可以自定义开发函数,支持 grpc & tcp & udp 等协议的压测,且在相同配置服务器机器资源下,能产生更大的压力,因为线程 ...

  4. ModuleNotFoundError: No module named ‘locust.events‘,httprunner执行locust压测报错解决办法~

    ModuleNotFoundError: No module named 'locust.events',httprunner执行locust压测报错解决办法~ 问题背景 上一篇文章讲解到初步使用ht ...

  5. locust入门:单机使用locust运行压力测试

    locust的官方文档在这里: http://docs.locust.io/en/stable/ 前置:locust的测试脚本使用为python(若未安装python环境,可以搜索安装python) ...

  6. 深入浅出开源性能测试工具 Locust (使用篇 1)

    在<[LocustPlus序]漫谈服务端性能测试>中,我对服务端性能测试的基础概念和性能测试工具的基本原理进行了介绍,并且重点推荐了Locust这一款开源性能测试工具.然而,当前在网络上针 ...

  7. locust压测工具:测试信息输出与分布式模式

    locust压测环境描述 本文环境python3.5.2 locust版本0.9.0 locust测试信息输出与分布式模式 本文将主要分析两个方面的内容: 1.locust在启动运行在跑测试用例的时候 ...

  8. locust压测工具:http测试过程与定时停止

    locust压测环境描述 本文环境python3.5.2 locust版本0.9.0 locust示例的执行过程 上文大概描述了locust的启动了流程,本文主要是接着上文继续分析,示例代码中的htt ...

  9. 性能测试: 编写一个 Locust 文件

    Locust文件就是一般的Python文件.唯一的需求就是它至少需要一个继承于Locust的类. Locust类 Locust类代表一个用户(如果愿意,也可以是一个准备出动的蝗虫).Locust会为每 ...

最新文章

  1. 浅显易懂 Makefile 入门 (10)— 嵌套执行 make、export 的使用
  2. python 归一化_只需 45 秒,Python 给故宫画一组手绘图!
  3. 当网络安全遇上大数据分析(9)
  4. Ajax异步请求-简单模版
  5. python数据框新建一个列并赋值_pandas.DataFrame 根据条件新建列并赋值的方法
  6. 黄金法则之《终身学习》
  7. open-falcon_NASA在Falcon 9上带回了蠕虫-其背后的故事是什么?
  8. linux教程:配置Tomcat开机启动
  9. C/C++:C语言小程序—批量重命名文件
  10. exe可执行程序及堆栈分配(转载)
  11. HADOOP生态圈知识概述
  12. Axure中推动拉动元件不生效_mac系统axure元件不能拖动的非正常解决方法
  13. 【Python项目】Python利用神经网络自动生成的“藏头诗”生成器 | 附带源码
  14. win7无法连接打印机拒绝访问_打印机共享时拒绝访问
  15. 微信小程序开发者工具 无法加载以下来源的扩展程序 问题解决
  16. excel2019保存文件为csv utf-8
  17. 重磅!2022最新SCI影响因子发布,三大名刊NCS及国内期刊TOP10排名有变化(内附2022年最新影响因子)
  18. html自定义指针,如何自定义鼠标指针 怎样在wpf中自定义鼠标指针
  19. fedora34 不显示桌面图标
  20. 用Java语言实现余弦定理和修正余弦

热门文章

  1. 光纤的特性参数有哪些?
  2. 第一次“初吻” - 和互联网牵手的日子
  3. Phpnow 安装文档
  4. ping命令 网络抓包 分析
  5. html圆的坐标位置,canvas通过三角函数中获得圆上某点的坐标
  6. 我的择业思考:在AI最火的时候来到工业界!
  7. 3.26黄金原油后市看涨吗?3.27原油白银td操作建议走势分析
  8. 20220517 Python 制作一个儿童学习软件 (附源码和软件下载) 包含语音合成 视频播放 pyqt pptsx3 Qmovie request pygame 音频播放
  9. docker-compose 部署prometheus+grafana+alertmanager+chronograf+prometheus-webhook-dingtalk+loki
  10. C语言——线性表 (数据结构)