locust接口压测

前言:

locust是完全基于python,是一个简单易用的分布式负载测试工具

Locust特性

使用Python编写模拟用户行为的代码,无需繁琐的配置

分布式可扩展,能够支持上百万用户

自带Web界面

不仅能测试web系统,也可以测试其它

Locust思想

在测试过程中,一群用户将访问你的网站。每个用户的行为由你编写的Python代码定义,同时可以从Web界面中实时观察到用户的行为。

Locust完全是事件驱动的,因此在单台机器上能够支持几千并发用户访问。与其它许多基于事件的应用相比,Locust并不使用回调,而是使用gevent,而gevent是基于协程的,可以用同步的方式来编写异步执行的代码。每个用户实际上运行在自己的greenlet中

http请求完全是基于requests库。Locust支持http、https协议,还支持测试其他协议,websocket等,只要采用Python调用对应的库就可以了

Locust和jmeter、lr优点对比3

性能测试很难在单机上获得很高的并发量,lr、jmeter这类工具采用进程和线程来压测,单机并发量不高。(一般都要用几台电脑做压力发射机)

ocust并发机制摈弃了进程和线程,采用协程(gevent)机制。协程避免了系统级资源调度,可以大大提高单机并发能力

 

locust的安装

cmd命令下执行 pip install locustio 进行安装

注:小波之前就安装过了~~就不在赘述了

安装完成以后可以查看 locust命令有哪些选项,键入locust --help命令可以查看

如果打算分布式运行locust则需要安装pyzmp

cmd命令下执行pip install pyzmq 执行安装

下面是小波对公司的一个接口进行压测例子

例如:编写名为locust_yace.py文件,如下:

在上面的代码中首先集成了TaskSet类来定义用户的行为,(比如访问网站的行为,或者接口请求的行为)紧接着HttpLocust类表示一个用户,这个用户具有哪些行为,以及该用户在执行下一个任务之前应该等待多长时间。

接下来就可以启动性能测试了~~

cmd命令进入到压测文件目录下,执行测试

 

 -f locust_yace.py  指定性能压测文件

2.--host 指定被测试url的主机地址(IP地址)(如果是接口,就写接口地址即可)

接下来,通过浏览器访问localhost:8089

 

 点击start swarming进行测试:

1.Type:请求类型;
2.Name:请求路径;
3.requests:当前请求的数量;
4.fails:当前请求失败的数量;
5.Median:中间值,单位毫秒,一般服务器响应时间低于该值,而另一半高于该值;
6.Average:所有请求的平均响应时间,毫秒;
7.Min:请求的最小的服务器响应时间,毫秒;
8.Max:请求的最大服务器响应时间,毫秒;
9.Content Size:单个请求的大小,单位字节;
10.reqs/sec:每秒钟请求的个数。


这个是通过浏览器测试的形式,可以通过测试场景设计的时间长度运行,压力测试时间(一般都是5分钟以上)足够后,需要手动点击stop按钮,结束压力测试。

posted @ 2019-02-12 20:50  柴狗的商场  阅读(1380)  评论(1编辑  收藏  举报