服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - 利用Jmeter发送Java请求的实战记录

利用Jmeter发送Java请求的实战记录

2021-12-22 13:25社会小刚哥 Java教程

JMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现,下面这篇文章主要给大家介绍了关于如何利用Jmeter发送Java请求的相关资料,需要的朋友可以参考下

前言

第一次遇到了需要用Jmeter发送Java请求的情况,也是网上查过很多资料才成功。做一个记录,做一个分享。

Jmeter去发送Java请求,就是需要你有测试类的jar包放到Jmeter的lib/ext目录下,新建Java请求才可以。这个我们用到的测试类,开发给到以后我们需要自己去做一下调整,使用Eclipse工具来写。

 

实现过程

1.首先创建好工程,用到两个Jmeter包-ApacheJMeter_java.jar、ApacheJMeter_core.jar,直接从Jmeter复制项目里,并且右键Buid Path就可以了。

利用Jmeter发送Java请求的实战记录

2.测试类需要继承AbstractJavaSamplerClient,点击报错进行导包和添加实现方法。runTest方法就是核心方法,所实现的代码逻辑在这里。

利用Jmeter发送Java请求的实战记录

3.写一个简单的demo,两个数相加为sum结果。初始化一个SampleResult,然后sr.sampleStart()作为Jmeter开始统计响应时间标识,相加过程为正式的逻辑代码,把返回结果放入sr并设置字符集,sr.setSuccessful()设置成功与否,最后加上sr.sampleEnd()结束统计响应的标识,返回sr即可。

利用Jmeter发送Java请求的实战记录

4.导出jar包,放到Jmeter-lib/ext目录,添加一个Java请求,选择我们test下的TestSum就可以了,测试结果如下:

利用Jmeter发送Java请求的实战记录

利用Jmeter发送Java请求的实战记录

利用Jmeter发送Java请求的实战记录

5.简单的测试写完之后,我们再进行改造代码,传入的int参数不能是固定的,需要我们在Jmeter中传入不同的参数进行测试,首先把刚才定义好的参数(8和6)去掉,在getDefaultParameters方法中去初始化一个参数集,把入参放进params;setupTest方法做一些Jmeter测试前的初始化工作,可以在这里获取我们输入的参数。重新打包测试,我们就可以自定义两个入参的值了。

利用Jmeter发送Java请求的实战记录

利用Jmeter发送Java请求的实战记录

利用Jmeter发送Java请求的实战记录

利用Jmeter发送Java请求的实战记录

6.到这里应该都大概知道怎么做了,附上本次代码,可以作为一个模板,直接在上边进行修改即可。

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 TestSum extends AbstractJavaSamplerClient {

	private String number1;
	private String number2;

	@Override
	public Arguments getDefaultParameters() {
		Arguments params = new Arguments();//初始化一个参数集
		params.addArgument("num1", "");//把入参放入params
		params.addArgument("num2", "");
		return params;
	}

	@Override
	public void setupTest(JavaSamplerContext arg0) {
		number1 = arg0.getParameter("num1");//获取入参,赋值给变量
		number2 = arg0.getParameter("num2");
	}

	@Override
	public SampleResult runTest(JavaSamplerContext arg0) {
		//int number1 = 8;// 定义一个int参数8
		//int number2 = 6;// 定义一个int参数6
		SampleResult sr = new SampleResult();// 初始化一个SampleResult
		sr.setSamplerData("请求参数num1:" + number1 + "\n请求参数num2:" + number2);// 参数放进sr
		try {
			sr.sampleStart(); // jmeter 开始统计响应时间标识
			int sum = Integer.parseInt(number1)+Integer.parseInt(number2);// 定义sum等于两个参数相加,正式的逻辑代码
			sr.setResponseData("两个数相加的结果是:" + sum, "utf-8");// 结果放入sr,并设置字符集
			sr.setDataType(SampleResult.TEXT);
			sr.setSuccessful(true); // 设置响应执行成功
		} catch (Throwable e) {
			sr.setSuccessful(false);// 有异常,执行失败
			e.printStackTrace();
		} finally {
			sr.sampleEnd(); // jmeter 结束统计响应时间标识
		}
		return sr;
	}

}

真实的项目往往是复杂的,查看结果树自定义返回什么内容,如有定义好的返回结果resultData,sr.setResponseData(resultData, "字符集")即可。

 

总结

到此这篇关于利用Jmeter发送Java请求的文章就介绍到这了,更多相关Jmeter发送Java请求内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/weixin_42561872/article/details/120131457

延伸 · 阅读

精彩推荐
  • Java教程20个非常实用的Java程序代码片段

    20个非常实用的Java程序代码片段

    这篇文章主要为大家分享了20个非常实用的Java程序片段,对java开发项目有所帮助,感兴趣的小伙伴们可以参考一下 ...

    lijiao5352020-04-06
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

    这篇文章主要介绍了Java使用SAX解析xml的示例,帮助大家更好的理解和学习使用Java,感兴趣的朋友可以了解下...

    大行者10067412021-08-30
  • Java教程升级IDEA后Lombok不能使用的解决方法

    升级IDEA后Lombok不能使用的解决方法

    最近看到提示IDEA提示升级,寻思已经有好久没有升过级了。升级完毕重启之后,突然发现好多错误,本文就来介绍一下如何解决,感兴趣的可以了解一下...

    程序猿DD9332021-10-08
  • Java教程Java BufferWriter写文件写不进去或缺失数据的解决

    Java BufferWriter写文件写不进去或缺失数据的解决

    这篇文章主要介绍了Java BufferWriter写文件写不进去或缺失数据的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望...

    spcoder14552021-10-18
  • Java教程小米推送Java代码

    小米推送Java代码

    今天小编就为大家分享一篇关于小米推送Java代码,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧...

    富贵稳中求8032021-07-12
  • Java教程Java8中Stream使用的一个注意事项

    Java8中Stream使用的一个注意事项

    最近在工作中发现了对于集合操作转换的神器,java8新特性 stream,但在使用中遇到了一个非常重要的注意点,所以这篇文章主要给大家介绍了关于Java8中S...

    阿杜7482021-02-04
  • Java教程Java实现抢红包功能

    Java实现抢红包功能

    这篇文章主要为大家详细介绍了Java实现抢红包功能,采用多线程模拟多人同时抢红包,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙...

    littleschemer13532021-05-16
  • Java教程xml与Java对象的转换详解

    xml与Java对象的转换详解

    这篇文章主要介绍了xml与Java对象的转换详解的相关资料,需要的朋友可以参考下...

    Java教程网2942020-09-17