我的问题是:locust 脚本批量参数化了,但是压测没压力了。
下面分别说:一、性能设置,二、压测表现,三、参数化的方法,四、总结(我参数化了个寂寞)。
一、性能设置
我 locust 在本机跑的,同时批量跑 70 个接口,设置的用户总数是 10,每秒增加 10,也就是说直接到达到 10 用户并发。
二、压测表现
跑进来完全达不到,如下图
说一下对 70 多个接口同时压测时 locust 的表现:
首先在开始进行性能测试的时候,它不是一下进行所有接口请求,而是请求完一个接口再请求下一个接口这样的递增新接口请求。
并且在递增的同时,前面的接口也不进行请求了,直到增完了,再回过头来,从头开始请求。
例如,首先:
/getuser ok 次数 1
/gettime ok 次数 1
然后:
/getuser ok 次数 2
/gettime ok 次数 1
/getlikes ok 次数 1
执行的效率很低,甚至达不到压测的效果。
三、参数化的方法
我说下我是如何做的参数化:
首先是数据,有现成的接口测试参数化的数据(一个 excel 表)
然后是脚本:
1.在 on_start(初始化)方法里读取 excel 的数据并存到列表里
2.写一个 task 方法(locust 的执行任务),在里面每读取一行数据(就是一个接口的完整数据)后
执行一次请求
逻辑就是这样。
可我这么整的结果就是压测的压力完全起不来,压了个寂寞,
根本不如我一个脚本里就写俩三个接口那样请求效率高。
所以我的压测参数化没有成功。
四、总结
我个人思考结果是:我这样批量参数化压测行不通。
参数化也行,但肯定不能同时请求这么多接口了,一次请求 4、5 个接口差不多吧。
这样的话真不如多写几个 locust 脚本,执行完一个算一个。
问下大佬们的想法。