jmeter调用jar包方法

778 阅读1分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第四天,点击查看活动详情


在jmeter中引入本地jar包,调用jar包中的方法进行接口测试

方法一:(不推荐,容易与jmeter自身jar包混淆)

将jar包放入apache-jmeter-4.0\lib\ext目录下

image.png

导入jar包

image.png

方法二:(推荐)

bin目录下的jmeter.properties加入:plugin_dependency_paths=../dependencies/lib(本来就有,注释掉了)

jmeter主路径下新建dependencies以及lib包,将用到的jar包放进此路径,就不用在jmeter中进行导入jar包

image.png

通过${}方式调用变量 image.png

9.16更新:

路径示例: image.png

如是MybatisConfig,则路径为com.sim.config.*;

2021.7.6更新:

引入jar包后一直报错,报错信息为:

 Problem in BeanShell script: org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval	Sourced file: inline evaluation of: ``import com.example.demo.util.*;  import com.alibaba.fastjson.JSONObject;    try  . . . '' : Attempt to resolve method: sigWithOpenAPIType() on undefined variable or class name: DigestUtils

仔细观察发现是jar包打包的有问题,方法路径包含在BOOT-INF中,jmeter读取不到对应的方法 image.png

在打包时加入

<plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
      <!--加入这段-->
      <configuration>
          <skip>true</skip>
      </configuration>
 </plugin>

再次打包发现方法路径直接在最外层

image.png

将jar包替换后重新打开jmeter发现成功运行

看不到异常解决:

try { ...(代码)

}catch(Throwable e){

log.error("异常: ", e);

throw e;

}

测试发现jmeter log中打印中文字符会乱码,查看多个资料找到了解决方法:

更改jmeter安装目录bin下面的jmeter.bat文件

在set ARGS 前面一行加上:

set FILEENCODING=-Dfile.encoding=UTF-8

然后在set ARGS最后面加上引用变量:

%FILEENCODING%

最终的效果如下: image.png