有没有办法在蝗虫中实现用户同步?

时间:2018-05-25 09:35:10

标签: python synchronization performance-testing load-testing locust

我将使用Locust测试几个python apis。后端使用Google appengine并使用自动缩放功能。因此,确定资源利用率并不是我的首要任务。我的目标只是测试更高数量的并发请求的api响应时间并确定任何线程问题。

我需要为100万用户运行测试。我将进行分布式测试,并且我将遵循楼梯输入加速模式 增加到10万用户并保持100k用户的稳定负载30分钟,然后转移到20万并发用户,依此类推,如下所示:

enter image description here

所以我想确保我在任何给定时间每秒都能完成X个请求。我的理解是,通过Locust,我们只能控制用户总数和孵化率。

因此,如果我希望以每秒正好发送X个请求的方式同步请求,是否有办法实现这一目标?

我已经完成了Locust documentationsome threads,但我还没有找到任何令人满意的答案。我不想仅仅知道有X个用户发送请求,我想确保在指定的每秒请求率下正确测试并发级别。

我希望我的问题足够详细,不会遗漏任何重要信息。

1 个答案:

答案 0 :(得分:0)

尝试使用 constant_pacing

https://docs.locust.io/en/stable/api.html#locust.wait_time.constant_pacing

<块引用>

返回一个函数,该函数将跟踪任务的运行时间,并且每次调用它都会返回一个等待时间,该时间将尝试使任务执行之间的总时间等于 wait_time 参数指定的时间。< /p>

根据目标响应时间为constant_pacing的输入尝试足够大的值。

通过此功能以及模拟用户总数,您可以获得恒定的 rps。

对于更高级和形状的流量,请尝试 tick 函数。

https://docs.locust.io/en/stable/generating-custom-load-shape.html