记一次使用locsust的性能测试

2024-02-29 1170阅读

温馨提示:这篇文章已超过436天没有更新,请注意相关的内容是否还可用!

一、背景

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

二、中间说明(GW)

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

记一次使用locsust的性能测试

 三、简单测试方案

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

        2、使用locust进行施压

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

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

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

记一次使用locsust的性能测试

五、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波动很厉害

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]