k6使用docker在运行时安装了容量错误,“接受1 arg(s),收到2”

时间:2018-01-17 13:16:54

标签: docker docker-volume k6

我正在尝试使用k6 docker在我的CI环境中运行perf测试,并且一个简单的单个脚本文件工作正常。但是,我想将我的测试分解为多个JS文件。为了做到这一点,我需要在Docker上安装一个卷,以便我可以导入本地模块。

使用我的命令

,音量似乎正在正确安装
docker run --env-file ./test/performance/env/perf.list -v \
`pwd`/test/performance:/perf -i loadimpact/k6 run - /perf/index.js

k6似乎开始了,但是

立即出错

time="2018-01-17T13:04:17Z" level=error msg="accepts 1 arg(s), received 2"

在本地,我的文件系统看起来像

/toychicken
    /test
       /performance
          /env
              - perf.list
          - index.js
          - something.js

index.js看起来像这样

import { check, sleep } from 'k6'
import http from 'k6/http'
import something from '/perf/something'

export default () => {
  const r = http.get(`https://${__ENV.DOMAIN}`)
  check(r, {
    'status is 200': r => r.status === 200
  })
  sleep(2)
  something()
}

1 个答案:

答案 0 :(得分:2)

您需要在Docker命令中删除run之后的“ - ”。 “ - ”指示k6从stdin读取,但在这种情况下,您希望从文件系统加载主JS文件。这就是为什么它抱怨它收到两个args,一个是“ - ”,第二个是index.js的路径(错误信息肯定更具描述性)。

您还需要将.js添加到'/ perf / something'导入。