操作手册
合肥晶奇电子科技有限公司
2016-1-19
版本变更记录
| 版本 | 修改时间 | 作者 | 参与者 | 修改内容 |
| 1.0 | 2016.1.19 | 王瑶瑶 徐其法 | 新建 | |
目 录
目 录 3
1 Jmeter与BadBoy 4
2 下载与安装 4
3 单请求测试web系统 5
3.1 配置线程组Thread Group 6
3.2 使用CSV Data Set Config设置参数 6
3.3 添加HTTP Request 7
3.3.1 GET方式请求 8
3.3.2 POST方式请求 9
3.4 添加显示运行结果的 9
3.4.1 添加Summary Report 10
3.4.2 添加图形结果 11
3.5 运行测试 11
3.6 结果分析 12
3.6.1 Summary report分析 12
3.6.2 图形结果分析 12
4 连续请求测试web系统 13
4.1 badboy录制脚本并导出 13
4.2 Jmeter导入脚本 13
4.3 执行测试 15
4.4 查看结果 15
5 压力测试数据库 15
5.1 加载JDBC驱动 15
5.2 设置JDBC Connection Configuration 16
5.3 设置JDBC request 17
5.4 添加断言判断结果 20
5.5 运行并查看结果 21
5.6 疑难杂症 21
6 测试TCP/IP服务 22
6.1 添加现场组 22
6.2 TCP取样器 23
6.3 添加响应断言 24
6.4 添加断言结果 25
6.5 添加summary report 25
7 参考资料 25
1Jmeter与BadBoy
Apache JMeter是Apache组织开发的基于Java的开源压力测试工具。可以测试web应用程序、Java小服务程序、Java 对象、数据库、FTP 服务器等。
JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。
Badboy是一款不错的Web自动化测试工具,用于非商业用途也是免费的。我们可以使用BadBoy录制一系列网页交互动作,BadBoy会以脚本的形式记录下操作的过程,并可以重复执行,执行回归测试,减轻测试工程师重复劳动。
BadBoy简单易用,让我们体会到自动化测试的便利,更可喜的是,它提供了将录制的交互过程导出为Jmeter支持的脚本,这使得Jmeter与BadBoy珠联璧合,我们可以利用BadBoy录制的脚本来轻松执行压力测试。
2下载与安装
一:Jmeter下载
自官网下载(http://jmeter.apache.org/)下载JMeter,目前最新版本是2.13。下载完毕解压即可。
运行Jmeter之前,先安装JDK,并配置环境变量。
安装完毕JDK,双击apache-jmeter-2.13\\bin\\jmeter.bat文件启动运行。
首界面:
二:badboy下载
自官网(http://www.badboy.com.au/)下载badboy安装包,本文以2.1版本为例。
安装完毕运行首界面:
3单请求测试web系统
本文举的实例是:在一台电脑用Jmeter模拟200个用户,同时去使用bing搜索不同的关键字,查看页面返回的时间是否在正常范围内。
我们模拟200个用户发送get请求到 http://cn.bing.com/search?q=博客园+张飞。
3.1配置线程组Thread Group
1、添加线程组:
2、设置现场组:
●Number of Threads(users):一个用户占一个线程,200个线程就是模拟200个用户。
●Ramp-Up Period(in seconds):设置线程需要多长时间全部启动。如果线程数为200,准备时长为10,那么需要1秒钟启动20个线程。也就是每秒钟启动20个线程。
●Loop Count: 每个线程发送请求的次数。如果线程数为200 ,循环次数为10 ,那么每个线程发送10次请求。总请求数为200*10=2000 。如果勾选了“永远”,那么所有线程会一直发送请求,直到选择停止运行脚本。
3.2使用CSV Data Set Config设置参数
首先我们把测试需要用到的2个参数放在txt文件中,新建一个data.txt文件,输入些数据,一行有两个数据,用半角逗号分隔。
再添加CSV data:
配置CSV Data数据:
注意boke与user之间也是半角逗号。
3.3添加HTTP Request
众所周知,http请求分为get方式和post方式。下文示例两种不同的请求方式。
3.3.1GET方式请求
添加http 请求,发送get 请求到 http://cn.bing.com/search?q=博客园+张飞。
填写数据:
3.3.2POST方式请求
3.4添加显示运行结果的
查看运行结果的方式有多种,比如可以用report也可以用图形界面,report显示精确数据,图形界面显示主观的效果。
3.4.1添加Summary Report
3.4.2添加图形结果
3.5运行测试
3.6结果分析
3.6.1Summary report分析
3.6.2图形结果分析
●曲线图的纵轴为时间,单位毫秒,表示请求发送出去后,返回的时间长度。
●横轴为请求发送的发送的分布,在thread group界面设置发送请求共4000个,发送时间跨度为10秒,因此横轴的绘制时间长度为10秒。
4连续请求测试web系统
在实际应用中,单个http请求测试往往不能满足需求,比如,通常先经过系统登录(先去掉验证码),然后测试系统功能(选择最复杂的功能执行,压力测试更有效),这种连续的动作执行,使用jmeter实现有点复杂,本文使用badboy录制交互脚本,导入jmeter运行。
4.1badboy录制脚本并导出
点击badboy工具栏红色圆形按钮,启动录制,在badboy地址栏中输入系统地址,以163邮箱为例,输入完毕回车。
界面显示邮箱登录界面:
输入用户名、密码,点击登录按钮,系统显示输入验证码界面。
录制到此结束,点击黑色方框按钮,停止录制。
通过file->export to jmeter菜单导出jmeter脚本,保存为jmx格式。
4.2Jmeter导入脚本
1、点击打开按钮,选择导入的jmx文件:
打开脚本文件,会发现输入的用户名、密码等参数也记录在脚本中,也就是说jmeter在执行压力测试的时候,不用设置用户名、密码参数。
2、加载文件之后的界面:
3、设置线程组:
4、添加图形结果、聚合报告。
4.3执行测试
点击运行按钮,执行运行。
4.4查看结果
查看聚合报告,每个请求所用的开销,平均值、最小、最大值,以及执行错误的概率。
5压力测试数据库
5.1加载JDBC驱动
1、复制oracle\\product\\10.2.0\\db_1\\jdbc\\lib\\classes12.jar文件复制到JMeter/lib目录下。
2、在测试计划界面,点击“浏览...”按钮,将你的JDBC驱动添加进来。
5.2设置JDBC Connection Configuration
添加线程组,并添加JDBC Connection configuration
配置连接字符串、驱动类、用户名、密码:
5.3设置JDBC request
添加一个“JDBC request”。修改的参数Variable Name,要与上面的 JDBC Connection Configuration填写同样的内容,如此处的:oracleConn。这里表示 JDBC Connection Configuration建立一个名为Oracle 的连接池,之后其它的JDBC Request都共用这个连接池。
带参数的数据插入
5.4添加断言判断结果
5.5运行并查看结果
添加聚合报告、图形报告等查看压力测试结果。点击运行按钮,运行完毕,查看报告。
5.6疑难杂症
1、出现:java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:@127.0.0.1:1521:ORCL错误。
解决方法:
原来是因为没有加载包的缘故,关闭jmeter,然后将class12.jar(电脑上搜索一下classes12.jar这个文件)复制到jmeter目录下面的lib目录中,重新启动运行即可。
2、连接MySQL数据库时,出现:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown character set: 'utf8mb4'错误。
解决方法:
看起来似乎是设置字符的问题,后来在JDBC连接配置那里将Database URL加上字符编码即可(?characterEncoding=UTF-8)
jdbc:mysql://127.0.0.1:3306/paydb?characterEncoding=UTF-8
3、出现:org.apache.avalon.excalibur.datasource.NoAvailableConnectionException: Could not create enough Components to service your request (Timed out).
解决方法:
出现这个原因是因为连接超时,增大Pool TimeOUT就可以了。
4、执行时提示:ORA-00911: invalid character。
解决方法:
确保你在JDBC Request里面的Query中输入的SQL语句是正确的。注意:SQL语句后面不要添加分号。
5、数据库连接池配置参数:
6测试TCP/IP服务
6.1添加现场组
设置线程数、每个线程发送的请求数、发送出去的时间范围。
6.2TCP取样器
6.3添加响应断言
TCP服务返回数据与“00000001“匹配,匹配失败为错误。
6.4添加断言结果
当请求和返回结果都没有错误时候,断言结果输出”CP取样器“,否则输出错误原因,错误原因包括:
●返回结果与响应断言值不匹配
●请求发送时间超出了TCP取样器中设置的数值(timeout-request)
●响应时间超出了TCP取样器中设置的数值(timeout-response)
6.5添加summary report
7参考资料
简单的压力测试
http://www.cnblogs.com/TankXiao/p/4059378.html?utm_source=tuicool
博客园系统文章
http://www.cnblogs.com/yangxia-test/category/431240.html下载本文