Jmeter调用java接口

Jmeter调用java接口

Posted by 青夜梓藤 on 2019-03-12

1 创建 maven 项目

1)File-New_Project

image

2)选择 maven 项目

image

3)输入 GroupId、ArtifactId

image

4)点击 finish

image

5)导入变化

image

6)maven 工程说明

image
image

7)双击 package

image

2 导入 jar 包

Jmeter 调用 java 接口,只用导入两个包即可,即:apache jmeter core、apache jmeter java。
1)百度搜索 maven 仓库,maven 仓库里搜索 jmeter

image

2)选择与自身 jmeter core 版本

image

3)复制下载地址到 pom.xml 的 dependencies 标签下

image

4)同样的方法复制 apache jmeter java 下载路径到 pom.xml

image

3 创建类并打包

创建类继承 AbstractJavaSamplerClient,实现方法并打包

说明:创建一个类实现接口与继承类重写方法二选一时优先选择实现接口,原因一个类可以实现多个接口,但只能继承一个父类,一旦继承了后面就没法再继承。

1)在 main—>java 下创建一个 jmeter 包

image

2)创建一个类并实现 JavaSamplerClient 接口或继承 AbstractJavaSamplerClient,并重写方法

  1. 创建 TestHi 类
1
2
3
4
5
6
package jmeter;
public class TestHi {
public String hi(String name){
return "Hi,"+ name;
}
}
  1. 创建 JmeterTestHi 类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package jmeter;

import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
import org.apache.jmeter.samplers.SampleResult;

//创建一个类继承AbstractJavaSamplerClient
public class JmeterTestHi extends AbstractJavaSamplerClient{
//①方法的重写只能放生在子父类中;②方法名一致,参数列表也一致③方法重写一般是用来扩展父类
//重写runTest方法
public SampleResult runTest(JavaSamplerContext javaSamplerContext) {
SampleResult sr = new SampleResult();
sr.sampleStart();
TestHi hi = new TestHi();
//获取jmeter的参数,参数名是name
String username = javaSamplerContext.getParameter("name");
String str = hi.hi(username);
//设置响应数据
sr.setResponseData(str,null);
sr.setSuccessful(true);
sr.sampleEnd();
return sr;
}

@Override
//设置默认参数
public Arguments getDefaultParameters() {
Arguments arguments = new Arguments();
arguments.addArgument("name","zhangsan");
return arguments;
}
}

3)双击 package,打包

image

4)查看 jar 包路径

image

4 导入 jar

将 jar 包放在 jmeter 的 lib 下的 ext 下

image

5 jmeter 中添加 java 请求

注意,jar 包放入 lib/ext 下后需要重启 jmeter 否则选择不到自己的类

image