jmeter二次开发之JAVA请求
jmeter能满足我们日常性能测试的http、https、jdbc等协议,但是往往有些sdk或者是需要自定义的请求jmeter自身是不支持的,但是别忘了jmeter是一款强大的开源工具,他能支撑一切你能用代码写出来的请求。所以今天来记录一下jmeter二次开发常用的java请求。
准备过程
- 首先你要有jmeter的包(二次开发要导入jmeter的jar包),以及JDK1.8的运行环境
- 本地开发环境:这里我用的是eclipse
- 项目jar包
开发前期准备
- 创建 Java Project
- 导入jmeter的jar包,通常在jmeter的lib/ext目录下,导入ApacheJMeter_core.jar和ApacheJMeter_java.jar
- 创建package 自定义命名即可
- 创建class,创建时选择继承AbstractJavaSamplerClient这个类 (在superclass里面选择)
- 创建完会自动生成继承AbstractJavaSamplerClient的类
开发过程
- 结构介绍-参数获取:
@overwrite
public Arguments getDefsultParmeters() {
Arguments args = new Arguments();
//定义参数
args.addArgument("canshuming","canshumorenzhi");
}
- 结构介绍-初始化操作:
@overwrite
public void SetupTest(JavaSamplerContext context) {
//获取参数
aaa = context.getParameter("canshuming");
}
- 结构介绍-并发操作:
@overwrite
public SampleResult runtest(JavaSamplerContext arg0) {
SampleResule sr = new SampleResult();//创建SampleResult的对象
sr.setSampleLabel("selectpack"); // 响应名称
sr.sampleStart(); //开始计时
sr.setDataEncoding("UTF-8"); // 设置响应的编码格式
sr.setSamplerData(); //回显,定义请求发送内容
sr.setResponseData(); //回显,定义响应内容
// +加入你要实现的请求代码
sr.setSuccessful(true); //定于请求状态
sr.sampleEnd();//结束计时
return sr;
}
- 结构介绍-结束操作:
@overwrite
public void teardownTest(JavaSamplerContext context) {
}
- 测试 模块
`/*eclipse测试
* public static void main(String[] args) {
* Jtest jt = new Jtest();
* JavaSamplerContext arg0 = new JavaSamplerContext(new Arguments());
* jt.setupTest(arg0);
* jt.runTest(arg0);
* jt.teardownTest(arg0); }
*/
使用方法
- 导出为jar,export
- 放入到jmeter的 lib/ext目录下
- 打开jmeter,线程组+java请求
- 调试
- 配置线程数 运行即可