badboy+jMeter+jProfile软件测试工具介绍(二)
2015-07-19 18:04
435 查看
三、 JMeter
3.1简介
JMeter,一个100%的纯Java桌面应用,它是Apache组织的开放源代码项目,它是功能和性能测试的工具。JMeter可以用于测试静态或者动态资源的性能 (文件、Servlets、Perl脚本、Java对象、数据库和查询、ftp服务器或者其他资源)。原先Jmemer是为Web/HTTP测试而设计的,但是它已经扩展以支持各种各样的测试模块。它和用于HTTP和SQL数据库(使用JDBC)的模块一起运送。它可以用来测试静止资料库或者活动资料库中的服务器的运行情况,可以用来模拟对服务器或者网络系统加以重负荷以测试它的抵抗力,或者用来分析不同负荷类型下的所有运行情况。它也提供了一个可替换的界面用来定制数据显示,测试同步及测试的创建和执行。
JMeter的特性:
(1)能够对HTTP和FTP服务器进行压力和性能测试, 也可以对任何数据库进行同样的测试(通过JDBC)。
(2)完全的可移植性和100%纯Java。
(3)完全Swing和轻量组件支持(预编译的JAR使用javax.swing.*)包。
(4)完全多线程框架允许通过多个线程并发取样和通过单独的线程组对不同的功能同时取样。
(5)精心的GUI设计允许快速操作和更精确的计时。
(6)缓存和离线分析/回放测试结果。
(7)可链接的取样器允许无限制的测试能力。
(8)各种负载统计表和可链接的计时器可供选择。
(9)数据分析和可视化插件提供了很好的可扩展性以及个性化。
(10)具有提供动态输入到测试的功能(包括Javascrīpt)。
(11)支持脚本变成的取样器(在1.9.2及以上版本支持BeanShell)。
3.2 Jmeter安装
1、下载
http://jmeter.apache.org/download_jmeter.cgi
2、安装环境
操作系统:Windows7/8
安装程序:apache-jmeter-2.11
JAVA环境:JDK 1.7
3、环境变量配置
(1)JDK环境变量配置请参考相关教程
(2)JMeter环境变量配置
解压jakarta-jmeter-2.11文件至e盘,本文解压至e:\jmeter-2.11目录下。桌面上选择“我的电脑”(右键)/高级/环境变量, 在“系统变量”栏中点击“新建”, 在变量名中输入:JMETER_HOME,变量值中输入:e:\ Jmeter-2.11,点击确定即可。再修改CLASSPATH变量,变量值中添加如下值: %JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-1.2.jar; 然后确定即可。
4、检查JMeter安装是否OK
具体是:进入jmeter目录下的bin文件夹,点击jmeter.bat,查看页面显示,如果能显示jmeter操作页面则安装成功。
3.3基本操作
1、打开JMeter界面
进入jmeter目录下的bin文件夹,点击jmeter.bat即可打开Jmeter图形界面,如下图所示:
![](http://img.blog.csdn.net/20150719180450328)
2、导入badboy生成的脚本:zsnews.jmx
文件->打开->选择zsnews.jmx->确认
![](http://img.blog.csdn.net/20150719180525975)
4、运行预准备
(1)建立线程组
为什么要建立线程组?原因很简单,因为我们要模拟多个线程(用户)来访问网站。线程组创建界面如下图:
![](http://img.blog.csdn.net/20150719180612676)
名称可以随意填写,默认选中“继续”即可。
线程属性部分中,线程数是启动多少个线程,我这里填写的是300,Ramp-Up Period (in seconds)表示线程之间间隔多少时间允许,单位是秒,比如如果填写20,那么300/20=15表示300个线程间每隔15秒钟请求网站。
循环次数:300个线程运行完毕算是一次,循环次数就是这样的一个请求过程运行多少次,我这里填写的是10。
每次修改一个设置后,别忘记了保存一下。
(2)参数化
![](http://img.blog.csdn.net/20150719180719165)
![](http://img.blog.csdn.net/20150719180731669)
上面是我的参数化数据池,这个可以是txt格式也可以是dat格式。注意:
a)JMeter参数文件的第一行没有列名称
b)这里要注意的是参数文件的编码,可以使用记事本另存为就可以修改该编码(编码问题在使用CSV Data Set Config参数化时要求的比较严格)
JMeter参数化主要有两种方式:
1、 参数化方法一 —— 依赖JMeter函数助手
![](http://img.blog.csdn.net/20150719180815958)
a) 通过函数助手找到_CSVRrad方法
b) 输入参数文件的路径
c) CSV文件列号是从0开始的,第一列0、第二列1、第三列2、依次类推。。有些同学说是从1开始是错误的。
d) 然后点击【生成】按钮,则会自动生成我们需要的参数化函数。
![](http://img.blog.csdn.net/20150719180849937)
e) 复制生成的参数化函数,打开登陆请求页面,在右则的参数化中找到我们要参数化的字段,这里对省份、专业和年份做参数化,第一列是sf(省份),列号为0;第二列是year(年份),列号为1;第三列是zy(专业),序列号为2;修改函数中对应的参数化字段列号就可以啦。
![](http://img.blog.csdn.net/20150719180941313)
2、 参数化方法二 —— 使用CSV控件
但是设置集合点后,使用jmeter函数的参数化数据执行顺序出现混乱,解决方法就是 不要用函数的方式 用csv的控件:CSV Data Set Config。函数助手方法要比CSV控件方法参数化功能要弱。
![](http://img.blog.csdn.net/20150719181018099)
a) 选中线程组->右键点击添加->配置元件->CSV Data Set Config
![](http://img.blog.csdn.net/20150719181050326)
![](http://img.blog.csdn.net/20150719181101275)
注释:
Filename:E:\info.dat 文件名,指保存参数化数据的文件目录,可以相对或者绝对路径
File encoding:UTF-8,info.dat文件的编码格式,可以使用电脑自带的笔记本另存为时选择编码方式即可
Variable Names(comma-delimited):sf,year,zf参数名称(如:有几列参数,在这里面就写几个参数名称,每个名称中间用分隔符分割,分隔符
在下面的“Delimitet”中定义,为了和文件中的“,”对应,这里也用“,”分割每个参数名,这里的sf,year,zf可以利用变量名来引
用:sf,{year},${zy}
Delimitet:定义分隔符,这里定义某个分隔符,则在“Variable Names”用这里定义的分隔符分割参数。
Allow quote data:选项选为“true”的时候对全角字符的处理出现乱码
Recycle on EOF:是否循环读入,因为CSV Data Set Config一次读入一行,分割后存入若干变量中交给一个线程,如果线程数超过文本的记录行数,那么可以选择从头再次读入
b) 打开登陆请求页面,在右则的参数化中找到我们要参数化的字段,这里对省份、专业和年份做参数化:
![](http://img.blog.csdn.net/20150719181151784)
(3)添加监听器
为了查看运行结果,主要使用两种监听器。
1、 查看结果树:树状列表查看结果
添加->监听器->察看结果树
![](http://img.blog.csdn.net/20150719181217306)
![](http://img.blog.csdn.net/20150719181250808)
通过这个Listener,我们可以看到很详细的每个transaction它所返回的结果,其中红色是指出错的transaction,绿色则为通过的。
如果你测试的场景会有很多的transaction完成,建议在这个Listener中仅记录出错的transaction就可以了。要做到这样,你只需要将Log/Display:中的Errors勾中就可以了。
2、 聚合报告:可以得到通常意义上性能测试最关心的结果
![](http://img.blog.csdn.net/20150719181350432)
![](http://img.blog.csdn.net/20150719181401939)
Samples – 本次场景中一共完成了多少个Transaction
Average – 平均响应时间
Median – 统计意义上面的响应时间的中值
90% Line – 所有transaction中90%的transaction的响应时间都小于xx
Min – 最小响应时间
Max – 最大响应时间
PS: 以上时间的单位均为ms
Error – 出错率
Troughput – 吞吐量,单位:transaction/sec
KB/sec – 以流量做衡量的吞吐量
5、运行线程
点击绿色执行按钮即可:
![](http://img.blog.csdn.net/20150719181426937)
3.4参考资料
1、下载地址
http://jmeter.apache.org/download_jmeter.cgi
2、安装教程
http://blog.csdn.net/rital/article/details/4329942
3、使用教程
http://blog.sina.com.cn/s/blog_56c9b55c010148os.html
http://www.cnblogs.com/Carrie_Liang/archive/2008/11/10/1330997.html
http://www.cnblogs.com/zhuque/archive/2012/11/20/2779253.html
3.1简介
JMeter,一个100%的纯Java桌面应用,它是Apache组织的开放源代码项目,它是功能和性能测试的工具。JMeter可以用于测试静态或者动态资源的性能 (文件、Servlets、Perl脚本、Java对象、数据库和查询、ftp服务器或者其他资源)。原先Jmemer是为Web/HTTP测试而设计的,但是它已经扩展以支持各种各样的测试模块。它和用于HTTP和SQL数据库(使用JDBC)的模块一起运送。它可以用来测试静止资料库或者活动资料库中的服务器的运行情况,可以用来模拟对服务器或者网络系统加以重负荷以测试它的抵抗力,或者用来分析不同负荷类型下的所有运行情况。它也提供了一个可替换的界面用来定制数据显示,测试同步及测试的创建和执行。
JMeter的特性:
(1)能够对HTTP和FTP服务器进行压力和性能测试, 也可以对任何数据库进行同样的测试(通过JDBC)。
(2)完全的可移植性和100%纯Java。
(3)完全Swing和轻量组件支持(预编译的JAR使用javax.swing.*)包。
(4)完全多线程框架允许通过多个线程并发取样和通过单独的线程组对不同的功能同时取样。
(5)精心的GUI设计允许快速操作和更精确的计时。
(6)缓存和离线分析/回放测试结果。
(7)可链接的取样器允许无限制的测试能力。
(8)各种负载统计表和可链接的计时器可供选择。
(9)数据分析和可视化插件提供了很好的可扩展性以及个性化。
(10)具有提供动态输入到测试的功能(包括Javascrīpt)。
(11)支持脚本变成的取样器(在1.9.2及以上版本支持BeanShell)。
3.2 Jmeter安装
1、下载
http://jmeter.apache.org/download_jmeter.cgi
2、安装环境
操作系统:Windows7/8
安装程序:apache-jmeter-2.11
JAVA环境:JDK 1.7
3、环境变量配置
(1)JDK环境变量配置请参考相关教程
(2)JMeter环境变量配置
解压jakarta-jmeter-2.11文件至e盘,本文解压至e:\jmeter-2.11目录下。桌面上选择“我的电脑”(右键)/高级/环境变量, 在“系统变量”栏中点击“新建”, 在变量名中输入:JMETER_HOME,变量值中输入:e:\ Jmeter-2.11,点击确定即可。再修改CLASSPATH变量,变量值中添加如下值: %JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-1.2.jar; 然后确定即可。
4、检查JMeter安装是否OK
具体是:进入jmeter目录下的bin文件夹,点击jmeter.bat,查看页面显示,如果能显示jmeter操作页面则安装成功。
3.3基本操作
1、打开JMeter界面
进入jmeter目录下的bin文件夹,点击jmeter.bat即可打开Jmeter图形界面,如下图所示:
2、导入badboy生成的脚本:zsnews.jmx
文件->打开->选择zsnews.jmx->确认
4、运行预准备
(1)建立线程组
为什么要建立线程组?原因很简单,因为我们要模拟多个线程(用户)来访问网站。线程组创建界面如下图:
名称可以随意填写,默认选中“继续”即可。
线程属性部分中,线程数是启动多少个线程,我这里填写的是300,Ramp-Up Period (in seconds)表示线程之间间隔多少时间允许,单位是秒,比如如果填写20,那么300/20=15表示300个线程间每隔15秒钟请求网站。
循环次数:300个线程运行完毕算是一次,循环次数就是这样的一个请求过程运行多少次,我这里填写的是10。
每次修改一个设置后,别忘记了保存一下。
(2)参数化
上面是我的参数化数据池,这个可以是txt格式也可以是dat格式。注意:
a)JMeter参数文件的第一行没有列名称
b)这里要注意的是参数文件的编码,可以使用记事本另存为就可以修改该编码(编码问题在使用CSV Data Set Config参数化时要求的比较严格)
JMeter参数化主要有两种方式:
1、 参数化方法一 —— 依赖JMeter函数助手
a) 通过函数助手找到_CSVRrad方法
b) 输入参数文件的路径
c) CSV文件列号是从0开始的,第一列0、第二列1、第三列2、依次类推。。有些同学说是从1开始是错误的。
d) 然后点击【生成】按钮,则会自动生成我们需要的参数化函数。
e) 复制生成的参数化函数,打开登陆请求页面,在右则的参数化中找到我们要参数化的字段,这里对省份、专业和年份做参数化,第一列是sf(省份),列号为0;第二列是year(年份),列号为1;第三列是zy(专业),序列号为2;修改函数中对应的参数化字段列号就可以啦。
2、 参数化方法二 —— 使用CSV控件
但是设置集合点后,使用jmeter函数的参数化数据执行顺序出现混乱,解决方法就是 不要用函数的方式 用csv的控件:CSV Data Set Config。函数助手方法要比CSV控件方法参数化功能要弱。
a) 选中线程组->右键点击添加->配置元件->CSV Data Set Config
注释:
Filename:E:\info.dat 文件名,指保存参数化数据的文件目录,可以相对或者绝对路径
File encoding:UTF-8,info.dat文件的编码格式,可以使用电脑自带的笔记本另存为时选择编码方式即可
Variable Names(comma-delimited):sf,year,zf参数名称(如:有几列参数,在这里面就写几个参数名称,每个名称中间用分隔符分割,分隔符
在下面的“Delimitet”中定义,为了和文件中的“,”对应,这里也用“,”分割每个参数名,这里的sf,year,zf可以利用变量名来引
用:sf,{year},${zy}
Delimitet:定义分隔符,这里定义某个分隔符,则在“Variable Names”用这里定义的分隔符分割参数。
Allow quote data:选项选为“true”的时候对全角字符的处理出现乱码
Recycle on EOF:是否循环读入,因为CSV Data Set Config一次读入一行,分割后存入若干变量中交给一个线程,如果线程数超过文本的记录行数,那么可以选择从头再次读入
b) 打开登陆请求页面,在右则的参数化中找到我们要参数化的字段,这里对省份、专业和年份做参数化:
(3)添加监听器
为了查看运行结果,主要使用两种监听器。
1、 查看结果树:树状列表查看结果
添加->监听器->察看结果树
通过这个Listener,我们可以看到很详细的每个transaction它所返回的结果,其中红色是指出错的transaction,绿色则为通过的。
如果你测试的场景会有很多的transaction完成,建议在这个Listener中仅记录出错的transaction就可以了。要做到这样,你只需要将Log/Display:中的Errors勾中就可以了。
2、 聚合报告:可以得到通常意义上性能测试最关心的结果
Samples – 本次场景中一共完成了多少个Transaction
Average – 平均响应时间
Median – 统计意义上面的响应时间的中值
90% Line – 所有transaction中90%的transaction的响应时间都小于xx
Min – 最小响应时间
Max – 最大响应时间
PS: 以上时间的单位均为ms
Error – 出错率
Troughput – 吞吐量,单位:transaction/sec
KB/sec – 以流量做衡量的吞吐量
5、运行线程
点击绿色执行按钮即可:
3.4参考资料
1、下载地址
http://jmeter.apache.org/download_jmeter.cgi
2、安装教程
http://blog.csdn.net/rital/article/details/4329942
3、使用教程
http://blog.sina.com.cn/s/blog_56c9b55c010148os.html
http://www.cnblogs.com/Carrie_Liang/archive/2008/11/10/1330997.html
http://www.cnblogs.com/zhuque/archive/2012/11/20/2779253.html
相关文章推荐
- 细看网络仿真工具
- 详解SQL Server 2008工具SQL Server Profiler
- C#实现的SN快速输入工具实例
- DOS下的必备工具
- 基于C++自动化编译工具的使用详解
- 如何使用Strace调试工具
- 五个PHP程序员工具
- 发布一个高效的JavaScript分析、压缩工具 JavaScript Analyser
- 阻止网页挂马的若干工具小集合
- 10个实用的脚本代码工具
- Android快速分析apk工具aapt的使用教程
- PHP性能分析工具XHProf安装使用教程
- apache ab工具页面压力测试返回结果含义解释
- Java并发编程中构建自定义同步工具
- python的绘图工具matplotlib使用实例
- Android开发者必备的十个工具介绍
- Python的批量远程管理和部署工具Fabric用法实例
- 给软件测试人员找工作时的一些建议
- 如何利用Object Browser图形化工具提高Oracle开发工作效率(一)SQL编写调试篇