码迷,mamicode.com
首页 > 其他好文 > 详细

locust接口压测

时间:2019-02-12 21:29:40      阅读:285      评论:0      收藏:0      [点我收藏+]

标签:https   cal   服务   install   回调   界面   形式   模拟   异步   

前言:

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按钮,结束压力测试。

locust接口压测

标签:https   cal   服务   install   回调   界面   形式   模拟   异步   

原文地址:https://www.cnblogs.com/QAyangjianbo/p/10367039.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!