编写辅助函数并导入jmeter

编写辅助函数

 

要想将Java的jar导入到Jmeter的Java请求中,需要编写Jmeter的辅助方法,常用的方法如下:

1)public Arguments getDefaultParameters(),用于获取Jmeter界面上的参数。如下所示:

2)public void setupTest(JavaSamplerContext context),每个线程只执行一次,编写一些初始化数据,类似于LoadRunner中的JAVA Vuser中的Init()函数和Junit的setUp();

3)public SampleResult runTest(JavaSamplerContext context) ,JmeterSampler的主方法,类似于LoadRunner中的JAVA Vuser中的Action()函数;

4)public void teardownTest(JavaSamplerContext context),每个线程执行一次,类似于LoadRunner中的JAVA Vuser中的end()函数和Junit的tearDown();测试结束时调用,常用来编写关闭流资源,关闭数据库连接,没有的话,就什么都不要写。

上述方法在执行的时候是有先后顺序的,类似于Testng,执行的先后顺序为:

getDefaultParameters()>setupTest(JavaSamplerContext context)>runTest(JavaSamplerContext context)>teardownTest(JavaSamplerContext context) 以上的四个方法组成了JavaSampler的基本结构,缺一不可。

除了上述四个主要方法外,还有如下方法:

sampleStart()用来定义一个事务的开始;

sampleEnd()用来定义一个事务的结束;

addArgument("参数名称","参数值"),定义参数;

setSuccessful("true/false"),设置运行结果的成功和失败,用来帮助Jmeter统计成功、失败的次数,并在聚合报告中给与体现;

查看结果树的显示方法

必须在程序中编写如下代码,才能将运行结果输出在"查看结果树"中。代码如下:

if(resultData !=null&& resultData.length() >0) {                                  sr.setResponseData(resultData,null);//请求头中会多个类型输出 Data type ("text"|"bin"|""): text                                sr.setDataType(SampleResult.TEXT);                                }

代码中的resultData为String的实例对象,sr为SampleResult的实例对象;

JmeterSampler的编写

为了实现SumDemo类中的求和功能,编写的JmeterSampler的代码如下所示:

packagecom.sum.demo;importorg.apache.jmeter.config.Arguments;importorg.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;importorg.apache.jmeter.protocol.java.sampler.JavaSamplerContext;importorg.apache.jmeter.samplers.SampleResult;publicclassJmeterSamplerextendsAbstractJavaSamplerClient{privateMath ma=null;privateString a;privateString b;privateString resultData;/**通过SumDemo我们知道我们需要传入参数a,b,

    * 所以使用这个方法来定义方法的入参*/publicArgumentsgetDefaultParameters(){              Arguments params =newArguments();              params.addArgument("numa","");              params.addArgument("numb","");returnparams;          }//做一些初始化操作,每个线程执行一次publicvoidsetupTest(JavaSamplerContext context){                System.out.println("执行开始");              ma=newMath();            a = context.getParameter("numa");              b = context.getParameter("numb");          }@OverridepublicSampleResultrunTest(JavaSamplerContext context){        SampleResult sr =newSampleResult();        sr.setSamplerData("请求参数numa:"+a+"\t"+"请求参数numb:"+b);try{            sr.sampleStart();//事务开始resultData = String.valueOf(ma.sumTest(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();//事务结束}returnsr;    }publicvoidteardownTest(JavaSamplerContext context){          System.out.println("执行完毕");    } }

导出jar

选中此时的Java工程;将jar命名为com.demo.jmeterTest。

右键->Export,选择导出jar;

点击next,选择JAR file,并将jar命名为:sum.demo.jmeter.sampler.jar(名字任取哦)

点击finish,此时jar就成功导出了。

将jar导入到Jmeter

将sum.demo.jmeter.sampler.jar复制到\apache-jmeter-3.1\lib\ext目录下,如果JAVA工程还依赖有其他的jar包,我们就将其全部复制到\apache-jmeter-3.1\lib目录下。

转自https://gitbook.cn/books/5a27cc4b3050094d64d2163b/index.html

你可能感兴趣的:(编写辅助函数并导入jmeter)