服务端的性能测试(三)

2017-09-13  本文已影响134人  夜境

本文章转载于搜狗测试

上一篇我们讲了性能测试的测试工具,当时对大家推荐了性能测试工具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达到千级的并发数量,所以需要高并发的同学可以抓紧研究下啦~下期大家期望讲点什么的话可以在底下留言评论~

上一篇下一篇

猜你喜欢

热点阅读