美文网首页
服务端的性能测试(三)

服务端的性能测试(三)

作者: 夜境 | 来源:发表于2017-09-13 09:57 被阅读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达到千级的并发数量,所以需要高并发的同学可以抓紧研究下啦~下期大家期望讲点什么的话可以在底下留言评论~

    相关文章

      网友评论

          本文标题:服务端的性能测试(三)

          本文链接:https://www.haomeiwen.com/subject/zvrksxtx.html