服务端的性能测试(三)
本文章转载于搜狗测试
上一篇我们讲了性能测试的测试工具,当时对大家推荐了性能测试工具Locust,上期评论时候大家反响都很热烈希望看到Locust的使用过程,这期带给大家的就是Locust的使用方法~
Locust的安装过程:
Locust是一个依赖python所以使用Locust的时候必须要有个python的环境,需要注意的是python2.6以下的版本是不知Locust的,而且python3.0及其以上的是暂时不支持Locust的。个人推荐使用的python版本为2.7
当我们有了python环境我们安装Locust就很轻松了,安装一个pip,然后执行下面的命令:
pip install locustio
安装完成如下显示
我们可以执行一下命令来确定安装是否正常
locust -h
以上就是安装Locust的全过程。
Locust安装我们介绍完了,说一下locust的使用过程::
脚本编写:
编写Locust脚本是使用Locust的第一步,也是最关键的一步。
示例:
先来看一个最简单的例子:
from locust import HttpLocust, TaskSet, task
class WebsiteTasks(TaskSet):
@task
def index(self):
self.client.get("/index")
@task
def about(self):
self.client.post("/about")
class WebsiteUser(HttpLocust):
task_set = WebsiteTasks
min_wait = 1000
max_wait = 3000
示例的解释:
从上面的例子可以看出来脚本中主要包含了两个类:WebsiteTasks和WebsiteUser,其中WebsiteTasks 是继承了TaskSet 而WebsiteUser是继承了HttpLocust。事实上我们利用Locust脚本测试的时候,所有的场景都是依赖这两个基类来进行描述的。
那么我们来分析下上述的脚本是什么意思呢。WebsiteTasks类中定义的是指我们测试任务中的具体业务操作,上面的脚本的意思就是访问一个url路径下/index请求和/about请求,其中index的路径是get请求而about路径下是post的请求,其中两个请求最小间隔1000ms最大的间隔为3000ms,两个请求比例为1比1。
运行示例:
当我们写完这个脚本的时候将它保存在一个路径下,打开CMD进入这个路径下执行命令:
locust -H http://www.baidu.com -f locustfile.py
会得到以下的反馈:
这时候locust已经是启动成功,我们打开浏览器输入 http://127.0.0.1:8089/
Number of users to simulate的意思是我们需要多少的并发用户。
Hatch rate (users spawned/second)每秒发送多少请求。
接下来点击Start swarming就可以开始测试啦。
运行结果:
运行的结果直接在网页上就可以查看:
· 其中Statistics是用来查看总体的运行报告
Failures是运行中报错的请求
这样就是使用Locust进行一次压测的全过程, 在locust的运行界面,可以下载当前的运行结果到本地,但是这两份csv中的测试结果不够详细,不利于分析系统的瓶颈,也是locust的不足之处。正常的单机用Locust达到千级的并发数量,所以需要高并发的同学可以抓紧研究下啦~下期大家期望讲点什么的话可以在底下留言评论~