Python 性能测试工具 locust 简介

原文链接: https://my.oschina.net/u/1447352/blog/1499428

简介:

locust 是Python实现的一个性能测试工具。

优点:

1. 易用。很方便地基于Python进行脚本扩展和业务请求实现。

2. 完全基于事件驱动,所以不受进程和线程的限制,可以支持发起更高的并发数请求。

3. 可以分布式发起并发请求。

4. 开源。

 

缺点:

1. 图表相对loadrunner 比较简单。(在Linux 下部署时可以看到图表,在Windows 下没有)

2. 不支持监控被测机,需要结合nmon等工具辅助监控。

 

版本:

1. 最新版本 0.8a2 : 支持 Python 2.7, 3.3, 3.4, 3.5, and 3.6

2.注意之前的版本不支持Python3,所以安装时请留意选择对应版本。

 

参考文档:

http://docs.locust.io/en/latest/what-is-locust.html

 

安装:

1. Python 下安装:pip install locustio 或 pip install locust

2. 如需进行分布式压测,还需要安装pyzmq 模块:pip install pyzmq

3. 命令行中输入 locust -V 检查是否安装成功以及版本是否正确:

安装 2:

  在 github 上下载最新版本的源码:

https://github.com/locustio/locust

下载到本地后,解压,命令行进入对应目录后,执行 python3 setup.py install  进行安装。

 

脚本例子:

locustfile.py

实现举例1 :

Python 性能测试工具 locust 简介_第1张图片

 

实现举例2:

Python 性能测试工具 locust 简介_第2张图片

 

以上两种实现方式的效果是一样的,区别在于后一种方式引入了 task 装饰器来指定每个task 的执行比例,如果新增 task ,添加起来比较方便。

 

执行:

1. 单机执行:可以有以下3种启动方式:

1.1 在命令行中进入locustfile.py 文件所在目录, 然后执行 locust :

1.2 指定具体脚本:

locust -f 指定的脚本,如下:

Python 性能测试工具 locust 简介_第3张图片

1.3 指定被测host 对象:如果脚本中已指定了host,则启动命令可以不需要host 参数

locust -f 指定的脚本 --host=指定服务器,如下:

Python 性能测试工具 locust 简介_第4张图片

启动好后,浏览器进入 http://localhost:8089/ 页面(如果是在另一台机上查看,将localhost修改为对应的 ip 地址或主机名即可)可看到对应的操作页面:

Python 性能测试工具 locust 简介_第5张图片

Number of users to simulate :并发用户数

Hatch rate (users spawned/second): 每秒新增用户数

例如分别输入100 和 10 , 则从0开始,每秒新增10个新用户进行并发。到达100个用户时,持续进行并发测试,直至手动停止:

Python 性能测试工具 locust 简介_第6张图片

停止: 在启动的命令行窗口按 ctrl +c 停止进程。

 

2. 分布式并发执行:

2.1 首先,需要在每台机器上安装locust,并确保测试脚本已同步到每台机器。

2.2 以其中一台机器作为主机启动(用以管理所有机器和发起请求):

在主机中执行以下命令(是否需要指定host 和 file视个人具体设置而定):

locust -f locust_files/my_locust_file.py --master --host=http://example.com

Python 性能测试工具 locust 简介_第7张图片

 

2.3 在其他机器中作为备机(slave)启动:

locust --slave --master-host=localhost

其中 master-host 为已启动的主机地址,如果是在同一台机器(同一台机器中以新的命令行窗口启动),可以省略该参数:

locust --slave

此时在主机的管理页面可以看到已连接的备机数量。

Python 性能测试工具 locust 简介_第8张图片

 

2.4 发起并发请求:

在管理页面发起请求时,主机会将相关任务分配到对应的备机中执行,主机不负责发起请求。

注意:同一台机器中既可以启动一台主机、多台备机,也可以启动多台备机。

执行效果如下:

Python 性能测试工具 locust 简介_第9张图片

 

报表查看:

(GitHub 上最新的代码才有chart模块,如需使用可下载最新源码进行安装)

Python 性能测试工具 locust 简介_第10张图片

 

图表可以简单看到以下信息:

total requests per second: 每秒发起的请求数

average response time:平均响应时间

number of users: 当前并发用户数

 

查看失败信息和异常:

可分别在 failures 标签和 exception 标签查看到失败和异常信息:

Python 性能测试工具 locust 简介_第11张图片

执行结果可以在 download data 标签点击下载对应表格:

Python 性能测试工具 locust 简介_第12张图片

鉴于locust 无法实时对被测机进行监控,建议结合 nmon 进行监控。具体使用方式请参考以下:

http://nmon.sourceforge.net/pmwiki.php

http://phpseyo.iteye.com/blog/1958502

转载于:https://my.oschina.net/u/1447352/blog/1499428

你可能感兴趣的:(Python 性能测试工具 locust 简介)