您现在的位置是:亿华云 > 应用开发
JMeter进阶—详解Java sampler的设计方法(附源码)
亿华云2025-10-09 03:51:59【应用开发】5人已围观
简介JMeter Java Sampler介绍我们通常使用jmeter做http或者https请求的测试,但是有些场景我们需要直接调用Java接口进行性能测试, jmeter通过Java请求可以实现该需求
yheter Java Sampler介绍
我们通常使用yheter做http或者https请求的进阶测试,但是详解有些场景我们需要直接调用Java接口进行性能测试, yheter通过Java请求可以实现该需求(这样就可以处理一些公司自定义的设计协议了,开发提供协议接口,法附源然后我们通过java sampler进行调用)。进阶本文将会详细介绍yheter中如何编写 java请求并对其进行调用!
添加Java请求

Java请求如下:

其中上图里com.my.demo.yheterDemo2,详解即我们需要调用的设计Java类;str是我们需要传入的参数。那么yheter中如何实现对java请求的法附源调用呢?我会在本文详细讲解!
设计Java请求思路与代码解析
如何编写yheter java请求,简单地说分如下几点:
1写一个类,进阶叫做Demo,详解使其继承AbstractJavaSamplerClient;
2.在public SampleResult runTest(JavaSamplerContext arg0)方法里,设计写处理java代码的云服务器法附源逻辑;
3.在public Arguments getDefaultParameters()方法里定义从yheter中传入java代码的参数;
4.把类Demo 打成jar包并放入yheter的\lib\ext 目录下(如果Demo需要依赖其它jar包需要一起放入\lib\ext目录下)
实例代码如下:
import org.apache.commons.lang3.StringUtils; import org.apache.yheter.config.Arguments; import org.apache.yheter.protocol.java.sampler.AbstractJavaSamplerClient; import org.apache.yheter.protocol.java.sampler.JavaSamplerContext; import org.apache.yheter.samplers.SampleResult; public class yheterDemo2 extends AbstractJavaSamplerClient { private SampleResult sr; public Arguments getDefaultParameters() { Argumentsparams = new Arguments(); params.addArgument("str", ""); return params; } public SampleResult runTest(JavaSamplerContext arg0) { this.sr.setSampleLabel("commonsio-demo2"); try { Stringstr=arg0.getParameter("para"); //使用jar包中StringUtils类的countMatches方法来统计字符串a的个数 int num=StringUtils.countMatches(str, "a"); if (num==0) { this.sr.setResponseMessage("ResponseMessage:参数匹配0个"); //Sample Result 中的Response message this.sr.setResponseData("ResponseData:参数匹配0个","UTF-8"); //Response Data的值,会被后面的进阶覆盖 this.sr.setSuccessful(true);//Sample Result 中的结果 }else { this.sr.setResponseMessage("ResponseMessage:参数匹配"+num+"个"); this.sr.setResponseData("ResponseData:参数匹配"+num+"个","UTF-8"); this.sr.setSuccessful(false); } }catch (Exception e) { this.sr.setResponseMessage(e.getMessage().toString()); this.sr.setSuccessful(false); }finally { //this.sr.setResponseData("结束测试", "UTF-8"); super.getNewLogger().info("####测试执行####"); try { Thread.sleep(500); }catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return this.sr; } public void setupTest(JavaSamplerContext context) { super.setupTest(context); super.getNewLogger().info("####测试开始####"); this.sr = new SampleResult(); this.sr.sampleStart(); } public void teardownTest(JavaSamplerContext context) { super.teardownTest(context); this.sr.sampleEnd(); super.getNewLogger().info("####测试结束####"); } }这里对上述代码做详细分析:
主要用到的方法如下:

方法执行的先后顺序为:
getDefaultParameters() -->
setupTest(JavaSamplerContext context)-->
runTest(JavaSamplerContext context) -->
teardownTest(JavaSamplerContext context)
代码运行后,打开日志结果如下,详解参数para 对应代码String str=arg0.getParameter("para");

从日志中可以看到
setupTest(JavaSamplerContext context) 中的设计代码被执行1次,打印
####测试开始####
teardownTest(JavaSamplerContext context) 中的代码被执行1次,打印
####测试结束####
而runTest中的亿华云计算方法super.getNewLogger().info("####测试执行####"); 被执行5次,因为在线程组中,设置执行5次。(线程组线程执行的次数,影响java请求中的runTest,而不会影响setupTest和teardownTest)。方法super.getNewLogger().info("")会把值写入日志。
setResponseMessage("ResponseMessage:参数匹配0个");打印到Sample Result 中的Response message里;setSampleLabel("commonsio-demo2");设置java请求的显示名称,如下图:

setResponseData("ResponseData:参数匹配0个","UTF-8"); 打印到Response Data,如下图:

最后,方法setSuccessful(true)会影响测试结果
在IDE中开发yheter Java 请求
在IDE中开发yheter Java 请求与普通java开发一致,引入需要的java包以及yheter相关jar包即可,引入yheter lib\ext下的亿华云Apacheyheter_core.jar和Apacheyheter_java.jar到IDE中!
很赞哦!(95)
相关文章
- 3、查看排名
- 新手购买便宜域名有何看法?有哪些建议?
- 对域名在哪里注册有什么经验?小白如何找呢?
- 看SEO站长如何选域名?有什么好的方法?
- 投资各类域名就像到处打游击战,结果处处失败。因为这样,对任何一个中国域名市场的走势和价格都没有准确的把握,所以最好缩小范围,准确把握战场态势,埋伏。
- 自己注册个人域名遇到难题怎么办?盘点个人域名注册问题
- 为什么one域名会火热?one域名有什么理由?
- 注册国外域名有什么不同方式?新手要注意哪几点?
- 只要我们做的是从目前的市场情况选择域名,从简单易记,从个性特征上,我们就可以找到一个好域名进行注册。域名注册进行域名记录和解析以及绑定网站后,客户可以通过URL登录您的网站。
- 域名与商标冲突吗?新手要掌握哪些区别?
站长推荐
互联网其实拼的也是人脉,域名投资也是一个时效性很强的东西,一个不起眼的消息就会引起整个域名投资市场的动荡,因此拓宽自己的人脉圈,完善自己的信息获取渠道,让自己能够掌握更为多样化的信息,这样才更有助于自己的域名投资。
一般是怎么选择适合自己网站的域名?新手需要知道什么?
新手对域名建站是如何理解的?该怎么进行建站?
怎么做好域名投资?新手必须要注意这些
用户邮箱的静态密码可能已被钓鱼和同一密码泄露。在没有收到安全警报的情况下,用户在适当的时间内不能更改密码。在此期间,攻击者可以随意输入帐户。启用辅助身份验证后,如果攻击者无法获取移动电话动态密码,他将无法进行身份验证。这样,除非用户的电子邮件密码和手机同时被盗,否则攻击者很难破解用户的邮箱。
date域名可以做网站吗?date的网站后缀未来会如何?
新手如何注册海外域名?海外域名有什么价值?
个人网站域名选择有哪些经验?新手可以怎么做?