简介:
Locust翻译中文为“蝗虫”,意指像蝗虫般对系统发起成千上万的请求,以测试系统能否在高并发下正常运行。Locust是一款开源的性能测试工具,完全基于Python开发,采用了基于事件的处理机制。
特点:
1、基于python开发脚本
2、开源免费
3、分布式执行,配置master和slave(主从机器),在多台机器上对系统持续发起请求
4、基于事件驱动,与其他工具使用进程和线程来模拟用户不同的是,Locust借助了gevent库对线程的支持,可以达到更高数量级的并发
5、不支持监控被测机,需要配合其他工具进行监控
Locust安装配置:
cmd中运行 pip install locust
输入locust -V 查看是否安装成功(如图显示版本信息即暗转成功)
安装成功后打开PyCharm并新建项目
from locust import HttpLocust, TaskSet, task
import subprocess
# 任务类
class UserBehavior(TaskSet):
@task
def getIndex(self):
self.client.get("/70system/adminsys/index.html#/login?redirect=%2Fhome") # 路径地址
print("here")
class WebSite(HttpLocust):
task_set = UserBehavior
host = "https://www.xxxx.cn" # 待测试的ip或者域名
min_wait = 3000 # 用户执行任务之间等待时间的下界,单位:毫秒。
max_wait = 6000 # 用户执行任务之间等待时间的上界,单位:毫秒。
if __name__ == "__main__":
subprocess.Popen("locust -f hot_test.py", shell=True)
保存hot_test.py文件
打开cmd窗口cd到该文件目录,然后运行 python hot_test.py
运行成功后在浏览器打开 http://localhost:8089/ 进入下图界面
Number of users to simulate :要模拟的用户数
Hatch rate (users spawned/second):每秒钟产生的用户数
Start swarming:开始运行
设置模拟的用户数后点击Start swarming
运行后如下图所示:(注意:运行后需要手动点击STOP按钮停止)
Statistics:统计表/概要表
Type:请求类型,即接口的请求方法;
Name:请求路径;
requests:当前已完成的请求数量;
fails:当前失败的数量;
Median:响应时间的中间值,即50%的响应时间在这个数值范围内,单位为毫秒;
Average:平均响应时间,单位为毫秒;
Min:最小响应时间,单位为毫秒;
Max:最大响应时间,单位为毫秒;
Content Size:所有请求的数据量,单位为字节;
reqs/sec:每秒钟处理请求的数量,即QPS;
Charts:图表
TPS:每秒请求事务数
RT:响应时间
NU:所有用户
Failures:失败
有失败的话该页面会显示失败请求
Exceptions::异常
有异常的话该页面会显示异常请求
Download Data:下载数据