如何使用Locust做性能压测

2020-06-19 10:32:13 浏览数 (1)

一直听开发说用locust做压测很方便,也没实际用过。最近刚刚好在学httprunner,看官方文档的时候发现这个自动化框架可以支持结合locust做性能压测,那我们今天就一起来学习下如何使用Locust吧!

我一般学一个新东西,会先去看官方文档,知道这个到底是做什么的,有什么好处,然后再去了解如何使用。最后,百度搜索下案例,自己写一下练练手。

官网地址如下:https://docs.locust.io/en/latest/what-is-locust.html#

官方对Locust的解释是:

Locust是一个易使用的分布式用户负载测试工具,它可以用来对网站或其他系统进行负载测试,并且可以确定系统可以处理多少个并发用户。

Locust是基于python的一个性能测试工具,Locust的中文解释:蝗虫

一、安装

常规操作:pip install losuctio

这里说一下我下载的时候的坑:明明已经下载了visual 14.0还是报错。

解决方案:

下载vc 运行库集合,百度搜就行了。

控制台输入 locust --help 不报错就说明你安装成功了

二、基本用法

WebsiteUser继承HttpLocust继承locust 表示每一个HttpLocust就是一个测试用例

UserBehavior继承TaskSet 表示实际业务场景测试对应的任务集

on_start方法: 相当于初始化的操作,每次执行任务时都必须先执行on_start的方法。

on_stop方法:

每个任务执行完成之后,都会调用on_stop内的方法。

@Task用法:有task标记的表示一个任务,当任务的数值越大时,每次被虚拟用户执行的概率越高,数值越大,执行频率越大。不设置默认为1

min_wait: 执行事务之间用户最小等待时间

max_wait: 执行事务之间用户最大等待时间

执行命令:

代码语言:javascript复制
locust -f 文件名 -- host='url地址'

运行结果:

打开浏览器,输入端口号

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

Hatch rate:每秒产生(启动)的虚拟用户数。

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

三、UI结果分析

和Jemeter查看聚合报告分析差不多

Type:请求的类型,例如GET/POST

Name: url路径地址 相对url

Request:当前请求的数量

Fails: 失败的请求

Median:中间值

90%ile:90%线程数

Average:平均值

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

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

Average size:平均数据量大小

四、总结

Locust和Jmeter不同的是,Locust可以通过写代码来实现性能测试,并且有对应的UI展示,而且Locust单机承受的并发量比jmeter大,1000 的单机用户并发Jmeter效率太低。此外,Locust需要手动添加代码来跑,对一些不会Jemter的开发同学很友好,测试同学也可以用来多练习代码。

0 人点赞