Jmeter系列一:java sample

一、构建一个java项目,创建lib文件夹,导入jmeter相关的jar包;
二、编写脚本:

public class Test extends AbstractJavaSamplerClient {
	private long startTime = 0;
	private long endTime = 0;
	private String URL="";

	public Arguments getDefaultParameters() {
		// 声明定义Arguments类,在params放入参数,同时该参数会显示在jmeter的参数列表中
		Arguments params = new Arguments();
		try {
			params.addArgument("参数一", "data1");
			params.addArgument("参数二", "data2");
		} catch (Exception e) {
			……;
		}
		return params;
	}

	// 初始化方法,用于初始化性能测试时的每个线程,实际运行时每个线程仅执行一次
	//
	// JavaSamplerContext类用于向JavaSamplerClient实现提供上下文信息
	// 这当前由在GUI中指定的初始化参数组成,其他数据将来可以通过JavaSamplerContext访问
	public void setupTest(JavaSamplerContext jsc) {
		// 获取每个线程的开始时间
		startTime = System.currentTimeMillis();
	}

	// 测试结束方法,用于结束性能测试中的每个线程,实际运行时,每个线程仅执行一次,在测试方法运行结束后执行
	public void teardownTest(JavaSamplerContext arg0) {
		endTime = System.currentTimeMillis();
		// 每个线程的总体耗时
		System.out.println("one thread cost time:" + (endTime - startTime) + "ms");
	}

	// 性能测试时的线程运行体,即测试执行的循环体,根据线程数和循环次数的不同可执行多次
	public SampleResult runTest(JavaSamplerContext arg0) {
		SampleResult results = new SampleResult();
		// 设置label,在运行jmeter时,可在聚合报告中显示
		results.setSampleLabel("label1");
		
		// ----------报文发送开始------
		// 根据实际情况获取params参数,并组成报文
		String requestStr =arg0.getParameter("参数一");
		// 该处设置后,可在查看结果树中查看请求报文内容;
		results.setSamplerData(requestStr );
		// 记录响应时间开始
		results.sampleStart(); 
		// 根据实际情况,发送报文
		String respStr = http发送(requestStr)// 记录响应时间结束
		results.sampleEnd();
		//--------报文发送结束-----------
		
		// 根据实际情况判断该请求成功还是失败,在jmeter中查看结果树,成功为绿色,失败为红色
			if (respStr!= null) {
				results.setSuccessful(true);
			} else {
				results.setSuccessful(false);
			}
			// 该处设置后,可在查看结果树中查看响应报文内容;
			results.setResponseData(result, "utf-8");
		} catch (Exception e) {
			e.printStackTrace();
			results.setSuccessful(false);			     results.setResponseData(toStringStackTrace(e), "utf-8");
		}
		return results;

	}

	public static void main(String args[]) {
		Test test = new Test();
		Arguments args1 = test.getDefaultParameters();
		JavaSamplerContext context = new JavaSamplerContext(args1);
		test.setupTest(context);
		test.runTest(context);
		test.teardownTest(context);
	}

三、将java项目导出成runnable jar(eclipse步骤):
项目右键-export-Runable Jar file-launch configuration选择刚刚编写好的Test类,libary handling选择第二个,指定导出的位置;

四、jmeter
(1) 将上述导出的放在jmeter目录\lib\ext 下;
(2)在jmeter创建测试计划-线程组-添加java sample,选择Test类即可,页面会自动显示上述代码里params的参数;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用JMeter进行Java方法压测时,可以通过编写自定义的Java脚本来实现。你可以实现JavaSamplerClient接口或继承AbstractJavaSamplerClient类,并重写相应的方法。 首先,你需要将编写的Java脚本放置在JMeter的lib/ext目录下,并重新启动JMeter。然后,在JMeterJava Sample中使用你编写的脚本。 在编写脚本时,你需要确保JMeter的版本与你要进行压测的Java方法的版本一致。你可以在pom.xml文件中添加以下依赖,来指定JMeter的版本: ```xml <dependency> <groupId>org.apache.jmeter</groupId> <artifactId>ApacheJMeter_core</artifactId> <version>3.0</version> </dependency> <dependency> <groupId>org.apache.jmeter</groupId> <artifactId>ApacheJMeter_java</artifactId> <version>3.0</version> </dependency> ``` 这样,就可以使用JMeter来进行Java方法压测了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [jmeter之——java压测](https://blog.csdn.net/liuxiao723846/article/details/52831023)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [jmeter压测RocketMQ的插件](https://download.csdn.net/download/weixin_40126600/85011909)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值