当前位置:文档之家› Jmeter+BadBoy执行压力测试操作手册-徐其法-(2016.1.19)

Jmeter+BadBoy执行压力测试操作手册-徐其法-(2016.1.19)

Jmeter+BadBoy执行压力测试操作手册合肥晶奇电子科技有限公司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与BadBoyApache JMeter是Apache组织开发的基于Java的开源压力测试工具。

可以测试web应用程序、Java小服务程序、Java 对象、数据库、FTP 服务器等。

JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。

Badboy是一款不错的Web自动化测试工具,用于非商业用途也是免费的。

我们可以使用BadBoy录制一系列网页交互动作,BadBoy会以脚本的形式记录下操作的过程,并可以重复执行,执行回归测试,减轻测试工程师重复劳动。

BadBoy简单易用,让我们体会到自动化测试的便利,更可喜的是,它提供了将录制的交互过程导出为Jmeter支持的脚本,这使得Jmeter与BadBoy珠联璧合,我们可以利用BadBoy录制的脚本来轻松执行压力测试。

2下载与安装一:Jmeter下载自官网下载(/)下载JMeter,目前最新版本是2.13。

下载完毕解压即可。

运行Jmeter之前,先安装JDK,并配置环境变量。

安装完毕JDK,双击apache-jmeter-2.13\bin\jmeter.bat文件启动运行。

首界面:二:badboy下载自官网(.au/)下载badboy安装包,本文以2.1版本为例。

安装完毕运行首界面:3单请求测试web系统本文举的实例是:在一台电脑用Jmeter模拟200个用户,同时去使用bing搜索不同的关键字,查看页面返回的时间是否在正常范围内。

我们模拟200个用户发送get请求到/search?q=博客园+张飞。

3.1配置线程组Thread Group1、添加线程组: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方式。

下文示例两种不同的请求方式。

添加http 请求,发送get 请求到/search?q=博客园+张飞。

填写数据:3.4添加显示运行结果的监听器查看运行结果的方式有多种,比如可以用report也可以用图形界面,report显示精确数据,图形界面显示主观的效果。

3.4.1添加Summary Report3.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-83、出现: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 report7参考资料简单的压力测试/TankXiao/p/4059378.html?utm_source=tuicool博客园系统文章/yangxia-test/category/431240.html。

相关主题