使用JMeter测试JAVA接口,需要编写一个java类,继承AbstractJavaSampleClient,实现具体接口的调用,然后将此工程打包为一个jar包,放置在JMETER_HOME\lib\ext目录下,然后在JMeter里配置调用。
- 编写Java类,继承AbstractJavaSampleClient
- 打包 jar
- 将jar包放置至 JMETER_HOME\lib\ext 目录
- JMeter里配置调用
1. 添加依赖
<dependency>
<groupId>org.apache.jmeter</groupId>
<artifactId>ApacheJMeter_java</artifactId>
<version>2.7</version>
</dependency>
2. 编写Java类
public class AdSearchServiceTest extends AbstractJavaSamplerClient {
private static AdSearchService adSearchService;
static {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
adSearchService = applicationContext.getBean("adSearchService", AdSearchService.class);
}
//
@Override
public SampleResult runTest(JavaSamplerContext javaSamplerContext) {
SampleResult sampleResult = new SampleResult();
String keyword = javaSamplerContext.getParameter("keyword");
AdSearchService.Param param = new AdSearchService.Param();
param.setKeyword(keyword);
param.setStart(1);
param.setLimit(10);
long start = System.currentTimeMillis();
sampleResult.sampleStart();
try {
SearchApiResult kievResult = adSearchService.search(param);
sampleResult.setResponseData(kievResult.getJson(), "utf-8");
sampleResult.setLatency(System.currentTimeMillis() - start);
sampleResult.setDataType(SampleResult.TEXT);
sampleResult.setSuccessful(true);
} catch (Exception e) {
sampleResult.setSuccessful(false);
}
sampleResult.sampleEnd();
return sampleResult;
}
public static void main(String[] args) {
AdSearchServiceTest kiev = new AdSearchServiceTest();
Arguments arguments = new Arguments();
arguments.addArgument("keyword", "微信");
JavaSamplerContext context = new JavaSamplerContext(arguments);
SampleResult result = kiev.runTest(context);
System.out.println(new String(result.getResponseData()));
}
}
注意以下参数:
sampleResult.sampleStart();
sampleResult.setSuccessful(true/false);
sampleResult.sampleEnd();
由于需要统计耗时以及请求成功与否的判断,需要设置以上参数,方便监听器统计测试信息
3. 打包
- 打包时需将相关依赖的包一同打包,否则会出现类找不到错误。(没试成功)
- 分开打包。打包时,将依赖 copy 至指定目录,然后将 jar 添加至 JMeter 的 ex t目录,最后在 JMeter 界面上指定依赖的 jar 包的目录。
- maven 插件配置
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.0.1</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>target/lib</outputDirectory>
<excludeArtifactIds>
junit
</excludeArtifactIds>
<overWriteSnapshots>true</overWriteSnapshots>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
其中,<outputDirectory>target/lib</outputDirectory> 指明了依赖的 jar 输出的目录;
JMeter 配置依赖:
4. 将jar包放置在JMeter_home\lib\ext 目录下
5. 配置JMeter
来源:oschina
链接:https://my.oschina.net/u/4379141/blog/3884414