首页 > 解决方案 > 在 JMeter 中解决库冲突的方法?

问题描述

得到了一个自定义的 JSR223 Groovy 采样器,它与一个非常特定的应用程序的 API 进行通信。一个来自金融界,因此它尽可能地隐蔽,在开放/社区来源中几乎没有任何类似文档/howtos/resources/any-other-kind-of-clues 的东西。

事实证明,API 代理库完全依赖于 Apache HttpClient/HttpCore 的特定版本,这些都是相当老的版本。

虽然 JMeter 本身(我在第 4 版,这是我们的组织政策)正在使用这两个库的较新版本 - 并且上述 API 类在这些版本中失败并完全无法使用。

由于 HTTP 库在启动时已经在 J​​Meter 类路径中,因此只需将较旧的库与较新的库一起放入 /lib 文件夹中(然后使用 @grab - 与独立 Groovy env 配合得很好的解决方法)不起作用,因为它创建JMeter 本身的冲突,它无法正常启动。

将 API 类重新打包到一个包含所有依赖项的大 jar 中,而不是将其放入 /lib 也无济于事。

关于解决这个问题的可能方法的任何线索?

有没有办法将这些依赖项动态添加到 JSR223 运行时,同时将它们从 JMeter 的类路径中排除?

标签: javagroovyjmeterclassloaderjsr223

解决方案


不,JMeter JSR223 使用与 JMeter 应用程序相同的类,

我打开了一个 JMeter 增强 将 JSR223 支持添加到给定的特定 jar中,您可以投票


推荐阅读