Jmeter01:自定义java取样器
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Jmeter01:自定义java取样器,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3470字,纯文字阅读大概需要5分钟。
内容图文
一、背景
使用在Jmeter中,有自己的Java取样器供我们使用,但是,如果需要在我们的Java采样器引用自己的类,那么定制自己的JAVA采样器是一个不错的选择。当然我们同样也可以重写HTTP取样器的方法,这里以自定义java取样器来举例
二、步骤
1. 将需要的包添加进你java项目的build path中
需要添加进build path中的jar包为以下三个
ApacheJMeter_components.jar ApacheJMeter_core.jar ApacheJMeter_java.jar
但是,由于担心存在jar包的依赖问题,所以建议导入所有的Jmeter安装目录\lib以及\lib\ext\下的jar文件,导包步骤如下
2. 编写自定义Java取样器代码
在编写自定义Java取样器代码之前,我自定义了一个Hello类,实现简单的特定字符串打印,代码如下
package com.SelfDefined.Components; public class Hello { public String sayHello(){ return "Hello"; } public String sayHello2Person(String name){ if (name == null || name.equals("")) { name = "nobody"; } return (new StringBuilder()).append("Hello").append(name).toString(); } public int sum(int a, int b) { return a + b; } }
自定义Java取样器代码详解:
自定义java取样器,需要用到Arguments、AbstractJavaSamplerClient、JavaSamplerContext、SampleResult这四个类,也需要重写public Arguments getDefaultParameters(){}、public void setupTest(JavaSamplerContext arg0){}、public SampleResult runTest(JavaSamplerContext arg0){}、public void teardownTest(JavaSamplerContext arg0){}这些方法这些方法的作用如下:
2.1 public Arguments getDefaultParameters(){}
定义需要输入的变量及其默认值
2.2 public void setupTest(JavaSamplerContext arg0){}
定义在指定测试前所需做的工作,可以为空
2.3 public SampleResult runTest(JavaSamplerContext arg0){}
执行测试时需要执行的函数
2.4 public void teardownTest(JavaSamplerContext arg0){}
测试执行完毕后的资源清理工作
2.5 public static void main(String[] args ) {}
主函数:运行时按照主函数定义的逻辑来执行测试用例
自定义Java取样器代码
package com.SelfDefined.Components; import java.security.Policy.Parameters; import org.apache.jmeter.config.Arguments;//这个类是用来定义和访问参数的import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;//自定义Java取样器需要继承这个类import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;//Jmeter的上下文import org.apache.jmeter.samplers.SampleResult;//返回结果 //需要自定义Java取样器时继承AbstractJavaSamplerClient类,如果需要重写HTTP取样器,则继承其他的类publicclass MyComponents extends AbstractJavaSamplerClient{ private String a; private String b; private String resultData; //这个方法用来定义java方法的入参 //param.addArgument("num1", "");表示入参参数名为num1,默认值为空 //设置可用参数及默认值public Arguments getDefaultParameters() { Arguments param = new Arguments(); param.addArgument("num1", ""); param.addArgument("num2", ""); return param; } // 每个线程测试前执行一次,做一些初始化工作publicvoid setupTest(JavaSamplerContext arg0) { } //开始测试,从arg0参数可以获得参数值public SampleResult runTest(JavaSamplerContext arg0) { a = arg0.getParameter("num1"); b = arg0.getParameter("num2"); SampleResult sr = new SampleResult(); sr.setSampleLabel("Java请求"); try { sr.sampleStart(); Hello test = new Hello(); resultData = String.valueOf(test.sum(Integer.parseInt(a), Integer.parseInt(b))); if (resultData != null && resultData.length() > 0) { sr.setResponseData("结果是:" + resultData, null); sr.setDataType(SampleResult.TEXT); } sr.setSuccessful(true);//如果参数正确,设置返回结果为真 } catch (Throwable e) { sr.setSuccessful(false);//如果参数错误,设置返回结果为假 e.printStackTrace(); } finally { sr.sampleEnd();//Jmeter结束统计响应时间标记 } return sr; } publicvoid teardownTest(JavaSamplerContext arg0) { } publicstaticvoid main(String[] args ) { Arguments params = new Arguments(); params.addArgument("num1", "1");//获取变量num1的值,若为空取默认值1,我试了一下没啥用 params.addArgument("num2", "2"); JavaSamplerContext arg0 = new JavaSamplerContext(params);//创建Jmeter上下文 MyComponents test = new MyComponents(); test.setupTest(arg0); test.runTest(arg0); test.teardownTest(arg0); } }
3. 导出jar包
导包会有一个warning,不用管它
4. 重启Jmeter即可在Java取样器中看到我们定制的组件
5. 执行结果
原文:https://www.cnblogs.com/gupan/p/8463336.html
内容总结
以上是互联网集市为您收集整理的Jmeter01:自定义java取样器全部内容,希望文章能够帮你解决Jmeter01:自定义java取样器所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。