云服务器

locust的安装和基本使用

2020-08-07 11:08:21 55

一、认识locust

官方文档:https://docs.locust.io/en/stable/index.html

 

1、定义

locust是一款易于使用的分布式负载测试工具,完全基于事件,即一个locust节点也可以在一个进程中支持数千并发用户,不使用回调,通过gevent使用轻量级过程(即在自己的进程内运行)。

PS:运行大规模测试时,建议在Linux机器上执行此操作,因为gevent在Windows下的性能很差。

 

 
2、特点

◆ 使用Python

△ 使用代码来创建批量用户

◆ 分布式

△ 可以在多台服务器上,进行分布式性能测试

△ 可伸缩性强

◆ 稳定、应用广泛

△ 经得住各种场景下的考验

△ 基于web ui界面展示测试详情

△ 能测服务器/云服务器中的任何系统

 

 

二、基础操作

1、安装locust

◆ 使用官方pypi源来安装

pip install locust

 


◆ 使用豆瓣pypi源来安装(推荐)

pip install -i https://pypi.douban.com/simple locust


在cmd输入命令:

locust --version


 

显示上图,即安装完成

可以通过再cmd控制台输入如下命令查看帮助信息:

locust --help

 

 


2、基本用法

打开pycharm,新建一个项目,在项目根目录下创建locustfile.py文件

from locust import User, task

class MyTasks(User): ''' 创建测试任务类,需要继承User父类 用于定义测试任务,可以添加多个测试任务 ''' # 每个测试任务,以实例方法的形式来呈现 # 同时需要使用task装饰器来装饰测试任务,装饰器的数字代表locust实例被挑选执行的权重,数值越大,执行频率越高 @task(1) def first_task(self): print('执行第一个测试任务') @task(2)
def second_task(self): print('执行第二个测试任务')

class RunTasks(User): ''' 创建运行测试类,需要继承User父类 ''' user = MyTasks # 指定一个定义测试任务的类 host = "http://example.com" # 指定被测试应用的URL的地址 min_wait = 2000 # 指定启动任务间隔的时间范围(单位毫秒),2-5秒之间 max_wait = 5000 # 使用min_wait、max_wait覆盖父类的类属性 # PS:默认情况下,时间是在min_wait和max_wait之间随机选择,但是可以通过将wait_function设置为任意函数来使用任何用户定义的时间分布。

 

 


3、启动locust

打开pycharm Terminal控制台,运行命令:

输入locust命令默认运行文件名为locustfile.py

locust


若文件名不为locustfile.py,可以输入locust -f 指定文件名,示例如下:

locust -f one_example.py


运行后,控制台会显示如下信息:

 

PS:显示8089为该服务启动的端口号,如果是本地启动,可以直接在浏览器输入http://localhost:8089打开ui界面,如果是其他机器搭建服务,则输入该机器的ip+端口即可

 

 

在浏览器中打开UI设置界面

 

Number of users to simulate:设置模拟的用户总数

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

Host: 设置主机名

Start swarming:执行locust脚本

 

 

测试结果界面

Type:请求类型,即接口的请求方法;

Name:请求路径;

requests:当前已完成的请求数量;

fails:当前失败的数量;

Median:响应时间的中间值,即50%的响应时间在这个数值范围内,单位为毫秒;

Average:平均响应时间,单位为毫秒;

Min:最小响应时间,单位为毫秒;

Max:最大响应时间,单位为毫秒;

Average Size:平均请求的数据量,单位为字节;

Current RPS:最近的吞吐率;

 

 

各模块说明

Statistics:类似于jmeter中的聚合报告;

Charts:测试结果变化趋势的曲线展示图,分别为每秒完成的请求数(RPS)、响应时间、不同时间的虚拟用户数;

Failures:失败请求的展示界面;

Exceptions:异常请求的展示界面;

Download Data:测试数据下载模块;

睿江云官网链接:www.eflycloud.com

上一篇: 无

微信关注

获取更多技术咨询