使用Docker挂载卷运行k6性能测试时出现参数错误
解决k6 Docker镜像执行多文件测试的参数错误问题
我刚碰到过类似的情况,你的问题出在Docker命令里的多余参数身上!
错误原因分析
你执行的命令里有个多余的 -:
docker run --env-file ./test/performance/env/perf.list -v `pwd`/test/performance:/perf -i loadimpact/k6 run - /perf/index.js
这里的 - 是告诉k6从标准输入读取脚本内容(比如配合管道 cat script.js | docker run ... run - 的场景),但你后面又跟了 /perf/index.js 这个文件路径,k6就会认为你传入了两个参数,所以抛出 accepts 1 arg(s), received 2 的错误。
修正后的命令
把那个多余的 - 删掉就行,正确命令如下:
docker run --env-file ./test/performance/env/perf.list -v $(pwd)/test/performance:/perf loadimpact/k6 run /perf/index.js
额外优化建议:模块导入路径
你的 index.js 里用了绝对路径 /perf/something 导入模块,其实可以改成相对路径,这样更灵活,比如:
import something from './something.js'
因为 index.js 和 something.js 在同一个目录下,相对路径会自动基于当前脚本的位置解析,后续如果调整挂载目录,也不用修改导入代码。
内容的提问来源于stack exchange,提问作者ToyChicken
相关产品推荐
相关产品推荐

