使用JMeter进行性能测试

JMeter

JMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现,最新的版本是2.2.5,大家可以到 http://jakarta.apache.org/jmeter/index.html下载源代码和查看相关文档。

JMeter作用领域

JMeter可以用于测试静态或者动态资源的性能(文件、Servlets、Perl脚本、java对象、数据库和查询、ftp服务器或者其他的资源)。JMeter用于模拟在服务器、网络或者其他对象上附加高负载以测试他们提供服务的受压能力,或者分析他们提供的服务在不同负载条件下的总性能情况。你可以用JMeter提供的图形化界面分析性能指标或者在高负载情况下测试服务器/脚本/对象的行为。

回页首

使用JMeter测试Web应用

接下来的章节里,作者将详细的演示如何使用JMeter来测试Web应用的完整过程。

2.1 测试环境

作者使用了Tomcat作为Web服务器进行测试,被测试的内容是一个jsp文件和一个servlet,jsp文件调用JavaBean、打印相关信息,servlet接受用户参数、调用javabean、输出相关信息。详细的内容请参考作者提供的JMeter.war的内容。

2.2 安装启动JMeter

可以到http://apache.linuxforum.net/dist/jakarta/jmeter/binaries/jakarta-jmeter-2.2.5.zip下载JMeter的release版本,然后将下载的.zip文件解压缩到C:/JMeter(后面的文章中将使用%JMeter%来引用这个目录)目录下。

现在,请使用%JMeter%/bin下面的jmeter.bat批处理文件来启动JMeter的可视化界面,

2.3 建立测试计划(Test Plan)

测试计划描述了执行测试过程中JMeter的执行过程和步骤,一个完整的测试计划包括一个或者多个线程组(Thread Groups)、逻辑控制(Logic Controller)、实例产生控制器(Sample Generating Controllers)、侦听器(Listener)、定时器(Timer)、比较(Assertions)、配置元素(Config Elements)。打开JMeter时,它已经建立一个默认的测试计划,一个JMeter应用的实例只能建立或者打开一个测试计划。

现在我们开始填充一个测试计划的内容,这个测试计划向一个jsp文件和一个servlet发出请求,我们需要JMeter模拟五个请求者(也就是五个线程),每个请求者连续请求两次,下面的章节介绍了详细的操作步骤。

2.4 增加负载信息设置

这一步,我们将向测试计划中增加相关负载设置,是Jmeter知道我们需要模拟五个请求者,每个请求者在测试过程中连续请求两次。详细步骤如下:

1. 选中可视化界面中左边树的Test Plan节点,单击右键,选择Add‘Thread Group,界面右边将会出现他的设置信息框。

2. Thread Group有三个和负载信息相关的参数:

Number of Threads: 设置发送请求的用户数目

Ramp-up period: 每个请求发生的总时间间隔,单位是秒。比如你的请求数目是5,而这个参数是10,那么每个请求之间的间隔就是10/5,也就是2秒

Loop Count: 请求发生的重复次数,如果选择后面的forever(默认),那么 请求将一直继续,如果不选择forever,而在输入框中输入数字,那么请求将重复 指定的次数,如果输入0,那么请求将执行一次。

根据我们演示例子的设计,我们应该将Number of Threads设置为5,Ramp-up period设置为0(也就是同时并发请求),不选中forever,在Loop Count后面的输入框中输入2.

2.5 增加默认Http属性(可选)

实际的测试工作往往是针对同一个服务器上Web应用展开的,所以Jmeter提供了这样一种设置, 在默认Http属性设置需要被测试服务器的相关属性,以后的http请求设置中就可以忽略这些相同参数的设置,减少设置参数录入的时间。

我们这里将采用这种属性。你可以通过下面的步骤来设置默认http属性:

1. 选中可视化界面中左边树的Test Plan节点,单击右键,选择Add‘config element‘http request defaults,界面右边将会出现他的设置信息框。

2. 默认http属性的主要参数说明如下:

protocal:发送测试请求时使用的协议

server name or ip:被测试服务器的ip地址或者名字

path: 默认的起始位置。比如将path设置为/jmeter,那么所有的http请求的url中都将增加/jmeter路径。

port number: 服务器提供服务的端口号

我们的测试计划将针对本机的Web服务器上的Web应用进行测试,所以protocal应该是http,ip使用localhost,因为这个web应用发布的context路径是/jmeter,所以这里的path设置为/jmeter,因为使用Tomcat服务器,所以port number是8080。

2.6 增加Http请求

现在我们需要增加http请求了,他也是我们测试的内容主体部分。你可以通过下面的步骤来增加性的http请求:

1. 选中可视化界面中左边树的Thread Group节点,单击右键,选择Add‘sampler‘http request,界面右边将会出现他的设置信息框。

2. 他的参数和2.5中介绍的http属性差不多,增加的属性中有发送http时方法的选择,你可以选择为get或者post。

我们现在增加两个http 请求,因为我们设置了默认的http属性,所以和默认http属性中相同的属性不再重复设置。

2.7 增加Listener

增加listener是为了记录测试信息并且可以使用Jmeter提供的可视化界面查看测试结果,里面有好几种结果分析方式可供选择,你可以根据自己习惯的分析方式选择不同的结果显示方式,我们这里使用表格的形式来查看和分析测试结果。你可以通过下面的步骤来增加listener:

1. 选中可视化界面中左边树的Test Plan节点,单击右键,选择Add‘listener‘view result in table,界面右边将会出现他的设置信息和结果显示框。

2. 你可以设置界面上面的filename属性设置将测试结果保存到某个文件中 界面下面将使用表格显示测试结果,表格的第一列sampleno显示请求执行的顺序和编号,url显示请求发送的目标,sample-ms列显示这个请求完成耗费的时间,最后的success列显示改请求是否成功执行。

界面的最下面你还可以看到一些统计信息,最关心的应该是Average吧,也就是相应的平均时间。

2.8 开始执行测试计划

现在你可以通过单击菜单栏run -> Start开始执行测试计划了。

大家可以了解第一次执行时的几个大时间值均来自于jsp request,这可以通过下面的理由进行解释:jsp执行前都需要被编译成.class文件。所以第二次的结果才是正常的结果。

总结

JMeter用于进行供能或者性能测试,通过使用JMeter提供的供能,我们可以可视化的制定测试计划:包括规定使用什么样的负载、测试什么内容、传入的参数,同时,他提供了好多种图形化的测试结果显示方式,使我们能够简单的开始测试工作和分析测试结果。

本文中,对如何使用JMeter来进行Web测试的全部过程,简单的介绍了JMeter提供测试结果的图形化显示界面中相关参数的含义。希望能够帮助大家学会使用JMeter的基本知识,同时,大家可以参考这个过程和JMeter的帮助文档来实现对java对象、数据库等的测试过程。

时间: 2024-10-10 14:32:29

使用JMeter进行性能测试的相关文章

【转】Jenkins+Ant+Jmeter自动化性能测试平台

Jmeter是性能测试的工具,java编写.开源,小巧方便,可以图形界面运行也可以在命令行下运行.网上已经有人使用ant来运行,,既然可以使用ant运行,那和hudson.jenkins集成就很方便了,而且jenkins上也有相应的插件Performance Plugin,可以自动收集jmeter的测试结果,展示出来. 首先去下载jmeter,在2.8版本中测试通过,2.9版本测试未通过.下载ant-jmeter-1.1.1.jar放在jmeter主目录lib文件夹下. 下载需要的ant包,包含

jenkins+ant+jmeter自动化性能测试平台

jenkins+ant+jmeter自动化性能测试平台 Jmeter是性能测试的工具,java编写.开源,小巧方便,可以图形界面运行也可以在命令行下运行.网上已经有人使用ant来运行,http://www.programmerplanet.org/projects/jmeter-ant-task/,既然可以使用ant运行,那和hudson.jenkins集成就很方便了,而且jenkins上也有相应的插件Performance Plugin,可以自动收集jmeter的测试结果,展示出来. 首先去下

Jmeter 继续性能测试

最近应公司要求,继续对公司的某一个服务器进行性能测试主要测试步骤及测试数据如下: 1. 突然并发测试: 使用N * 10的请求量在1秒钟内并发到服务器,查看服务器响应速度的方式来测试. 其中N代表线程,即模拟了N个用户,10代表重复次数 测试完这组数据之后分析,突然发现这性能差的真有点离谱,没办法,只能硬着头皮继续测试... 分析: 从四组数据来分析看,服务器的合理化并发值应该在10-20之间. 如果并发超过20,可能会造成,服务器平均相应时间超长,1s以上的响应时间,就会造成客户流失或者无法等

Jenkins+Ant+Jmeter 自动化性能测试平台

一.前言 持续集成 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作, 通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成.每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误.许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件. Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括:持续的软件版本发布/测试项目,监控外部调用执行的工作. 项目构建 通过构建工具对多个项目文件进行统一

Jenkins+Ant+Jmeter 自动化性能测试平台之填坑篇

一.前言 搭建Jenkins+Ant+Jmeter 自动化性能测试平台过程中,坦白说遇到了很多坑...写这篇博文的目的,除了总结经验方便自己以后查阅之外,也为了方便他人遇到相同的坑时,可以快速找到原因并解决.下面开始我漫长的填坑之路~~ 二.填坑之路 1.build.xml中<project name="ant-jmeter-test" default="run" basedir=".">这行代码怎么理解? default:run为b

Jmeter服务性能测试工具

Jmeter性能测试工具 下载地址:http://jmeter.apache.org/download_jmeter.cgi Windows下使用 这里我们选择Binaries包,jmeter不需要安装直接解压使用,但是需要配置Java环境 安装jdk,这里就不说了 配置Java环境变量: win7系统 计算机--属性--高级系统设置--高级--环境变量--系统变量--新建 变量名:JAVA_HOME 变量值:C:\ProgramFiles (x86)\Java\jre1.8.0_101    

jmeter java性能测试

本篇文章主要讲解jmeter如何测试java请求,以项目中某个接口为例,请求数据为post,返回也为post 1:新建maven工程,pom文件为 1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 2 xsi:schemaLocation="http://maven.apache.org/

【转】使用JMeter做性能测试的心得

企业应用开发过程中,性能测试是很重要的一个环节,在这个环节中Apache的JMeter以它开源.100%纯Java.操作方便等优点发挥着很大的作用. 经过一段时间的使用,多少有些心得和技巧,拿出来共享,希望能有些帮助. 1.制作测试脚本: 手工制作测试脚本,需要你知道请求的url和携带的参数等等,太花费时间. 所以可以用badboy工具录制脚本.这个工具虽然不是开源的,但是却可以用来免费的录制成.jmx的脚本,使用起来很方便. 官方网站是:http://www.badboy.com.au/ 2.

使用jmeter进行性能测试-Jmeter教程及技巧汇总 (转)

为什么使用jmeter, 它免费开源, 不断发展, 功能逐渐强大. 可以做功能,负载, 性能测试.一套脚本可以同时用于功能和性能测试.Jmeter 有着众多的插件开发者, 支持多种的测试协议. 一 .Jmeter 使用入门教程(快速入门) 如果您熟悉英语, 可以选择阅读tutorialpoint的教程.  或浏览汉化中的[史上最完整Jmeter教程]. 您也可以继续浏览站长收集的如下资料.  1. Jmeter 快速入门教程(一)  什么是jmeter 及 google plugin介绍 (强大