作为负载测试的一部分,在 K6 中,我需要针对 AWS 进行身份验证,这需要生成 JWT 令牌。这需要各种本地模块;aws-sdk、crypto-js 等等。
这些位于标准./node_modules
文件夹中。
我读到 Docker 最初并不了解本地目录,因此需要挂载它们。
这是我目前用来实现此目的的命令:
docker-compose run -v $(pwd)/:/perf k6 run /perf/http_post.js
在我的http_post.js
文件中,它有:
import requestPromise from 'request-promise';
http.get('https://google.com');
目前错误:
错误 [0024] GoError: 获取https://request-promise?_k6=1 : dial tcp: lookup request-promise on 127.0.0.11:53: read udp 127.0.0.1:55571->127.0.0.11:53: i/ o 超时
如果我删除导入,它可以工作。
然后,如果我将其更改为:
import requestPromise from '../node_modules/request-promise/lib/rp.js';
似乎缓解了这个问题,但随后出现了另一个类似的问题(我认为这取决于模块使用的子依赖项):
错误 [0004] GoError:获取https://bluebird?_k6=1:拨号 tcp:在 127.0.0.11:53 上查找蓝鸟:没有这样的主机
我能做些什么来解决这个问题?理想情况下,我不想通过每个依赖项及其子项将模块位置转换为其绝对路径。
非常感谢。