rpt自动化测试与报告分析教程.docx
《rpt自动化测试与报告分析教程.docx》由会员分享,可在线阅读,更多相关《rpt自动化测试与报告分析教程.docx(25页珍藏版)》请在冰豆网上搜索。
rpt自动化测试与报告分析教程
RationalPerformancetester
自动化测试与报告分析教程
一.RationalPerformancetester性能测试工具简介
二.RationalPerformancetester的安装说明
三.记录和回放测试脚本录制和回放
四.场景设置与实战,常用工具对比
五.执行测试脚本和监视测试资源
六.分析结果
七.RationalPerformancetester和LoadRunner的比较
目录
一.RationalPerformancetester性能测试工具简介1
二.安装说明2
三.实战举例:
以工作流审批系统的“登陆”为例4
1.录制脚本5
1.1.创建性能测试项目5
1.2.录制测试脚本7
1.3.脚本回放8
1.4.编辑测试脚本9
2.场景设置12
2.1.创建性能调度12
2.2.性能调度的设置13
3.测试结果分析15
3.1.总体报告15
3.2.摘要报告16
3.3.页面性能报告16
3.4.响应时间和摘要报告17
3.5.响应与时间详细信息18
3.6.页面吞吐量报告18
3.7.服务器运行状况摘要报告19
3.8.服务器运行状况详细信息报告20
3.9.服务器资源监控报告20
四、RationalPerformancetester和LoadRunner的比较21
4.工具大比拼21
5.小结23
五常见问题23
六.参考文献24
一.RationalPerformancetester性能测试工具简介
IBMRationalPerformanceTester(简称RPT)是IBM基于Eclipse平台及开源的测试及监控框架Hyades开发出来的最新性能测试解决方案。
它适用于性能测试人员和性能优化人员,用于开发团队在部署基于HTTP和Https通信协议的Web应用程序前,验证其可扩展性、性能和可靠性。
在为性能测试员和性能优化人员提供了前面所提到的各种性能测试能力以外,它还提供了可视化编辑器,一方面可以使新的测试人员可以在无需培训和编程的情况下,即可快速上手完成性能测试;另一方面,也为需要高级分析和自定义选项的专家级测试人员,提供了对丰富的测试信息的访问和定制能力、自定义Java代码插入执行能力、自动检测和处理可变数据的能力。
二.安装说明
(1)软件的安装目录
172.16.7.38\Folder1\测试中心资料库\01安装软件\05测试软件\rational_performance_testerx.x,里面有3个文件RPT_Vx.x_Part_1.zip,RPT_Vx.x_Part_2.zip,RPT_Vx.x_Part_3.zip。
(2)安装过程
首先点击“RPT_Vx.x_Part_1.zip”,软件解压,自动安装,如图1所示,整个安装过程非常简单,没有复杂的设置。
按照默认的步骤安装就OK了。
下面列出几点需要注意的地方:
开始安装界面
图安装过程其中的一步
在这一步,我们直接点击“下一步”就行了,因为我们不知道你现在机器上的EclipseIDE是否兼容rationalperformancetester。
图提示“插入磁盘”界面
安装到大约一半的时候,会提示插入第2张磁盘。
这里点击“浏览”,把“RPT_Vx.x_Part_2.zip”解压,选中解压文件,自动安装。
图出现此界面表明安装成功!
!
◆特别说明:
按照默认的安装方式,将不会用到RPT_Vx.x_Part_3.zip。
三.实战举例:
以工作流审批系统的“登陆”为例
使用RPT对系统性能进行分析的过程包括四个步骤:
①测试脚本录制、编辑与调试
②场景设置
③执行测试脚本
④测试结果分析
下面对这四个步骤进行详细介绍。
1.录制脚本
1.1.创建性能测试项目
打开RPT,在菜单项中选择“文件”->“新建”->选择“性能测试项目”点击“下一步”,输入项目名(比如test),输入完后点击”完成“,(如图2.1,图2.2所示)弹开“根据记录来创建新测试”界面,选中“HTTP记录”->“下一步”,输入测试文件名,这里输入“workflow_test”。
如图2.3,2.4所示。
图2.1新建项目界面
图2.2
图2.3
图2.4
1.2.录制测试脚本
1).创建完性能测试以后,RPT会打开一个浏览器,提醒你在记录之前删除临时文件和cookie文件。
在浏览器输入要测试系统的路径,比如输入http:
//172.16.114.211:
8088/approve/index.do。
并模拟用户对系统的实际使用情况进行操作,RPT将自动录制其操作过程。
图2.5所示。
图2.5
2).录制完后,关闭浏览器来停止脚本录制。
RPT记录器停止工作,“记录控制器”视图的内容显示如下:
如图2.6所示。
图2.6
1.3.脚本回放
在“测试导航器”中选择需要回放的测试,右键菜单选择“运行”->“性能测试”,弹出“启动测试”的对话框。
你也可以点击《详细信息》键来查看启动测试的详细信息。
在第一次启动测试时,会自动生成测试代码。
如果回放后,在“性能报告”界面的总体TAB页中显示“完成”,并且界面中的柱状图都到达100,“错误日志”视图内没有错误提示,则说明本测试脚本回放成功了。
1.4.编辑测试脚本
对测试脚本的设置主要由7个方面:
所有的操作都在图2.7中设置。
①选取测试消息,通过更改其详细的标题,建立更易于理解和重用的测试脚本;
②通过在测试脚本中添加自定义的HTTP请求,循环和条件语句,测试员可以随意控制测试脚本的执行过程。
循环语句可以控制指定消息的执行次数,条件语句(IF/ELSE语句块)可以实现根据上一消息的响应内容,决定测试脚本的执行路径;
③通过在测试脚本中添加自定义的Java代码,测试员可以实现对消息返回内容的验证、为后面的消息构造动态消息数据或执行各种特殊任务;
④通过将一些消息组织成相应的事务,使得整个测试脚本更加容易理解,同时可以更方便的对测试结果进行分析;
⑤通过启用页面标题验证点、响应代码验证点和响应包大小验证点,RPT会自动完成对测试执行过程中的页面标题、消息响应代码和数据包大小的验证,生成各种测试验证报告。
右键点击页面/页面请求/页面响应,在右键菜单中选择启用相应的检查点。
RPT提供了三种检查点:
●页面标题VP:
对预期标题大小写敏感。
●响应代码VP:
设置响应代码VP后,在每个页面请求的响应下面增加一个“响应代码验证点”的文件夹。
如果匹配方法选择“模糊”,那么如果记录测试时的响应代码为200,在测试执行时,响应代码为201,202等均不会报错。
●响应大小VP:
设置响应代码VP后,在每个页面请求的响应下面增加一个“响应大小验证点”的文件夹。
⑥设置动态数据, 在RPT里,可以通过数据池获得动态更新的数据。
数据池把你在记录过程中所捕获的每个单独的数据以一组测试运行中的数据值做替换。
数据池的目的是通过为每一次测试提供唯一的数值,以确保回放的真实性。
创建数据池的步骤如下:
1)在“测试导航器”中选择需要创建数据池的项目,右键菜单中选择“新建”-“数据池”,弹出“新建数据池”对话框。
2)选择数据池所在的项目,输入文件名,如果想创建空的数据池,则直接点击《完成》键;如果需要将数据文件中的数据导入,那么就点击《下一步》键,选择需要导入数据的csv文件。
如果欲导入的csv文件第一列是正常的数据,且第一行没有列名时,那么在导入csv文件的界面中,“第一行包含变量名和建议类型”和“第一列包含等价类”选项均取消选中。
⑦手动关联,正确的测试执行中,一个服务器请求常常使用前一个请求返回值。
确保准确的相关性会导致性能更好的测试。
一个对Web服务器的请求可以包含来自前一个请求的响应数据。
我们对此类型关联所使用的术语是数据关联。
步骤:
1、打开测试
2、定位到必须由引用来替代的值的位置
3、将该值高亮:
按下鼠标左键,拖拽鼠标将其覆盖。
4.右键单击高亮值,选择从以下位置替换,并选择适当的替代值。
值呈现为深绿色且关联加入到了该页面的测试数据表格的代替为列中,这表示已经关联上了。
测试编辑器按照标题列出测试的HTTP页面,当展开时,显示出每一页的请求及响应数据。
你可以使用编辑器查看或定制从一个被记录的会话中自动生成的测试,或者如果你坚信你能够自己编写测试的代码。
测试编辑面板有两个主要区域。
左区,测试内容,显示测试的HTTP页面的层次结构。
右区,测试元素详细信息,显示关于当前在测试层次中所选择条目的细节(测试,页面,页面请求,页面响应,或连接)。
当你展开一个测试页面时,你会分别在各自独立的文件夹中看到一个关于页面请求的列表,文件夹的名字是完整的URL请求字符串减去开始的http:
//。
如图2.7所示。
图2.7
列表中粗体显示的是最初请求,页面标题来自这个请求。
如果最初的请求没有返回页面标题,测试生成器从URL的第一个结点为其生成一个唯一的名字。
当你展开一个请求,你会看到这个请求的响应,也许还会有连接数据。
如图2.8。
图2.8
每个请求中的Response数据显示了Web服务器基于请求向浏览器返回的数据。
被列在这个页中的请求对Web服务器为此页而返回的任何事物负责。
Connection数据包括关于向Web服务器连接的信息,例如SSL,验证,或是代理选项。
如图2.9所示。
图2.9
2.场景设置
我们将使用性能测试调度来表示我们要在服务器上运行的工作量。
虽然录制脚本占去了大部分时间,然而准确的性能测试对保重有效的负载来说是极为重要的。
这部分的目的是精确的估计实际用户将向系统提交的工作量。
我们需要根据系统的性能需求来设计我们的测试实施工作。
这就需要在性能测试调度中进行设置。
2.1.创建性能调度
新建测试调度的步骤如下:
1) 在“测试导航器”中选择需要新建测试调度的测试项目,右键菜单选择“新建”->“性能调度”,弹出“性能调度”对话框。
2)在“性能调度”对话框中,选择性能测试项目对应的文件夹,并输入文件名(比如workflow_schedule),点击《完成》键即可。
如图2.10所示
图2.10
新建测试调度后,还需要对测试调度进行设置后,才可以运行。
在这里我们设置测试调度的内容如下:
1)右击用户组,然后点击添加->测试.
2)在“选择性能测试”对话框中,展开项目名字以显示“workflow_test”。
3)选择测试,点击“确定”。
2.2.性能调度的设置
性能调度的设置主要有以下几个方面:
如图2.11,全部的设置都在此界面上设置。
①根据需要创建用户组
②设置用户组运行的测试
③设置运行持续时间
④设置思考时间(thinkingtime)
⑤设置资源监控
⑥设置响应时间细分
⑦设置测试日志
图2.11性能调度设置界面
1.根据需要创建用户组。
步骤:
1)在性能调度编辑界面,右键点击性能调度名,在右键菜单中选择“添加”-“用户组”。
2)在用户组的调度元素详细信息界面中设置用户组名、组的大小(按照百分比或设置实际用户数)、运行用户组的位置。
2.设置用户组运行的测试。
步骤:
1)右键点击用户组,在右键菜单中选择“添加”-“测试”,弹出“选择性能测试”对话框。
“选择性能测试”对话框中列出了所有当前工作空间中打开的性能测试项目。
2)选择用户组需要执行的测试,点击《确定》键。
这里可以通过shift和ctrl键来进行多选。
3.设置延迟时间。
用来模拟真实环境中,用户在进行不同业务操作中可能存在的思考和等待时间。
设置了延迟时间后,表示每个测试都会延迟设置的时间,可以方便你更好的控制用户的动作。
步骤:
1)右键点击用户组,在右键菜单中选择“添加”-“延迟”,在延迟的调度元素详细信息中设置延迟的时间。
4.设置循环次数,即设置脚本的迭代次数。
性能调度只包含了用户组和测试,用户组中的每个测试会按顺序的执行。
循环提供了比简单的顺序运行复杂的多的控制。
增加循环让你按照一定的迭代重复测试,并且设置测试运行的频度。
步骤:
1)右键点击用户组,在右键菜单中选择“添加”-“循环”,在循环的调度元素详细信息中设置迭代次数。
2)(可选)如果需要的话,也可以设置迭代速率。
迭代率是指设置测试运行的速率,如每分钟4次迭代。
3)设置了循环次数后,需要为循环添加测试,步骤如2.设置用户组运行的测试。
所设置的迭代次数是针对循环内的所有测试起作用。
5.设置随机选择器。
增加一个随机选择器,可以让你随机的重复一系列的测试,模拟真实用户的不同活动。
假设一个随机选择器包括两个测试:
浏览和下订单。
你分配“浏览”测试权重7,“下订单”3的权重。
每次执行循环时,“浏览”测试有70%的机会被选中,“下订单”测试有30%的机会被选中。
步骤:
1)右键点击用户组,在右键菜单中选择“添加”-“随机选择器”,在随机选择器的调度元素详细信息中设置迭代次数。
2)按《添加》键,添加加权块,并输入加权块的权重。
3)设置了随机选择器后,需要为加权块添加测试,步骤如2.设置用户组运行的测试。
2.3执行测试脚本
最困难的部分已经解决了!
现在进行测试运行,按如下步骤进行:
在测试导航器中,选择“workflow_schedule”。
右击时间计划,然后点击“运行方式”->“性能调度”。
这将启动测试,并成生报告。
这个工具更好的特性之一是报告能够实时产生。
3.测试结果分析
您可以很容易地获取性能测试的结果。
结果将在运行期间动态生成。
您还可以在运行后重新生成结果以用于查看和分析。
性能在缺省情况下具有8种类型的报告:
总体报告-包含运行状态的进展信息,以及显示运行的总体成功情况的条形图
摘要报告-显示对测试运行而言最重要的数据,并允许分析最终或中间结果
页面性能-显示当测试进行时测试中最慢的10个页面的平均响应
响应与时间摘要-显示平均响应趋势的时间曲线图
响应与时间详细信息-显示响应趋势的时间曲线图
页面吞吐量-显示每个时间间隔所传输的结果的频率概览
服务器运行状况摘要-显示关于服务器响应负载的好坏程度的总体指示
服务器运行状况详细信息-显示10个执行最不成功的页面的特定详细信息
3.1.总体报告
总体报告提供了运行状态过程的信息,一个柱状图显示了运行的整体结果。
默认的,你将总能看到页面元素状态代码成功的百分比,以及整个运行中的页面状态代码成功的百分比。
可选的,如果运行包括页面标题验证点或者运行包括应答代码或应答大小验证点,你也可以看到他们通过率的百分比。
图2.12总体报告
3.2.摘要报告
摘要报告是所见即所得的。
它显示了测试运行中最重要的数据,并使你可以大概地分析测试最终或中间结果。
在这个报告中,你将能够发现例如运行状态,持续时间,活跃的/终结的/全部的用户,最大/最小/平均响应时间,总采样数量,以及通过的验证点的百分数等信息。
图2.13摘要报告
3.3.页面性能报告
页面性能报告显示了在测试过程中,最慢的10个页面的平均响应时间。
这使得你在测试过程中或在测试之后对系统响应做出评估。
这个标签页分为两个部分:
曲线图和表格。
此图显示了最慢的10个页面的平均响应时间。
每条柱代表在记录过程中你所访问的一个页面。
当你运行这个测试时,这个图随时发生改变,因为在运行过程中,最慢的10个页面会动态更新。
在运行之后,标记显示了整个运行过程中最慢的10个页面。
图2.14页面性能报告
3.4.响应时间和摘要报告
响应与时间的摘要报告使你能够以图形化的方式查看整个时间区间内的平均响应趋势。
它包括两个线性图以及相对应的摘要表格:
左边的曲线性图显示了所有页面在运行期间内的平均响应时间。
图中的每个点为在整个时段内所发生的一个平均值。
图下的表格显示了这样一个值:
运行时间内所有页面的总平均响应时间。
右边的曲线图显示了所有页面元素在整个运行期间内的平均响应时间。
图中的每个点为在整个时段内所发生的一个平均值。
图下的表格显示了这样一个值:
运行时间内所有页面元素的总平均响应时间。
你可以在时间计划中Statisticssampleinterval作为时间计划的一个属性。
图2.15响应时间和摘要报告
3.5.响应与时间详细信息
响应与时间细节报告使你可以以图形化的方式查看整个时间内的响应趋势。
每个单独的曲线代表每一页。
曲线图显示了每一页在时间段内的平均响应。
图下的表格包括了如下补充信息:
最小,平均以及最大的运行响应时间,在最近取样区间内相对一个区间的页面连接尝试率,以及每个区间页面连接尝试次数。
图2.16响应与时间详细信息
3.6.页面吞吐量报告
页面吞吐量报告为你提供了每个时间段内被传递请求频率的概述信息。
左边的曲线图显示了所有页面每个时间段内页面尝试连接率以及页面点击率。
页面尝试连接表示被发送出的初始请求;它不包括位于页面内的请求。
点击表示服务器接收了请求,并返回应答。
在图下方的汇总表显示了总点击率并对运行期间内的每个页面进行计数。
图2.17页面吞吐量报告
3.7.服务器运行状况摘要报告
服务器运行状况摘要报告使你可以查看关于服务器是如何良好的对负载做出应答的整体指标。
左边的柱状图显示了全部的页面连接尝试,页面点击以及运行成功而显示的状态代码。
图下方的表格显示了同样的信息。
左边的柱状图显示了总体页面元素连接尝试,页面点击,以及运行成功而显示的状态代码。
图下方的表格显示了同样的信息。
图2.18服务器运行状况摘要报告
3.8.服务器运行状况详细信息报告
服务器运行状况详细信息报告提供了对成功完成的10个最差的页面的特定细节信息。
图下方的汇总表显示了对所有页面连接尝试的总量、点击、运行中成功次数,以及运行期间内每秒钟连接尝试次数。
图2.19服务器运行状况详细信息报告
3.9.服务器资源监控报告
此报告在默认设置下并没有产生,需要在“性能调度“界面中设置。
2.20资源报告
以下是服务器资源监控指标:
BytesTransmitted/sec:
随机存取存贮器每秒钟传输的字节数。
TotalErrors/sec:
随机存取存贮器每秒钟读写错误的次数。
BytesReceived/sec:
随机存取存贮器每秒钟接收的字节数。
TotalProcessorTime:
系统上所有处理器都忙于执行非空闲线程的平均时间
PoolNonpagedBytes:
非分页池中的字节数,指可供操作系统组件完成指定任务后从其中获得空间的系统内存区域。
PoolPagedBytes:
分页池中的字节数。
Pages/sec:
为解析内存对页面(引用时不在内存中)的引用而从磁盘读取的页数或写入磁盘的页数。
PageFaults/sec:
此值为处理器中的页面错误的计数。
DiskReadTime:
选定的磁盘驱动器对读请求提供服务已用时间所占百分比。
DiskwirteTime:
选定的磁盘驱动器对写请求提供服务已用时间所占百分比。
DiskTime:
选定的磁盘驱动器对读写请求提供服务的已用时间所占百分比。
四、RationalPerformancetester和LoadRunner的比较
4.工具大比拼
下面是我在学习RationalPerformanceTesterx.x时,将RPT和LR操作进行的对比。
仅限于操作和功能上,不包括内部结构等深层次对比。
表1、RPT和LR操作内容上的比较
操作内容
LoadRunner8.0
RationalPerformanceTesterx.x
1.录制脚本
在VirtualUserGenerator中录制。
创建测试项目后,进行“记录性能测试”操作
2.回放脚本
在VirtualUserGenerator中,运行当前脚本
在“测试导航器”中,选中需要回放的脚本,以“性能测试”方式运行
3.
编
辑
脚
本
参数池技术
在VirtualUserGenerator中,创建一个参数;然后将需要参数化的变量与此参数进行关联。
在“测试导航器”中,选中需要添加数据池的测试项目,执行添加数据池操作,在“测试内容”界面右键执行“添加数据池操作”,最后对需要关联的变量进行替换。
插入事务
在VirtualUserGenerator中,在需要进行事务控制的页面前后分别添加事务开始点和结束点。
在“测试导航器”中,双击打开需要插入事务的测试,在“测试内容”界面中插入事务。
不需要添加事务开始点和结束点。
插入集合点
在VirtualUserGenerator中,在需要进行集合点操作的页面添加集合点,并可以在Controller中设置集合点策略。
默认所有用户到达后同时开始测试。
有“延迟”这个属性设置集合点策略。
手工关联
找到关联的参数,使用web_reg_save_param函数手动建立关联。
4.场景设置
在Controller中,设置用户组、虚拟用户数、执行策略(包括:
每个用户启动延迟时间、运行时间、每个用户停止延迟时间)
新建性能调度,在测试调度中设置用户组、虚拟用户数和执行策略。
5.执行测试
在测试执行时,可以看到测试执行的情况及监控测试场景的执行情况。
在测试导航器中,运行性能调度,在测试执行时,可以看到测试执行的主要报告。
6.分析测试
在Analysis中进行报告的处理
在性能测试运行中,找到相应的报告记录。
表2.RPT和LR功能和操作易用性上比较
对比项
LoadRunner8.0
RationalPerformanceTesterx.x
界面友好性
纯英文界面,但界面非常简洁
中文界面,系统基于Eclipse平台,界面易于理解。
资源占用情况
内存需要512M以上,进程占用50M以内的虚拟内存
内存需要768M以上,进程占用的虚拟内存随着测试运行的延续而增加,占用的虚拟内存维持在100M-400M。
测试录制过程
可在录制过程中添加集合点、事务等操作。
登录、退出等只操作一次的部分可放在不同部分(vuser_init,vuser_end)。
在录制过程中不能进行添加事务等操作。
登录退出等只操作一次的步骤和迭代循环的部分录制在一起。
录制脚本不超过10个页面时,可不设置集合点。
测试执行过程
执行过程中的性能情况可以通过监控界面看到,且信息直观。
执行过程中能看到具体步骤的性能数据,步骤是按照函数来分的。
执行速度稳定,不同次数执行测试所需的时间差距不大。
执行过程中可以通过不同的Tab页面查看性能数据。
执行过程中可以看到阶段的性能数据。
阶段划分颗粒较大,是按照HTTP页来划分的。
执行过程不稳定,时快时慢。
测试执行结果
相对较稳定,正常情况下几次执行的测试数据偏差不大。
执行结果的数据差距比较大。
事务的定位
容易
事务准确定位比