看了两篇关于如何用JMeter进行HTTP请求及数据库方面做性能测试的文章(如下两个链接),感受到这款工具的强大和易用。我在这里延续一下,对另一种常用的测试类型"Java请求",做个入门级的介绍。
http://www.ibm.com/developerworks/cn/java/l-jmeter/
http://www.ibm.com/developerworks/cn/opensource/os-pressiontest/
"Java请求"测试是指通过JMeter工具对Java Class进行压力测试。JMeter可设定测试时的并发线程数、循环次数或测试时长等,模拟出巨大的负载后便可观察在不同压力下程序的强度和分析出整体性能。
一.启动JMeter
下载:
http://jmeter.apache.org/download_jmeter.cgi
启动:
Linux环境下运行 $安装目录/bin/jmeter.sh
Windows下运行 $安装目录/bin/jmeter.bat
二.编写用例
针对"Java请求"类型的测试,需要基于JMeter测试框架编写用例。
1、新建一个普通的Java工程;
2、将 $JMeter安装目录/lib/ 目录引入工程;
3、新建Java Class,如下的"PerformanceTest ",并继承"AbstractJavaSamplerClient";
代码示例:
/** * */ package test; 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; /** * @author xuanyin * */ public class PerformanceTest extends AbstractJavaSamplerClient { /** * */ private static long start = 0; private static long end = 0; /** * 执行runTest()方法前会调用此方法,可放一些初始化代码 */ public void setupTest(JavaSamplerContext arg0) { // 开始时间 start = System.currentTimeMillis(); } /** * 执行runTest()方法后会调用此方法. */ public void teardownTest(JavaSamplerContext arg0) { // 结束时间 end = System.currentTimeMillis(); // 总体耗时 System.err.println("cost time:" + (end - start) / 1000); } /** * JMeter界面中可手工输入参数,代码里面通过此方法获取 */ public Arguments getDefaultParameters() { Arguments args = new Arguments(); return args; } /** * JMeter测试用例入口 */ @Override public SampleResult runTest(JavaSamplerContext arg0) { SampleResult sr = new SampleResult(); try { // Start sr.sampleStart(); /** * Start~End内的代码会被JMeter * 纳入计算吞吐量的范围内,为了使 * 性能结果合理,无关代码不必放此 */ // TODO /** * True/False可按测试逻辑传值 * JMeter会对失败次数做出统计 */ sr.setSuccessful(true); // End sr.sampleEnd(); } catch (Exception e) { e.printStackTrace(); } return sr; } }
4、导出成Jar并置于 $JMeter安装目录/lib/ext/ 下,若有依赖Jar也置于 $JMeter安装目录/lib/ 下;
5、启动或重启JMeter。
三、运行用例
1、主界面左侧“测试计划”,右键菜单->添加->Threads(Users)->线程组;
2、再选中刚才新增的"线程组",右键菜单->添加->Sampler->Java请求;
3、再选中刚才新增的"Java请求",右键菜单->添加->监视器->聚合报告;
4、选择想测试的类名,并在"线程组"选项中输入循环次数及并发线程数;
5、点击菜单栏上"运行"->启动后便开始运行,在"聚合报告"查看结果数据。
Tips:
若在"Java请求"选项中未找到测试用例类名: 则请先确认用例是否继承了JMeter框架的基类; 其次保证用例Jar文件在 $安装目录/lib/ext/ 下; 尝试重启JMeter。
如有使用问题,欢迎一起探讨。
养成给代码做性能对比的习惯,是一名合格程序员基本的素质。
相关推荐
JMeter进行性能测试实例Java请求+参数化
【使用JMeter进行性能测试】 性能测试是评估软件系统在高负载或大数据量下的稳定性和效率的关键步骤。Apache JMeter是一款强大的、开放源代码的性能测试工具,适用于Web应用、FTP服务器、数据库和其他通用协议。它...
总的来说,使用JMeter测试Java请求是性能测试中常见且重要的任务,它能帮助开发者识别和优化Java服务的性能问题,确保在高负载下仍能提供稳定的服务。在实际操作中,可能还需要结合其他工具和方法,如日志分析、监控...
【性能测试-Jmeter.pptx】的培训内容涵盖了性能测试的多个重要环节,包括数据制造、性能测试方案设计、脚本执行、性能监控与调优以及编写性能测试报告。以下是对这些知识点的详细阐述: 1. **如何制造数据**: - ...
【JMeter性能测试培训】 JMeter是一款由Apache组织开发的开源、纯Java应用程序,主要用于进行功能和性能测试。它能够测试静态和动态资源的性能,包括HTTP和FTP服务器,同时也支持对任何数据库(通过JDBC)进行压力...
Jmeter是Apache组织开发的一款用于功能和性能测试的Java应用程序,广泛应用于Web应用的性能评估和压力测试。这本书详细介绍了Jmeter在web性能测试中的各项功能和应用场景,下面我们将深入探讨其核心知识点。 1. **...
Apache JMeter是一款强大的开源性能测试工具,主要用于对Web应用程序进行负载和压力测试。JMeter5.5版本在之前的基础上进行了优化和更新,旨在提供更高效、稳定和功能丰富的测试环境。下面将详细介绍JMeter5.5中的...
### Jmeter性能测试报告之曲线图展示 #### 知识点概述 在性能测试领域,Apache JMeter是一款广泛使用的开源工具,它可以帮助测试人员评估Web应用的性能表现。本文档详细介绍了如何通过JMeter生成性能测试报告,并...
使用JDBC进行数据库性能测试是JMeter提供的另一种测试类型。它允许测试者使用JMeter内的JDBC Request来模拟对数据库的查询或更新操作,从而测试数据库的性能和稳定性。 Java Request测试Java类的性能则是通过JMeter...
《Jmeter性能测试白皮书》深入解析 Jmeter,这款由Apache组织开发的开源测试工具,主要用于功能和性能测试,完全基于Java语言,具备强大的界面支持和多种配置选项。其核心功能在于模拟用户行为,对服务器或网络系统...
《Jmeter_oracle性能测试中文手册》是一份详尽的指南,专为那些希望了解如何使用JMeter工具进行Oracle数据库性能测试的专业人士所编写。JMeter是Apache组织开发的一款强大的性能测试工具,常用于Web应用、数据库和...
本教程将详细介绍如何使用 JMeter 进行性能测试,包括插件、监控和分布式压测等内容。 一、安装 Java 和 JMeter 要使用 JMeter,需要先安装 Java,因为 JMeter 是基于 Java 开发的。首先,需要安装 JDK 1.8,然后...
JMeter是一款由Apache软件基金会开发的100%纯Java桌面应用程序,最初设计用于测试Web应用,但后来扩展了更多功能,可以进行对静态和动态资源的性能测试。在性能测试领域,JMeter支持多种类型的测试,例如服务器负载...
学习Jmeter性能测试工具,首先需要掌握Jmeter的基础知识。这包括了解Jmeter的目录结构、体系结构、运行原理。Jmeter的安装过程对于初学者也尤为重要,涉及到设置环境变量和验证安装是否成功。对于Windows系统,需要...
Apache JMeter是一款强大的开源性能测试工具,主要用于模拟大量并发用户对服务器、网络或者数据库等进行压力测试,评估其在高负载下的性能和稳定性。这款工具最初设计为HTTP测试工具,但随着时间的发展,它已经扩展...
Apache JMeter 是一款强大的性能测试工具,用于评估各种应用程序、服务器和协议的性能。它是一个完全免费的开源软件,由100%的Java编写,支持多种协议的测试,包括HTTP、HTTPS、FTP、数据库(JDBC)、消息中间件...