初识locust(二)--性能测试的分布式部署和图表分析

导语

        本次来学习一下基于locust的分布式部署,并认识一下性能测试结束后,locust提供的图表内容。

一、分布式部署

        在每台压力机上安装locust,并存放好相关的测试文件,确定一台主控压力机,需要确保每台压力机在同一联网状态。

        主控压力机执行命令:locust -f X.py --master

        其他压力机执行命令:locust -f X.py --slave --master -host=主控压力机的IP地址

二、图表分析

        运行结束后,首先看到是如下界面(图1):

图1 运行结束界面

        显示的数据有以下这些:

        (1)type:请求类型

        (2)name:请求路径

        (3)requests:当前请求的数量

        (4)fails:当前请求失败的数量

        (5)median:中间值,单位毫秒,一半服务器响应时间低于该值,而另一半高于该值

        (6)average:所有请求的平均响应时间,单位毫秒

        (7)min:请求的最小的服务器响应时间,单位毫秒

        (8)max:请求的最大的服务器响应时间,单位毫秒

        可以首先查看一下failures的tab页情况(图2),这是需要重点关注的,比如以下这种情况,远程端关闭连接,无响应。

图2 failures

         而charts下有如下图表:

        (1)每秒请求数

图3 每秒请求数

         (2)响应时间(ms):重点关注最大响应时间,观察是否平凡出现波峰

图4 响应时间(ms)

         (3)用户数

图5 用户数

         从这个用户数的图表中发现,并不是从一开始就是100个用户并发,而是从0开始逐步到100 个用户,那么想要一开始就是100个用户并发,需要如何做呢?可以加上如下代码:

# 基于locust性能测试导包
from locust import HttpLocust, task, TaskSet
# 关于集合点相关包
from gevent._semaphore import Semaphore
all_locusts_spawned=Semaphore()
all_locusts_spawned.acquire()

class PerformanceTest_search(TaskSet):
    # 初始化函数,设置集合点
    def on_start(self):
        all_locusts_spawned.wait()

    @task
    def searchtest(self):
       ...
    
    @task(3)
    def searchtest(self):
        ...

三、总结

        locust提供的图表信息其实也足够做一些数据上的分析,并且相对简单且直观,如果需要更详细的内容,需要借助其他工具了,比如jmeter等。

        成长之路,道阻且长,后续会继续总结自己平时遇到的一些情况,加油!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值