jmeter 的使用

阅读:500 2019-03-19 14:42:16 来源:新网

2013-06-24

postedbyyeho

apachejmeter是apache组织开发的基于java的压力测试工具。用于对软件做压力测试,它最初被设计用于web应用测试但后来扩展到其他测试领域。它可以用于测试静态和动态资源例如静态文件、java小服务程序、cgi脚本、java对象、数据库,ftp服务器,等等。jmeter可以用于对服务器、网络或对象模拟巨大的负载,来在不同压力类别下测试它们的强度和分析整体性能。另外,jmeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,jmeter允许使用正则表达式创建断言。

官方网站下载最新版本:http://jmeter.apache.org/download_jmeter.cgi,目前最新版是apachejmeter2.9使用jmeter依赖jdk,建议安装jdk1.6版本linux下安装jdk参考文章:http://www.linuxeye.com/linux/linux-install-jdk.htmlwindowns下安装jdk同linux下安装类似,这里就不介绍了。

这里就在win下进行,图形界面较为方便在目录apache-jmeter-2.9bin下可以见到一个jmeter.bat文件,双击此文件,即看到jmeter控制面板。

现在来对linuxeye进行压力测试,压力测试对象为随机的几个网页链接,这几个链接是写在一个文本文件中的,在压力测试的时候会随机读取。1)建立一个线程组

为什么要建立线程组?原因很简单,因为我们要模拟多个线程(用户)来访问linuxeye。线程属性部分中,线程数是启动多少个线程,我这里填写的是10,ramp-upperiod(inseconds)表示线程之间间隔多少时间允许,单位是秒,比如如果填写10,那么10/10=1表示10个线程间每隔1秒钟请求网站。循环次数:60个线程运行完毕算是一次,循环次数就是这样的一个请求过程运行多少次,我这里测试就填写的是2.每次修改一个设置后,别忘记了保存一下。

2)设置请求服务器、压力链接等信息接下来很自然的是,我们要测试的网站地址是什么?链接是什么?所以现在我们就来设置这些信息。右键点击我们刚创建的线程组,在弹出的菜单中,选择添加->sampler->http请求

路径:假如你只是对一个链接进行压力测试,直接填写一个链接就ok,比如http://www.linuxeye.com,但是大多数情况下都不是这样的,我们这里需要多个链接,就如同刚开始讲到的那样,我们要将多个链接保存到一个文本文件中,然后随机读取进行压力测试。我们可以这么做,如图:

在选择一个功能下拉列表中选择_stringfromfile,然后在本机新建一个测试文件c:usersrootdesktopapache-jmeter-2.9test.txt,在第一行(你也可以不在第一行)的值中填写测试文件的路径,如下图:

然后点击“生成”按钮,在生成按钮的左边文本框中将生成一个字符串如:${__stringfromfile(c:usersrootdesktopapache-jmeter-2.9test.txt,,,)}在test.txt测试文件中,我们每行写一个url链接,如下格式:

/command/linuxrumen/program/jianzhan/command/cat.html/command/chmod.html/command/lsattr.html

注意,每行前面并没有http://www.linuxeye.com这样的信息,因为我们在前面已经填写了服务器地址为www.linuxeye.com,这里就没必要再为每个url填写这个相同前缀了;另外,上面的url格式也只是个例子,表示域名后的部分。

这样一来,当我们并非请求的时候,就会从test.txt中随机选择url来进行压力测试。另外值得注意的一个地方是,如果参数中有中文的情况,运行的时候可能会出现乱码,这个时候就需要注意你在jmeter中的编码设置与你要请求的网页编码是一致的。

路径文本框下面的选项,可以按默认的就成,usemultipart/form-dataforhttppost是当请求中有附件的情况,一般情况下都不用选中的。

3)查看运行结果鼠标右键点击线程组,在弹出的菜单中选择添加->监听器->用表格查询结果

当然,在运行前,请把所有修改都保存好

各属性如下:sample:每个请求的序号starttime:每个请求开始时间threadname:每个线程的名称label:http请求名称sampletime:每个请求所花时间,单位毫秒status:请求状态,如果为勾则表示成功,如果为叉表示失败。bytes:请求的字节数如果status为叉,那很显然请求是失败了,但如果是勾,也并不能认为请求就一定完全成功了,因为还得看bytes的字节数是否是所请求网页的正常大小值,如果不是则说明发生了丢包现象,也不是完全成功。

在下面还有几个参数:样本数目:也就是上面所说的请求个数,成功的情况下等于你设定的并发数目乘以循环次数。平均:每个线程请求的平均时间最新样本:表示服务器响应最后一个请求的时间偏离:服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布(这个我不是很理解)。

术语:1、线程组:测试里每个任务都要线程去处理,所有我们后来的任务必须在线程组下面创建。可以在“testplan(鼠标右击)->添加->threads(users)->线程组”来建立它,然后在线程组面板里有几个输入栏:线程数、ramp-upperiod(inseconds)、循环次数,其中ramp-upperiod(inseconds)表示在这时间内创建完所有的线程。如有8个线程,ramp-up=200秒,那么线程的启动时间间隔为200/8=25秒,这样的好处是:一开始不会对服务器有太大的负载。2、取样器(sampler):可以认为所有的测试任务都由取样器承担,有很多种,如:http请求。3、断言:对取样器返回的请求结果给出判断是否正确。4、monitor:它的功能是对取样器的请求结果显示、统计一些数据(吞吐量、kb/s……)等

相关文章
{{ v.title }}
{{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
你可能感兴趣
推荐阅读 更多>
推荐商标

{{ v.name }}

{{ v.cls }}类

立即购买 联系客服