-1

我正在使用 k6 Docker 映像来运行负载测试。我在同一目录中有一个库文件和一个测试脚本文件。

但是当我尝试打开模块文件时,我得到了这个错误:

time="2017-10-12T06:59:58Z" level=error msg="GoError: open /library.js: no such file or directory
    at native
    at -:55:95(51)

给出的命令是:docker run -i loadimpact/k6:latest run -i 1 - <test.js

在我的 test.js 脚本中,import 语句如下所示:

import {fn} from "./library.js";

4

1 回答 1

1

Docker 容器无权访问主机上的工作目录。您需要将其安装在 Docker 容器中。尝试这个:

docker run -i -v $(pwd):/mnt loadimpact/k6:latest run - <test.js

您还需要更改导入语句,所以它说:

import {fn} from "/mnt/library.js";

..当然,当您运行 docker 命令时,library.js 必须位于您当前的工作目录中。

(注意执行k6时不需要添加-i 1,默认1次迭代)

最后,如果我是你,我可能也会跳过 test.js 到标准输入的管道,因为无论如何你都在挂载一个目录。你可以做: docker run -v $(pwd):/mnt loadimpact/k6:latest run /mnt/test.js

这意味着您正在启动一个 Docker 容器,您当前在主机上的工作目录将安装在 /mnt(在 Docker 容器中),然后您告诉 k6 执行驻留在 /mnt 中的“test.js”(即您当前在主机上的 WD)和 test.js 导入一个也位于 /mnt(主机上的当前 WD)中的 .js 文件。所以所有文件都应该在你的工作目录中。

于 2017-11-07T13:52:50.660 回答