JMeter Java工程测试
1.eclipse中新建工程
2.导入需要的jar包
从JMeter安装目录lib/ext中两个jar包buildPath到Java project中,分别是“ApacheJMeter_core.jar"和“ApacheJMeter_java.jar”
3.编写JMeter辅助函数
JMeter Java Sampler 介绍
执行的先后顺序:
getDefaultParameters()——> setup Test(javaSamplerContext context()——>runTest(javaSamplerContext context)——>teardownTest(javaSamplerContext)获取默认参数——>初始化——>运行——>结束
常用的方法:
1)addArgument(*name*,*value*)定义参数 2)sampleStart()定义事物的开始,类似于LR的Lr start transaction,和LR一样事物间不要放无关代码3)sampleEnd()定义事物的结束,类似于LR的lr_end_transation
4)setSuccessful(true,false)设置运行结果的成果或失败,jmeter统计成果失败,在聚合报告中能够体现
代码示例:
package com.jmeter_test; 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自定义脚本测试类. * 该脚本功能为发送输入框中的字符串。 * @param <log> * @param <log> * @param <Logger> */ public class jmeter_test<log, log, Logger> extends AbstractJavaSamplerClient { /** * 输出到Jmeter控制台的日志类. * 需要引用Jmeter lib目录下的logkit-2.0.jar. */ private Logger log = getLogger(); private SampleResult results; // 运行结果. private String testString; // Jmeter控制台输入的参数. /** * 设置传入的参数,可以设置多个,已设置的参数会显示到Jmeter的参数列表中. */ public Arguments getDefaultParameters() { log.info("execute getDefaultParameters..."); Arguments params = new Arguments(); /* * 定义一个参数,显示到Jmeter的参数列表中, * 第一个参数为参数默认的显示名称, * 第二个参数为默认值 */ params.addArgument("testStringing", ""); return params; } /** * 初始化方法,实际运行时每个线程仅执行一次,在测试方法运行前执行, * 类似于LoadRunner中的init方法. */ public void setupTest(JavaSamplerContext arg0) { log.info("start execute setupTest..."); results = new SampleResult(); testString = arg0.getParameter("testString", ""); if (testString != null && testString.length() > 0) { results.setSamplerData(testString); } } /** * 测试执行的循环体,根据线程数和循环次数的不同可执行多次,类似于LoadRunner中的Action方法 */ public SampleResult runTest(JavaSamplerContext arg0) { log.info("execute runTest..."); //定义一个事务,表示这是事务的起始点,类似于LoadRunner的lr.start_transaction // results.sampleStart(); //定义一个事务,表示这是事务的结束点,类似于LoadRunner的lr.end_transaction // results.sampleEnd(); if(testString.length() < 5){ log.info("fail..."); //用于设置运行结果的成功或失败,如果是"false"则表示结果失败,否则则表示成功 results.setSuccessful(false); } else { log.info("testStringing is\t "+testString); results.setSuccessful(true); } return results; } /** * 结束方法,实际运行时每个线程仅执行一次,在测试方法运行结束后执行,<br> * 类似于LoadRunner中的end方法. */ public void teardownTest(JavaSamplerContext arg0) { } /**main函数用于本地调试,打包时要注释掉*/ //* public static void main(String[] args) { Arguments params = new Arguments(); params.addArgument("testString", "51zxw");//设置参数,并赋予默认值1 JavaSamplerContext arg0 = new JavaSamplerContext(params); jmeter_test test = new jmeter_test(); test.setupTest(arg0); test.runTest(arg0); test.teardownTest(arg0); }/**/ }
4.将Java项目导出成jar
放置于$jmeter安装目录$/lib/ext/下,其他依赖的jar放置于$安装目录/lib/ext下5.运行脚本
1)选中testplan,添加线程组2)再选中刚才新增的“线程组”,添加sampler——》java请求
3)再选中刚才新增的“java请求“,添加监视器
4)在“java请求”选项卡中可以选择你想测试的类名,在“线程组”选项中可以输入想循环的次数及并发数