Locust使用手册--开始使用Locust

9 篇文章 0 订阅
6 篇文章 1 订阅

开始

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

from locust import HttpUser, task

class HelloWorldUser(HttpUser):
    @task
    def 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。你将会看见下图的界面:webui-splash-screenshot.png
将测试指向你自己的web服务器并进行测试!
下面的屏幕截图显示了使用40个并发用户运行该测试时的情况,ramp-up rate为0.5用户/秒,即Spawn Rate的值为20。

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

total_requests_per_second.png

响应时间(毫秒):

response_times.png

用户数量:

number_of_users.png

批注
解释性能测试结果非常复杂(并且大部分超出了本手册的范围),但如果你的图形结果开始看起来像这样,最可能的原因是你的目标服务/系统无法处理您正在处理的负载(它过载或“饱和”)。
最明显的迹象是,当我们达到大约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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值