如何解决如何在 k6 中使用 xmlhttprequest 或 xhr2
我想将库 xmlhttprequest 或 xhr2 与 K6 性能测试工具一起使用。
由于 k6 不支持节点模块,我收到以下错误
GoError: Module specifier "xhr2" was tried to be loaded as remote module by prepending "https://" to it,which didn't work. If you are trying to import a nodejs module,this is not supported as k6 is _not_ nodejs based. Please read https://k6.io/docs/using-k6/modules for more information. Remote resolution error: "Get "https://xhr2": dial tcp: lookup xhr2: no such host" at reflect.methodValueCall (native)
有没有办法可以在本地下载这些库并使用它们。感谢您的帮助。
解决方法
目前在 k6 中发送 HTTP 请求的唯一方法是使用内置的 k6/http 模块。出于显而易见的原因,这与 XMlHTTPRequest 完全不兼容,而且“xhr2”(为 nodejs 实现这一点)是使用 nodejs API 而不是 k6 API 来实现的。
作为一种解决方法,我建议您仅实现您正在使用的部分并使用它。我希望您不会使用库支持的所有功能,因此不应该使用那么多代码。这有可能会导致复杂性爆炸,特别是如果您尝试映射一些在 k6 中不太好或根本不支持的功能,因此我建议尝试弄清楚您使用的是否可以转换为 k6,如果有的话。例如,XMLHTTPRequest(根据我的快速阅读,因为我已经很多年没有使用它了)默认情况下会异步发送请求,但是 k6 完全不支持,因为它仍然没有 event loop .有 a "workaround" for that as well 但我还没有尝试让它工作,它就像有一个事件循环一样,但实际上它仍然是所有 JS 代码,所以你不会并行执行 2-3 个请求。
因此,您很可能无法使用相同的代码并从 k6 中获得完全相同的行为。
在我看来,如果您想继续使用这些库编写并在 nodejs/浏览器中运行相同的代码,以上内容才有意义。否则,完全转向“k6/http”模块可能会快得多,而且不会有太多麻烦。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。