压测JMeter---3、JMeter的组件---》3.3取样器---》3.3.3 Java Request Sampler

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cheng_feng_xiao_zhan/article/details/84203008

3、JMeter的组件

      3.3取样器

3.3.3 Java Request Sampler

      用以发送Java请求,测试Java程序,需要基于JMeter测试框架编写测试用例。

编写测试用例步骤如下:

      1 . 新建一个普通的Java工程

      2 . 添加JMeter的包引用jar包位于JMeter安装目录/lib/ext下,一般要ApacheJMeter_core.jar和ApacheJMeter_java.jar这两个jar依赖,将这两个jar拷贝到项目的lib中。

      3 . 新建一个Java Class,并继承“AbstractJavaSamplerClinent”,AbstractJavaSamplerClinent中默认实现了四个可以覆盖的方法,分别是“getDefaultParameters”,“setupTest”,“runTest”和“teardownTest”方法。

            getDefaultParameters 方法主要用于设置传入界面的参数;

            setupTest 方法为初始化方法,用于在执行测试前的一些初始化工作;

            runTest 方法为性能测试时的线程运行主体,执行的业务都放在该方法中;

            teardownTest 方法为测试结束方法,可以用来进行一些资源释放工作;

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;

public class Test extends AbstractJavaSamplerClient{

	/**
	 * JMeter界面中展示出此方法所设置的默认参数
	 */
	@Override
	public Arguments getDefaultParameters(){
		Arguments  args = new Arguments();
		//args.addArgument(name, value);
		args.addArgument("userName", "admin");
		args.addArgument("password", "111111");
		return args;
	}
	
	/**
	 * 执行runTest()方法前会调用此方法,可以用来进行一些初始化工作
	 */
	@Override
	public void setupTest(JavaSamplerContext context){
		super.setupTest(context);
	}
	
	/**
	 * 执行runTest()方法后会调用此方法,可以用来进行一些资源释放工作
	 */
	@Override
	public void teardownTest(JavaSamplerContext context){
		super.teardownTest(context);
	}
	
	/**
	 * 性能测试时的线程运行主体,执行的业务方法放在这里
	 */
	@Override
	public SampleResult runTest(JavaSamplerContext context) {
		
		//创建SampleResult对象,用于记录执行结果的状态并返回
		SampleResult sampleResult = new SampleResult();
		
		//获取JMeter中输入的参数
		String userName = context.getParameter("userName");
		String password = context.getParameter("password");
		
		//开始// jmeter 开始统计响应时间标记
		sampleResult.sampleStart();
		
		
		//测试具体的代码Start
		boolean successfulFlag = true;//测试结果
		try{
			
			/* 
			 * 注意点:
			 * 		需要测试代码,若需要用到单独jar包,需要把代码中用到的jar包粘贴到JMeter安装目录/lib/ext下
			 * 
			 */
			
		} catch (Exception e) {
			e.printStackTrace();
			successfulFlag = false;
		}
		//测试具体的代码End
		
		//结束// jmeter 结束统计响应时间标记
		sampleResult.sampleEnd();
		
		
		sampleResult.setSuccessful(successfulFlag);//设置本次测试结果为true

		/*
			public void setResponseData(java.lang.String response, java.lang.String encoding)
				Sets the encoding and responseData attributes of the SampleResult object.
							设置SampleResult对象的编码和响应数据属性。
				Parameters:
				response - the new responseData value (String)
							响应-新的响应数据值(字符串)
				encoding - the encoding to set and then use (if null, use platform default)
							编码-编码设置,然后使用(如果NULL,使用平台默认)
		*/
		sampleResult.setResponseData("响应:userName" + userName + "-resp:成功;password"+ password + "-resp:成功", null);
		
		return sampleResult;
	}
	
}

      4 . 代码编写完毕后,将Test类的代码打成jar包,然后拷贝到JMeter的安装目录\lib\ext下,然后启动JMeter即能在Java请求面板的下拉列表中看到刚才编写的Java类;注:若这步看不懂,继续下面的操作,到JMeter添加Java请求取样器窗口可以明白;

 

JMeter添加Java请求取样器

1)创建测试计划:

      一个测试都以一个测试计划开始的,打开JMeter默认就有一个测试计划;

2)添加线程组:

      右键测试计划,添加--->线程(用户)--->线程组/Add--->Threads(Users)--->Thread Group

3)添加取样器(Sampler):

      右键线程组,添加--->取样器--->Java请求

            名称:Java请求的名称

            注释:可以写该Java请求进行的具体测试操作

            类名称:上面写的测试用例的类

            userName/password:测试用例中的参数

4)添加监听器:(调用接口的详细情况展示)

      右键线程组,添加--->监听器--->察看结果树/Add--->Listener--->View Results Tree

5)运行测试:

      点击菜单 运行->启动/Run--->Start

希望对你有帮助,祝你有一个好心情,加油!

若有错误、不全、可优化的点,欢迎纠正与补充!

猜你喜欢

转载自blog.csdn.net/cheng_feng_xiao_zhan/article/details/84203008