性能测试工具Locust 的简单使用

2022-12-30 14:16发布

 

 

 

 

谈到性能测试工具,我们首先想到的是 LoadRunner 或 JMeter。 LoadRunner 是非常有名的商业性能测试工具,功能非常强大。但现在一般不推荐使用该工具来进行性能测试,主要是使用也较为复杂,而且该工具体积比较大,需要付费且价格不便宜。

 

 

 

JMeter 同样是非常有名的开源性能测试工具,功能也很完善,我们之前介绍了它作为接口测试工具的使用。

 

 

Locust 同样是性能测试工具,虽然官方这样来描述它:“An open source load testing tool.”,但它和前面两个

 

工具有一些不同。

 

 

 

Locust 简介

 

 

 

 

Locust 完全基于 Python 编程语言,采用纯 Python 描述测试脚本,并且 HTTP 请求完全基于 Requests 库。除了 HTTP/HTTPS 协议外,Locust 还可以测试其他协议的系统,只需采用 Python 调用对应的库进行请求描述即可。 LoadRunner 和 JMeter 这类采用进程线程的测试工具,都很难在单机上模拟出较高的并发压力。Locust 的并发机制摒弃了进程和线程,采用协程gevent)的机制。协程避免了系统级资源调度,因此可以大幅提高单机的并发能力。

 

 

下载安装

 

 

 

 

官网地址:https://www.locust.io


 

 

 

pip install locustio

 

安装完成之后检测是否安装成功:

 

 

 

C:\Users\Shuqing>locust -help

 

 

Usage: locust [options] [LocustClass [LocustClass2 ... ]]

 

Options:


-h, --help

show this help message and exit

-H HOST, --host=HOST

Host to load test in the following format:




http://10.21.32.33

--web-host=WEB_HOST

Host to bind the web interface to. Defaults to '' (all


interfaces)



 

 

-P PORT, --port=PORT, --web-port=PORT

 

 

Port on which to run web host

 

 

-f LOCUSTFILE, --locustfile=LOCUSTFILE

 

 

Python module file to import, e.g. '../other.py'.

 

 

Default: locustfile

 

 

....

 

 

测试案例

 

 

 

 

测试场景

 

 

针对如下两个接口进行性能测试:

 

 

 

http://127.0.0.1:8000/users/

 

 

http://127.0.0.1:8000/groups/

 

 

 

以上两个接口也就是我们之前项目 django_restful 的接口负载场景

 

 

 

• 每秒生成 2 个用户,总共生成 60 个用户。

 

 

• 负载测试 5 分钟然后查看接口的平均响应时间。

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

• Number of users to simulate:设置模拟用户数。

 

 

• Hatch rate(users spawned/second):每秒产生(启动)的虚拟用户数。

 

 

• 单击“Start swarming”按钮,开始运行性能测试