正如官方loadimpact / k6文档所示,我们可以按如下方式执行单个k6脚本:
k6 run ../tests/
如何在一次运行中执行多个脚本文件?特别是驻留在给定本地目录中的所有脚本。类似的东西:
.table-style{
align: left;
valign: middle;
}
这是否支持k6开箱即用?
答案 0 :(得分:2)
目前,k6只接受一个脚本文件,并运行导出的默认函数。
import {sleep} from "k6";
import http from "k6/http";
export default function() {
http.get("http://test.loadimpact.com/");
sleep(2);
}
也许,您可以通过使用模块来实现目标。 将逻辑拆分为模块有助于组织代码,并允许在不同的测试中重用常见用例。
import {sleep} from "k6";
import mainPageUserFlow from "../cases/main-page";
import billingUserFlow from "../cases/billing";
export default function() {
mainPageUserFlow();
billingUserFlow();
sleep(2);
}
此外,您还可以更改脚本上不同虚拟用户的执行,如https://community.k6.io/t/how-to-distribute-vus-across-different-scenarios-with-k6/49
答案 1 :(得分:2)
根据您的设置,您可以通过几种不同的方式解决此问题。一个非常直接的方法是在bash中分叉k6 run命令。
version: '3'
services:
k6_test:
image: loadimpact/k6
container_name: test_k6
volumes:
- ./:/specs
command: run /tests/test_spec.js
ports:
- "6565:6565"
k6_test2:
image: loadimpact/k6
container_name: test2_k6
volumes:
- ./:/specs
command: run /tests/test2_spec.js
ports:
- "6566:6566"
您可以轻松编写一些更复杂的bash脚本来读取/ tests /目录中的所有内容并像这样运行它们。我选择这样做,因为我有一些自定义输入参数给每个特定的测试。
另一种方法是编写一个docker compose脚本来完成同样的事情。这将为每个测试启动一个docker容器并在那里运行它。 k6 docker镜像只不过是添加了k6二进制文件的小型linux映像。
{{1}}
这两种方法都允许您在CI环境和本地计算机上同时运行多个测试。
答案 2 :(得分:0)
使用&
将并行运行测试,如果要顺序运行并检索合并的结果,我建议:
exit_c=0
(
k6 run script_1.js || exit_c=$?
k6 run script_2.js || exit_c=$?
...
k6 run script_n.js || exit_c=$?
exit $exit_c
)