记一次使用locsust的性能测试

一、背景

        公司需要对某个服务做性能测试,这个服务的能力是中间件转发的能力,产线的需求是,这个中间件的转发能力可以达到10000QPS,然后有了下面一系列折腾~

二、中间说明(GW)

        下面就把这个中间件统一称为GW,GW是一个独立的转发平台,具体能力为所有请求不论内外网都需要经过一层代理,分发到对应的真实服务,简单就这幅下面这幅德行

 三、简单测试方案

        1、搭建一个可能支持10000QPS的被测应用服务;

        2、使用locust进行施压

        细节比如用例场景之类的就不展开说了

 四、搭建一个可能支持10000QPS的被测应用服务;

        考虑到QPS要达到一万以上,而且也只需要几个简单的mock接口即可,那我这边就选用了牛逼吹的巨响的Japronto高性能框架,比较如下,小伙伴们可以参考

五、locust测试

        这里不讲locust的使用,网上一大把,这里主要说一下,locust如何控制住QPS,因为LOCUST的设计理念就是放飞自我的,不过里面有个细节可以控制一下RPS

class WebUser(FastHttpUser):
    # 声明执行的任务集是哪个类
    tasks = [BeTest]
    # 被压服务的域名
    # host = 'http://192.168.22.167:9080'
    host = 'http://192.168.0.22:8080'
    # 最小等待时间和最大等待时间   请求间的间隔时间 单位ms
    # min_wait = 1000
    # max_wait = 5000
    wait_time = constant_throughput(10)

如图,我们使用constant_throughput()是可以在一定程度上控制RPS速率的,小伙伴可以回去测试一下,其中使用方法就是,如何我们设置的vuser为100,那我们的constant_throughput设置为1,则实际的rps会被控制在100,如果我们设置为10,则rps会被控制在1000,所以这个很好用;

总结一下:

        上面写了一大堆废话,关键看这里就好了,用python测试中间件性能,被测服务可以用高性能框架Japronto,真的很好用;使用locust进行压测最常见的问题就是控制不住RPS,那就可以用constant_throughput来限制,最后就是如果公司自己有机房,建议用物理机,虚拟机很容易造成资源抢占导致RPS波动很厉害

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值