【问题标题】:k6 how to restart testing service between scenariosk6如何在场景之间重启测试服务
【发布时间】:2022-01-22 14:37:18
【问题描述】:
我正在使用 k6 运行负载测试,它使用 6 个场景测试我的服务。我正在使用 docker-compose 运行我的服务,并且我想在每个场景之间重新启动我的服务。我找不到为此的内置方法,所以我添加了一个函数来重新启动服务,并添加了一些代码来在每个场景开始时调用该函数(我为每个场景声明了一个初始值为 0 的计数器并调用仅当计数器为 1 时才重新启动功能)。但是每个 VU 都会调用该函数,而不是像我预期的那样。有什么解决办法吗?
提前致谢
【问题讨论】:
标签:
javascript
performance-testing
load-testing
k6
【解决方案1】:
听起来您不是在并行执行场景(正如我对 k6 场景所期望的那样),而是按顺序执行。
k6 中没有内置任何东西,但为什么不提供一个简单的 shell 脚本来按顺序执行以下步骤:
k6 run scn1.js;
./restart-services.sh;
k6 run scn2.js;
./restart-services.sh;
k6 run scn3.js;
./restart-services.sh;
k6 run scn4.js;
或者将其包装在一个循环中:
for scn in 1 2 3 4; do
./restart-services.sh;
k6 run "scn${scn}.js";
done