【转】Jmeter:图形界面压力测试工具

  Jmeter是一款强大的图形界面压力测试工具,完全用Java写成,关于Jmeter的介绍,网上其实有不少的文章,我原本是不想再重复写类似文章的,但我发现有些很关键性的,在我们测试中一定会用到的一些设置或操作很少见到有文章写清楚的,比如有这样的一个常见问题:如何对一个网站的多个链接进行压力测试?因为通常情况下,我们要测试的不是一个链接,假如我们测试的是某一网站的话,而这些链接我们通常都是写入到一个文本文件中,测试的过程中,会随机读取文件中的链接进行压力测试,我们所熟知的一些压力测试工具,例如Siege就可以这样干。

  在我使用Jmeter的过程中,我发现我周围有之前使用过Jmeter的同事,但即使如此,他们对如何将多个链接写入到文本文件中并随机读取进行压力测试也不清楚,故我打算还是在有空的时候写一篇这样的文章,以方便使用者。

  一、 官方网址

  http://jakarta.apache.org/jmeter/

  二、 运行

  下载解压后,在目录jakarta-jmeter-2.4\bin下可以见到一个jmeter.bat文件,双击此文件,打开初始界面如下图:

  注意的是上面显示的是中文,如果你想使用其他语言,比如英文,那么通过菜单选项->选择语言->英文即可,当然转为中文也是同样操作。

三、 运行预准备

  我们现在要对子猴博客来进行一番压力测试,压力测试对象为随机的几个网页链接,这几个链接是写在一个文本文件中的,在压力测试的时候会随机读取。

  1、  建立一个线程组,如下图

  为什么要建立线程组?原因很简单,因为我们要模拟多个线程(用户)来访问网站。

  线程组创建界面如下图:

  名称可以随意填写,默认选中“继续”即可。

  线程属性部分中,线程数是启动多少个线程,我这里填写的是60,Ramp-Up Period (in seconds)表示线程之间间隔多少时间允许,单位是秒,比如如果填写120,那么120/60=2表示60个线程间每隔2秒钟请求网站。

  循环次数:60个线程运行完毕算是一次,循环次数就是这样的一个请求过程运行多少次,我这里填写的是1000.

  每次修改一个设置后,别忘记了保存一下。

  2、  设置请求服务器、压力链接等信息

  接下来很自然的是,我们要测试的网站地址是什么?链接是什么?所以现在我们就来设置这些信息。

  右键点击我们刚创建的线程组,在弹出的菜单中,选择添加->Sampler->Http请求,弹出如下图界面:

  名称:随意填写

  注释:可有可无

  服务器名称或IP:我这里填写 zihou.me

  端口号:我这里填写80

  Timesout部分可以不填

  HTTP请求部分的协议:http,方法我选择的是GET,Content encoding我填的是UTF-8.

  路径:

  这里值得一提的就是这个路径,假如你只是对一个链接进行压力测试,那么这里就非常简单了,你就直接填写一个链接就够了,比如http://www.zihou.me,但很多情况下都不是这样的,我们这里需要多个链接,就如同刚开始讲到的那样,我们要将多个链接保存到一个文本文件中,然后随机读取进行压力测试。我们可以这么干,如图:

  打开界面如下图:

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

  然后点击“生成”按钮,在生成按钮的左边文本框中将生成一个字符串如:

  ${__StringFromFile(E:\test\test.txt,,,)}

  在测试文件中,我们每行写一个URL链接,如下格式:

  2011/03/26/3054

  2011/03/26/3052

  2011/03/26/3042

  2011/03/25/3040

  2011/03/25/3034

  2011/03/24/3027

  注意,每行前面并没有http://www.zihou.me这样的信息,因为我们在前面已经填写了服务器地址为zihou.me,这里就没必要再为每个url填写这个相同前缀了;另外,上面的url格式也只是个例子,表示域名后的部分,但很多时候url后面跟的都是各参数,比如http://www.zihou.me/p?a=1&b=3,如果是这种情况,则上面的链接可以写为:

  a=1&b=3这样的形式。

  现在我们可以来填写前面所说的路径了,如下:

  / ${__StringFromFile(E:\test\test.txt,,,)}

  这样一来,当我们并非请求的时候,就会从test.txt中随机选择url来进行压力测试。

  另外值得注意的一个地方是,如果参数中有中文的情况,运行的时候可能会出现乱码,这个时候就需要注意你在Jmeter中的编码设置与你要请求的网页编码是一致的。

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

  同请求一起发送参数部分:

  如果你仅仅是对某一个固定的页面进行压力测试,那你就可以不用进行上面所说的在文本文件中设置URL的过程了,直接在这里设置就行了,这里的名称就是参数名,值就是参数值,在这里添加就OK了,但你如果是压力多个链接,那这里你可以不用填。

  3、查看运行结果

  上面设置好后,接下来很自然的想到如何查看运行结果呢?Jmeter在这方面提供了好些个查看方式,有表格形式,有曲线形式等等,我个人认为查看表格形式就足够了!

  鼠标右键点击线程组,在弹出的菜单中选择添加->监听器->用表格查询结果,如下图:

  弹出界面如下图:

  当然,你也可以选择其他查看方式,你也可以看到在监听器菜单中,有好多种方式。

  四、 运行

  好了,现在我们终于可以运行了!

  选择菜单项运行->启动,如下图:

  当然,在运行前,你得把所有修改都保存了。

  运行后的结果表格如下:

  各属性如下:

  Sample:每个请求的序号

  Start Time:每个请求开始时间

  Thread Name:每个线程的名称

  Label:Http请求名称

  Sample Time:每个请求所花时间,单位毫秒

  Status:请求状态,如果为勾则表示成功,如果为叉表示失败。

  Bytes:请求的字节数

  如果Status为叉,那很显然请求是失败了,但如果是勾,也并不能认为请求就一定完全成功了,因为还得看Bytes的字节数是否是所请求网页的正常大小值,如果不是则说明发生了丢包现象,也不是完全成功。

  在下面还有几个参数

  样本数目:也就是上面所说的请求个数,成功的情况下等于你设定的并发数目乘以循环次数。

  平均:每个线程请求的平均时间

  最新样本:表示服务器响应最后一个请求的时间

  偏离:服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布(这个我不是很理解)。

  在上面的参数中,我个人认为只要看Status和Bytes这两个就够了。

  好了,主要的就介绍这么多了,其实Jmeter做压力测试的范围远远不止于对Web,它还可以用于Java小服务程序、CGI 脚本、Java 对象、数据库, FTP 服务器等等,更多的使用可以根据自己的需要去研究掌握。

  最后还提到的一点是:你一定注意到了,HTTP请求和结果查看都是在线程组这一节点下创建的,其实,你也可以不用一定要在线程组下创建,你在测试计划下建立也可以,但创建在线程组下面可以使得我们的测试意图一目了然,也就是我们的HTTP请求和结果查看都是基于我们设定的线程组的。

时间: 2024-10-09 21:52:47

【转】Jmeter:图形界面压力测试工具的相关文章

Jmeter:图形界面压力测试工具

Jmeter是一款强大的图形界面压力测试工具,完全用Java写成,关于Jmeter的介绍,网上其实有不少的文章,我原本是不想再重复写类似文章的,但我发现有些很关键性的,在我们测试中一定会用到的一些设置或操作很少见到有文章写清楚的,比如有这样的一个常见问题:如何对一个网站的多个链接进行压力测试?因为通常情况下,我们要测试的不是一个链接,假如我们测试的是某一网站的话,而这些链接我们通常都是写入到一个文本文件中,测试的过程中,会随机读取文件中的链接进行压力测试,我们所熟知的一些压力测试工具,例如Sie

Jmeter使用指南----压力测试工具

https://blog.csdn.net/u012111923/article/details/80705141 https://www.cnblogs.com/st-leslie/p/5185376.html https://www.cnblogs.com/Z-Queen/p/10044798.html    (如何支持 Cookie测试通过) 可以结合 Fidder 来截获 请求头中的 Cookie信息,然后发送测试. 序言 由于公司在来年需要进行压力测试,所以也就借节假日的机会来学习一下

apache压力测试工具的apache bench和JMeter的安装

Apache压力测试工具的安装 1,apache bench的安装 apache  bench工具集成在http的软件包内,可以直接安装apache就可以. 当有些时候,我们不需要用到所有的软件包,我们只需要安装安装其中的某个组件就可以, 例如apache  bench这个组件. 首先安装ab运行需要的软件包apr-util yum install apr-util 然后安装一个yum的工具包,为了可以单独弄出来ab 新建一个目录  mkdir /test 切换目录  cd /test yumd

jmeter压力测试工具使用

1.jmeter是什么? jmeter是一款开源的压力测试工具,可以对web,数据库.等系统进行压力测试.可以查看返回结果,统计测试结果,是一个很好的工具. 2.下载地址 3.安装后如下图 4.bin下找到bat启动应用 5.启动后如下图 6.建立测试计划 7.查看测试结果 原文地址:https://www.cnblogs.com/qianxiaoruofeng/p/11964488.html

九款Web服务器性能压力测试工具

一.http_load 程序非常小,解压后也不到100Khttp_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把客户机搞死.还可以测试HTTPS类的网站请求.下载地址:http_load-12mar2006.tar.gz安装很简单 #tar zxvf http_load-12mar2006.tar.gz#cd http_load-12mar2006#make && make install 基本用法:

十大抢手的网站压力测试工具

两天,jnj在本站发布了<如何在低速率网络中测试 Web 应用>,那是测试网络不好的情况.而下面是十个免费的可以用来进行Web的负载/压力测试的工具,这样,你就可以知道你的服务器以及你的WEB应用能够顶得住多少的并发量,以及你的网站的性能.我相信,北京奥组委的订票网站的开发团队并不知道有这样的测试工具. Grinder –  Grinder是一个开源的JVM负载测试框架,它通过很多负载注射器来为分布式测试提供了便利. 支持用于执行测试脚本的Jython脚本引擎HTTP测试可通过HTTP代理进行

[网站安全] 十大抢手的网站压力测试工具

参考:http://www.oschina.net/news/30374/10-free-tools-to-loadstress-test-your-web?from=rss 两天,jnj在本站发布了<如何在低速率网络中测试 Web 应用>,那是测试网络不好的情况.而下面是十个免费的可以用来进行Web的负载/压力测试的工具,这样,你就可以知道你的服务器以及你的WEB应用能够顶得住多少的并发量,以及你的网站的性能.我相信,北京奥组委的订票网站的开发团队并不知道有这样的测试工具. Grinder 

十个免费的Web压力测试工具

两天,jnj在本站发布了<如何在低速率网络中测试 Web 应用>,那是测试网络不好的情况.而下面是十个免费的可以用来进行Web的负载/压力测试的工具,这样,你就可以知道你的服务器以及你的WEB应用能够顶得住多少的并发量,以及你的网站的性能.我相信,北京奥组委的订票网站的开发团队并不知道有这样的测试工具. Grinder –  Grinder是一个开源的JVM负载测试框架,它通过很多负载注射器来为分布式测试提供了便利. 支持用于执行测试脚本的Jython脚本引擎HTTP测试可通过HTTP代理进行

python的web压力测试工具-pylot安装使用

http://blog.csdn.net/chenggong2dm/article/details/10106517 pylot是python编写的一款web压力测试工具.使用比较简单.而且测试结果相对稳定. 这里不得不鄙视一下apache 的ab测试,那结果真是让人蛋疼,同样的url,测试结果飘忽不定,看得人心惊肉跳,摸不着头脑.   下载 pylot官网:www.pylot.org/ 下载地址: http://www.pylot.org/download.html 最新的版本为pylot_1