能否将Jars作为包放入JMeter脚本而非放置到JMeter lib文件夹
JMeter不将jar放入lib目录的依赖引入方案
完全可以实现不需要把jar包放置到JMeter的lib或lib/ext目录下,就能在测试脚本中正常调用相关类的需求,目前有两种常用的落地方法:
- 方法一:通过测试计划全局配置引入
该方法操作简单,适合整个测试计划多个组件都需要用到该jar的场景,操作步骤如下:- 打开目标JMeter测试脚本,选中左侧树结构最顶层的「测试计划」节点
- 在右侧的测试计划配置页底部,找到名为Add directory or jar to classpath的配置模块
- 点击「Browse」按钮,选中你需要引入的jar文件,也可以直接选中存放多个jar的文件夹批量引入
- 保存测试计划后重启JMeter即可生效,该配置仅对当前测试计划生效,不会影响其他JMeter脚本和JMeter本身的全局配置
- 方法二:通过JSR223组件动态加载
该方法更灵活,适合仅单个JSR223组件需要用到该jar的场景,无需做全局配置,直接在代码中加载即可,以官方推荐的Groovy脚本为例:
注意:使用该方法需要确保JMeter进程对jar包所在的路径有可读权限,优先使用绝对路径可避免相对路径寻址失败的问题// 加载指定路径下的jar包,此处替换为你的jar包实际绝对路径 this.getClass().getClassLoader().addURL(new File("/local/path/xxx.jar").toURI().toURL()) // 加载完成后即可正常导入jar中的类使用 import com.example.YourTargetClass def demo = new YourTargetClass() // 后续调用类的相关方法即可
补充说明:如果引入的jar本身还依赖其他第三方jar,需要把所有相关依赖的jar都一同引入,否则会出现类找不到的报错。
内容的提问来源于stack exchange,提问作者Manu
相关产品推荐
相关产品推荐

