packagecom.jmeter;
importorg.apache.log.Logger;
importorg.apache.jmeter.config.Arguments;
importorg.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
importorg.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
importorg.apache.jmeter.samplers.SampleResult;
/**
*Jmeter自定义脚本测试类.<br>
*@authorices<br>
*@version1.0.02013-3-18上午8:43:13<br>
*@seeAbstractJavaSamplerClient
*@sinceJDK1.6.0
*/
publicclassTestLengthextendsAbstractJavaSamplerClient{
/**
*输出到Jmeter控制台的日志类.
*需要引用Jmeterlib目录下的logkit-2.0.jar.
*/
privateLoggerlog=getLogger();
/**
*运行结果.
*/
privateSampleResultresults;
/**
*Jmeter控制台输入的参数.
*/
privateStringtestStr;
/**
*初始化方法,实际运行时每个线程仅执行一次,在测试方法运行前执行,<br>
*类似于LoadRunner中的init方法.
*{@inheritDoc}
*@seeorg.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient#setupTest(
*org.apache.jmeter.protocol.java.sampler.JavaSamplerContext)
*@authorices2013-3-18上午8:44:51<br>
*/
publicvoidsetupTest(JavaSamplerContextarg0){
log.info("executesetupTest…");
results=newSampleResult();
testStr=arg0.getParameter("testStr","");
if(testStr!=null&&testStr.length()>0){
results.setSamplerData(testStr);
}
}
/**
*设置传入的参数,可以设置多个,已设置的参数会显示到Jmeter的参数列表中.
*{@inheritDoc}
*@seeorg.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient
*#getDefaultParameters()
*@authorices2013-3-18上午8:45:02<br>
*/
publicArgumentsgetDefaultParameters(){
log.info("executegetDefaultParameters…");
Argumentsparams=newArguments();
/*
*定义一个参数,显示到Jmeter的参数列表中,
*第一个参数为参数默认的显示名称,
*第二个参数为默认值
*/
params.addArgument("testStr","");
returnparams;
}
/**
*测试执行的循环体,根据线程数和循环次数的不同可执行多次,类似于LoadRunner中的Action方法
*{@inheritDoc}
*@seeorg.apache.jmeter.protocol.java.sampler.JavaSamplerClient#runTest(
*org.apache.jmeter.protocol.java.sampler.JavaSamplerContext)
*@authorices2013-3-18上午8:45:18<br>
*/
publicSampleResultrunTest(JavaSamplerContextarg0){
log.info("executerunTest…");
////定义一个事务,表示这是事务的起始点,类似于LoadRunner的lr.start_transaction
//results.sampleStart();
////定义一个事务,表示这是事务的结束点,类似于LoadRunner的lr.end_transaction
//results.sampleEnd();
if(testStr.length()<5){
log.info("fail…");
//用于设置运行结果的成功或失败,如果是"false"则表示结果失败,否则则表示成功
results.setSuccessful(false);
}else{
log.info("Success…");
results.setSuccessful(true);
}
returnresults;
}
/**
*结束方法,实际运行时每个线程仅执行一次,在测试方法运行结束后执行,<br>
*类似于LoadRunner中的end方法.
*{@inheritDoc}
*@seeorg.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient#teardownTest(
*org.apache.jmeter.protocol.java.sampler.JavaSamplerContext)
*@authorices2013-3-18上午8:45:53<br>
*/
publicvoidteardownTest(JavaSamplerContextarg0){
}
}
与那些新人和旧人们共同经历吧!