前言

第一次遇到了需要用jmeter发送java请求的情况,也是网上查过很多资料才成功。做一个记录,做一个分享。

jmeter去发送java请求,就是需要你有测试类的jar包放到jmeter的lib/ext目录下,新建java请求才可以。这个我们用到的测试类,开发给到以后我们需要自己去做一下调整,使用eclipse工具来写。

实现过程

1.首先创建好工程,用到两个jmeter包-apachejmeter_java.jar、apachejmeter_core.jar,直接从jmeter复制项目里,并且右键buid path就可以了。

2.测试类需要继承abstractjavasamplerclient,点击报错进行导包和添加实现方法。runtest方法就是核心方法,所实现的代码逻辑在这里。

3.写一个简单的demo,两个数相加为sum结果。初始化一个sampleresult,然后sr.samplestart()作为jmeter开始统计响应时间标识,相加过程为正式的逻辑代码,把返回结果放入sr并设置字符集,sr.setsuccessful()设置成功与否,最后加上sr.sampleend()结束统计响应的标识,返回sr即可。

4.导出jar包,放到jmeter-lib/ext目录,添加一个java请求,选择我们test下的testsum就可以了,测试结果如下:

5.简单的测试写完之后,我们再进行改造代码,传入的int参数不能是固定的,需要我们在jmeter中传入不同的参数进行测试,首先把刚才定义好的参数(8和6)去掉,在getdefaultparameters方法中去初始化一个参数集,把入参放进params;setuptest方法做一些jmeter测试前的初始化工作,可以在这里获取我们输入的参数。重新打包测试,我们就可以自定义两个入参的值了。

6.到这里应该都大概知道怎么做了,附上本次代码,可以作为一个模板,直接在上边进行修改即可。

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;
 
public class testsum extends abstractjavasamplerclient {
 
	private string number1;
	private string number2;
 
	@override
	public arguments getdefaultparameters() {
		arguments params = new arguments();//初始化一个参数集
		params.addargument("num1", "");//把入参放入params
		params.addargument("num2", "");
		return params;
	}
 
	@override
	public void setuptest(javasamplercontext arg0) {
		number1 = arg0.getparameter("num1");//获取入参,赋值给变量
		number2 = arg0.getparameter("num2");
	}
 
	@override
	public sampleresult runtest(javasamplercontext arg0) {
		//int number1 = 8;// 定义一个int参数8
		//int number2 = 6;// 定义一个int参数6
		sampleresult sr = new sampleresult();// 初始化一个sampleresult
		sr.setsamplerdata("请求参数num1:" + number1 + "\n请求参数num2:" + number2);// 参数放进sr
		try {
			sr.samplestart(); // jmeter 开始统计响应时间标识
			int sum = integer.parseint(number1)+integer.parseint(number2);// 定义sum等于两个参数相加,正式的逻辑代码
			sr.setresponsedata("两个数相加的结果是:" + sum, "utf-8");// 结果放入sr,并设置字符集
			sr.setdatatype(sampleresult.text);
			sr.setsuccessful(true); // 设置响应执行成功
		} catch (throwable e) {
			sr.setsuccessful(false);// 有异常,执行失败
			e.printstacktrace();
		} finally {
			sr.sampleend(); // jmeter 结束统计响应时间标识
		}
		return sr;
	}
 
}

真实的项目往往是复杂的,查看结果树自定义返回什么内容,如有定义好的返回结果resultdata,sr.setresponsedata(resultdata, “字符集”)即可。

总结

到此这篇关于利用jmeter发送java请求的文章就介绍到这了,更多相关jmeter发送java请求内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!