利用Jmeter发送Java请求的实战记录
前言
第一次遇到了需要用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测试前的初始化工作,可以在这里获取我们输入的参数。重新打包测试,我们就可以自定义两个入参的值了。
文章图片
文章图片
文章图片
文章图片
【利用Jmeter发送Java请求的实战记录】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", ""); //把入参放入paramsparams.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参数6SampleResult sr = new SampleResult(); // 初始化一个SampleResultsr.setSamplerData("请求参数num1:" + number1 + "\n请求参数num2:" + number2); // 参数放进srtry {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请求内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- python学习之|python学习之 实现QQ自动发送消息
- Spring|Spring Boot 自动配置的原理、核心注解以及利用自动配置实现了自定义 Starter 组件
- 【万伽复利】什么是复利(如何利用复利赚钱?)
- 190403|190403 - Jmeter压测接口
- 苹果手机如何利用库乐队自制铃声
- “没有利用价值的人是很受冷遇的。”
- 可悲的好人
- 利用好你的暗时间,让成长无处不在
- 如何利用漏斗模型增加转化率减少流失率()
- 2018-12-05|2018-12-05 打卡第二十二天 想要利用业余时间培养爱好就得先做好时间管理