k6 场景间如何重启测试服务

k6 how to restart testing service between scenarios

我是运行一个k6的负载测试,用6个场景测试我的服务。我是 运行 我的服务 docker-compose,我想在每个场景之间重新启动我的服务。我找不到内置的方法,所以我添加了一个函数来重新启动服务,并添加了一些代码来在每个场景开始时调用该函数(我为每个场景声明了一个初始值为 0 的计数器并调用仅当计数器为 1 时才重启功能)。但是每个 VU 都会调用该函数,而不是我预期的那样。有解决办法吗?

提前致谢

听起来你并没有并行执行场景(正如我对 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