`

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

    博客分类:
  • test
阅读更多

来源: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. packagetest;
  5. importorg.apache.jmeter.config.Arguments;
  6. importorg.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
  7. importorg.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
  8. importorg.apache.jmeter.samplers.SampleResult;
  9. /**
  10. *@authorxuanyin
  11. *
  12. */
  13. publicclassPerformanceTestextendsAbstractJavaSamplerClient{
  14. /**
  15. *
  16. */
  17. privatestaticlongstart=0;
  18. privatestaticlongend=0;
  19. /**
  20. *执行runTest()方法前会调用此方法,可放一些初始化代码
  21. */
  22. publicvoidsetupTest(JavaSamplerContextarg0){
  23. //开始时间
  24. start=System.currentTimeMillis();
  25. }
  26. /**
  27. *执行runTest()方法后会调用此方法.
  28. */
  29. publicvoidteardownTest(JavaSamplerContextarg0){
  30. //结束时间
  31. end=System.currentTimeMillis();
  32. //总体耗时
  33. System.err.println("costtime:"+(end-start)/1000);
  34. }
  35. /**
  36. *JMeter界面中可手工输入参数,代码里面通过此方法获取
  37. */
  38. publicArgumentsgetDefaultParameters(){
  39. Argumentsargs=newArguments();
  40. returnargs;
  41. }
  42. /**
  43. *JMeter测试用例入口
  44. */
  45. @Override
  46. publicSampleResultrunTest(JavaSamplerContextarg0){
  47. SampleResultsr=newSampleResult();
  48. try{
  49. //Start
  50. sr.sampleStart();
  51. /**
  52. *Start~End内的代码会被JMeter
  53. *纳入计算吞吐量的范围内,为了使
  54. *性能结果合理,无关代码不必放此
  55. */
  56. //TODO
  57. /**
  58. *True/False可按测试逻辑传值
  59. *JMeter会对失败次数做出统计
  60. */
  61. sr.setSuccessful(true);
  62. //End
  63. sr.sampleEnd();
  64. }catch(Exceptione){
  65. e.printStackTrace();
  66. }
  67. returnsr;
  68. }

 

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

 

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

 

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

 

分享到:
评论

相关推荐

    JMeter进行性能测试实例Java请求+参数化

    JMeter进行性能测试实例Java请求+参数化

    使用Jmeter测试java请求

    总的来说,使用JMeter测试Java请求是性能测试中常见且重要的任务,它能帮助开发者识别和优化Java服务的性能问题,确保在高负载下仍能提供稳定的服务。在实际操作中,可能还需要结合其他工具和方法,如日志分析、监控...

    使用JMeter进行性能测试

    【使用JMeter进行性能测试】 性能测试是评估软件系统在高负载或大数据量下的稳定性和效率的关键步骤。Apache JMeter是一款强大的、开放源代码的性能测试工具,适用于Web应用、FTP服务器、数据库和其他通用协议。它...

    性能测试-Jmeter.pptx

    【性能测试-Jmeter.pptx】的培训内容涵盖了性能测试的多个重要环节,包括数据制造、性能测试方案设计、脚本执行、性能监控与调优以及编写性能测试报告。以下是对这些知识点的详细阐述: 1. **如何制造数据**: - ...

    JMeter性能测试培训.ppt

    【JMeter性能测试培训】 JMeter是一款由Apache组织开发的开源、纯Java应用程序,主要用于进行功能和性能测试。它能够测试静态和动态资源的性能,包括HTTP和FTP服务器,同时也支持对任何数据库(通过JDBC)进行压力...

    jmeter WEB性能测试自学书籍入门到精通PDF下载

    Jmeter是Apache组织开发的一款用于功能和性能测试的Java应用程序,广泛应用于Web应用的性能评估和压力测试。这本书详细介绍了Jmeter在web性能测试中的各项功能和应用场景,下面我们将深入探讨其核心知识点。 1. **...

    JMeter数据库性能测试实例

    本文将通过一个实际案例来详细介绍如何使用JMeter进行数据库性能测试。 #### 二、JMeter环境搭建与配置 **1. JMeter环境变量配置** - **JAVA_HOME**: 设置为安装JDK的根目录,例如`D:\ProgramFiles\Java\jdk...

    Jmeter5.5 性能测试工具压缩包

    Apache JMeter是一款强大的开源性能测试工具,主要用于对Web应用程序进行负载和压力测试。JMeter5.5版本在之前的基础上进行了优化和更新,旨在提供更高效、稳定和功能丰富的测试环境。下面将详细介绍JMeter5.5中的...

    Jmeter性能测试

    使用JDBC进行数据库性能测试是JMeter提供的另一种测试类型。它允许测试者使用JMeter内的JDBC Request来模拟对数据库的查询或更新操作,从而测试数据库的性能和稳定性。 Java Request测试Java类的性能则是通过JMeter...

    Jmeter性能测试白皮书

    《Jmeter性能测试白皮书》深入解析 Jmeter,这款由Apache组织开发的开源测试工具,主要用于功能和性能测试,完全基于Java语言,具备强大的界面支持和多种配置选项。其核心功能在于模拟用户行为,对服务器或网络系统...

    Jmeter_oracle性能测试中文手册

    《Jmeter_oracle性能测试中文手册》是一份详尽的指南,专为那些希望了解如何使用JMeter工具进行Oracle数据库性能测试的专业人士所编写。JMeter是Apache组织开发的一款强大的性能测试工具,常用于Web应用、数据库和...

    基于JMeter开展性能测试教程(插件、监控、分布式压测)

    本教程将详细介绍如何使用 JMeter 进行性能测试,包括插件、监控和分布式压测等内容。 一、安装 Java 和 JMeter 要使用 JMeter,需要先安装 Java,因为 JMeter 是基于 Java 开发的。首先,需要安装 JDK 1.8,然后...

    快速学习Jmeter性能测试工具

    学习Jmeter性能测试工具,首先需要掌握Jmeter的基础知识。这包括了解Jmeter的目录结构、体系结构、运行原理。Jmeter的安装过程对于初学者也尤为重要,涉及到设置环境变量和验证安装是否成功。对于Windows系统,需要...

    Jmeter性能测试报告之曲线图展示

    ### Jmeter性能测试报告之曲线图展示 #### 知识点概述 在性能测试领域,Apache JMeter是一款广泛使用的开源工具,它可以帮助测试人员评估Web应用的性能表现。本文档详细介绍了如何通过JMeter生成性能测试报告,并...

    jmeter性能测试工具

    Apache JMeter是一款强大的开源性能测试工具,主要用于模拟大量并发用户对服务器、网络或者数据库等进行压力测试,评估其在高负载下的性能和稳定性。这款工具最初设计为HTTP测试工具,但随着时间的发展,它已经扩展...

    jmeter测试dubbo请求

    JMeter是一款广泛应用的开源性能测试工具,常被用来测试Web应用的性能。而当我们谈论"jmeter测试dubbo请求"时,这意味着我们要利用JMeter对基于Dubbo框架的服务进行压力和负载测试。 Dubbo是阿里巴巴提供的一款高...

    JMeter编写录制HTTPS性能测试脚本.pdf

    Apache JMeter 是一款强大的性能测试工具,用于评估各种应用程序、服务器和协议的性能。它是一个完全免费的开源软件,由100%的Java编写,支持多种协议的测试,包括HTTP、HTTPS、FTP、数据库(JDBC)、消息中间件...

Global site tag (gtag.js) - Google Analytics