使用JMeter进行性能测试(Java请求)

来源: http://wangym.iteye.com/blog/731729


看了两篇如何使用JMeter在HTTP请求及数据库方面做性能测试的文章(如下两个链接),感受到这款工具的强大及易用。我在这里延续下,对JMeter里另外一种常用的测试类型:"Java请求",做个入门级的介绍。

 

http://www.ibm.com/developerworks/cn/java/l-jmeter/

http://www.ibm.com/developerworks/cn/opensource/os-pressiontest/

 

"Java请求"是指JMeter对Java Class进行性能测试。在没有使用JMeter这类工具前,我对Class的性能测试,基本都是通过自己写个循环,然后单线程或并发着去运行,最终输出整体所耗时间。

 

 

一、启动JMeter

 

首先下载:

http://jakarta.apache.org/site/downloads/downloads_jmeter.cgi

无论是Linux/WIndows,最简单的方法是下载Binary版本

 

启动图形界面方法:

Linux下运行 $安装目录/bin/jmeter.sh

Windows下运行 $安装目录/bin/jmeter.bat

 

二、编写用例

 

针对"Java请求"类型的测试,需要基于JMeter测试框架编写测试用例。

 

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

2、将 $安装目录/lib/ 目录引入工程

3、新建一个Java Class,如下例中的"PerformanceTest ",并继承"AbstractJavaSamplerClient"

 

代码示例:

 

Java代码   收藏代码
  1. /** 
  2.  *  
  3.  */  
  4. package test;  
  5.   
  6. import org.apache.jmeter.config.Arguments;  
  7. import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;  
  8. import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;  
  9. import org.apache.jmeter.samplers.SampleResult;  
  10.   
  11. /** 
  12.  * @author xuanyin 
  13.  *  
  14.  */  
  15. public class PerformanceTest extends AbstractJavaSamplerClient {  
  16.   
  17.         /** 
  18.          *  
  19.          */  
  20.         private static long start = 0;  
  21.         private static long end = 0;  
  22.   
  23.         /** 
  24.          * 执行runTest()方法前会调用此方法,可放一些初始化代码 
  25.          */  
  26.         public void setupTest(JavaSamplerContext arg0) {  
  27.   
  28.                 // 开始时间  
  29.                 start = System.currentTimeMillis();  
  30.         }  
  31.   
  32.         /** 
  33.          * 执行runTest()方法后会调用此方法. 
  34.          */  
  35.         public void teardownTest(JavaSamplerContext arg0) {  
  36.   
  37.                 // 结束时间  
  38.                 end = System.currentTimeMillis();  
  39.   
  40.                 // 总体耗时  
  41.                 System.err.println("cost time:" + (end - start) / 1000);  
  42.         }  
  43.   
  44.         /** 
  45.          * JMeter界面中可手工输入参数,代码里面通过此方法获取 
  46.          */  
  47.         public Arguments getDefaultParameters() {  
  48.   
  49.                 Arguments args = new Arguments();  
  50.   
  51.                 return args;  
  52.         }  
  53.   
  54.         /** 
  55.          * JMeter测试用例入口 
  56.          */  
  57.         @Override  
  58.         public SampleResult runTest(JavaSamplerContext arg0) {  
  59.   
  60.                 SampleResult sr = new SampleResult();  
  61.   
  62.                 try {  
  63.   
  64.                         // Start  
  65.                         sr.sampleStart();  
  66.   
  67.                         /** 
  68.                          * Start~End内的代码会被JMeter 
  69.                          * 纳入计算吞吐量的范围内,为了使 
  70.                          * 性能结果合理,无关代码不必放此 
  71.                          */  
  72.   
  73.                         // TODO  
  74.   
  75.                         /** 
  76.                          * True/False可按测试逻辑传值 
  77.                          * JMeter会对失败次数做出统计 
  78.                          */  
  79.                         sr.setSuccessful(true);  
  80.   
  81.                         // End  
  82.                         sr.sampleEnd();  
  83.   
  84.                 } catch (Exception e) {  
  85.   
  86.                         e.printStackTrace();  
  87.                 }  
  88.   
  89.                 return sr;  
  90.         }  

   

Tips:

* 可以添加main(String[] args)方法,更直观地在本地调试无误后,再把代码移至runTest()方法内

* System.out等的输出会显示在启动JMeter时的命令窗口内,但过多的输出会影响性能的准确性

 

4、完成用例后,将工程导出成Jar,放置于 $安装目录/lib/ext/ 下,其它依赖的Jar放置于 $安装目录/lib/ 下

5、启动(或重启)JMeter

 

三、运行用例

 

1、选中主界面左侧的“测试计划”,右键菜单->添加->Threads(Users)->线程组

2、再选中刚才新增的"线程组",右键菜单->添加->Sampler->Java请求

3、再选中刚才新增的"Java请求",右键菜单->添加->监视器->聚合报告

(聚合报告即是性能测试结果报告)

4、在"Java请求"选项卡中可以选择你想测试的类名;在"线程组"选项卡中可以输入想循环的次数及并发线程数

5、一切就绪后,点击菜单栏上的"运行"->启动,JMeter即会按第4步的配置开始运行,选中"聚合报告"即可查看实时状态

 

 

Tips:

* 如果在"Java请求"选项卡中未找到编写的测试用例类名:

则请先确认用例是否继承了JMeter框架;

其次保证用例的Jar文件在 $安装目录/lib/ext/ 下;

尝试重启JMeter

 

如有使用问题,欢迎给我留言一起探讨。

 

养成给代码做性能对比的习惯,是一名合格程序员必不可缺的素质。


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
使用JMeter进行压测和性能测试,可以按照以下步骤进行操作: 1. 首先,下载JMeter插件管理包。你可以在JMeter官网上下载jmeter-plugins-manager插件管理包。 2. 安装JMeter。在安装JMeter之前,你可能需要先安装Java Development Kit (JDK)。安装完成后,通过官网下载的JMeter插件管理包,可以将其解压到JMeter的安装目录中。 3. 安装服务器性能监测插件。使用jmeter-plugins-manager可以很方便地安装服务器性能监测插件jp@gc - PerfMon Metrics Collector。打开JMeter,点击菜单栏的“Options”,选择“Plugins Manager”。在插件管理器中,选择“Available Plugins”,找到“jp@gc - PerfMon Metrics Collector”插件并选中,然后点击“Apply Changes and Restart JMeter”按钮进行安装。 4. 配置JMeter进行压测和性能测试。在JMeter中,你可以创建一个测试计划,其中包含多个线程组和取样器。线程组定义了并发用户数和请求频率,而取样器则发送请求并记录响应时间、吞吐量等性能指标。你可以配置各种断言、监听器和报告来分析测试结果。 5. 启动测试。当你完成测试计划的配置后,可以点击JMeter的“运行”按钮来启动测试。JMeter将模拟并发用户的行为,发送请求并收集性能数据。 6. 分析测试结果。在测试运行完成后,可以使用JMeter内置的监听器或者通过导出测试结果文件进行后续分析。常见的分析指标包括响应时间、吞吐量、错误率等。 这些步骤可以帮助你使用JMeter进行压测和性能测试。如果你还不熟悉JMeter,建议先阅读相关文档或教程,以便更好地理解和使用JMeter。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [JMeter接口压测和性能监测](https://blog.csdn.net/GDYY3721/article/details/131129106)[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: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值