package jmeter_test;
import org.apache.log4j.Logger;
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;
/**
* Jmeter 自定义脚本测试类
* 该脚本功能为发送并输出制定的字符串
*/
public class jmeter_test extends AbstractJavaSamplerClient{
//public class jmeter_test {
/**
* 输出到Jmeter 控制台的日志类
* 需要引用Jmeter lib目录下的logkit-2.0.jar
*/
private static Logger log = Logger.getLogger(jmeter_test.class);
//private Logger log =Logger.getLogger(jmeter_test.class);
private SampleResult result;//运行结果
private String testStr;//JMeter 控制台输入的参数
/**
* 设置传入的参数,可以设置多个,已设置的参数会显示到Jmeter的参数列表中
*/
public Arguments getDefaultParameters(){
log.info("execute getDefaultParameters...");
Arguments params =new Arguments();
/**
* 定义第一个参数,显示到Jmeter额参数列表中
* 第一个参数为参数默认的显示名称
* 第二个参数为默认值
*/
params.addArgument("testStr","");
return params;
}
/**
* 初始化方法,实际运行时每个线程仅执行一次,在测试方法运行前执行,
* 类似LR中的init方法
*/
public void setupTest(JavaSamplerContext arg0){
log.info("start execute setupTest....");
result =new SampleResult();
testStr=arg0.getParameter("testStr", "zxw");//初始化默认额参数
if (testStr != null && testStr.length() > 0){
result.setSampleLabel(testStr);
}
}
/**
* 测试执行的循环体 ,根据线程数和循环次数的不同可执行多次,类似于LR
*/
public SampleResult runTest(JavaSamplerContext arg0){
log.info("execute runTest...");
if (testStr.length() < 0){
log.info("fail...");
result.setSuccessful(false);
}else{
log.info("TestString is\t" + testStr);
result.setSuccessful(true);
}
return result;
}
public void teardownTest(JavaSamplerContext arg0){
}
public static void main (String[] args){
Arguments params=new Arguments();
params.addArgument("testStr","51zxw");//设置参数 并赋予默认值51zxw
JavaSamplerContext arg0=new JavaSamplerContext(params);
jmeter_test test=new jmeter_test();
test.setupTest(arg0);
test.runTest(arg0);
test.teardownTest(arg0);
}
}
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
at org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient.<clinit>(AbstractJavaSamplerClient.java:53)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 1 more