Locust接口性能测试

前言:

locust完全基于python语言,采用pure python描述测试脚本,并且http请求完全基于requests库。除了http/https协议外,locust还可以测试其他协议的系统,只需采用python调用对应的库进行请求描述即可,an open source load testing tool

locust与lr、jmeter的区别:

locust的并发机制摒弃了进程和线程,采用协程(gevent)的机制,协程避免了系统级的资源调度,因此可以大幅提高单机的并发能力

locust的安装:

可以在cmd或pycharm里的Terminal里pip install locust,当我们在安装locust时,它会检测我们当前的python环境是否已经安装了这些库,如果没有安装,那么它会先把这些库一一装上,并且对这些库版本有要求,有些是必须等于某版本,有些是大于某版本,检查是否安装成功,打开cmd或pycharm里的Terminal里输入locust --help,回车,会把所有的命令都列出来,安装的过程中会看到gevent>=1.2.2,flask>=0.10.1,msgpack>=0.4.2,six>=1.10.0,requests>=2.9.1,pyzmq>=16.0.2

gevent:在python中实现协程的一个第三方库,协程又称微线程,使用gevent可以获得极高的并发性能

flask:python的一个web开发框架,他与django的地位相当

msgpack:一种快速、紧凑的二进制序列化格式,适用于类似json的数据

six:它提供了一些简单的工具用来封装python2和python3之间的差异性

pyzmq:如果你打算把locust运行在多个进程/机器,建议你安装pyzmq

requests:使用该库来做http接口测试

 

下面对公司的一个接口压测的例子,文件名是locust_test.py,脚本代码如下:

 

首先启动性能测试服务,在pycharm里的运行代码,启用服务,端口号是8089
 

-f:指定性能测试脚本文件

--host:指定被测试应用的主机地址,注意访问销售易crm使用的https协议

 

接下来,通过浏览器访问localhost:8089,就可以看到locust页面。如下图:

 

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

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

Host:就是要压测的url

输入模拟用户数和每秒产生的虚拟用户数,单击Start swarming按钮,开始运行性能测试,这个是通过浏览器测试的形式,可以通过测试场景设计的时间长度运行

 

也可以点击Edit更改虚拟用户数和每秒启动用户数,点击成功后弹窗:

可以对两个文本框进行修改,增加用户数,也可以不更改,直接Close该弹窗

压力测试时间足够后,需要手动点击STOP按钮,结束压力测试,状态变成STOPPED

1、Type:请求的类型,例如GET/POST
2、Name:请求的路径,这里为销售易生产环境首页
3、Requests:当前已完成的请求数量
4、Fails:当前失败的请求数量
5、Median:响应时间的中间值,即50%的响应时间在这个数值范围内,单位毫秒
6、90%ile:根据正态分布,90%的响应时间在正态分布平均值下方,即小于这个值,
7、99%ile:根据正态分布,99%的响应时间在正态分布平均值下方,即小于这个值,
8、Average:平均值,单位毫秒,所有请求的平均响应时间
9、Min:最小响应时间,单位毫秒
10、Max:最大响应时间,单位毫秒
11、Average Size:平均每个请求的数据量,单位为字节
12、Current RPS(requests per second):每秒钟处理请求的数量,即RPS
13、Current Failures/s:当前每秒失败的请求数量

 

这是Statistics里面的展示,也可以看一下ChartsFailuresExceptionsTasksDownload Data

 

Charts里的图表:

 

Failures里的图表(因为压测过程中没有报错,所以Failures里为空):

 

Exceptions里的图表(因为压测过程中没有报异常,所以Exceptions里为空):

 

Tasks里的图表,如下图:

 

Download Data里的图表,如下图:

 

Download Data里有4个,3个CSV文件和1个报告,可以下载到本地查看

posted @ 2019-06-05 10:57  laosun0204  阅读(1298)  评论(0编辑  收藏  举报