《性能测试工规划局.ppt》由会员分享,可在线阅读,更多相关《性能测试工规划局.ppt(37页珍藏版)》请在三一办公上搜索。
1、性能测试工具介绍,武汉软通测试组:胡婷婷,一、性能测试的重要性,性能测试是软件测试过程中的重要组成部分,一个合格的软件除了完成需求中的功能之外,性能上的要求也逐渐变的重要。如果在测试过程中发现性能问题,修复起来是非常艰难的,因为这常常意味着程序的算法不好,结构不好,或者设计有问题。因此在产品开发的开始阶段,就要考虑到软件的性能问题。,二、性能测试准备工作,要测试什么或测试的对象是谁?要测试什么问题或我们想要弄清楚或是论证的问题?哪些因素会影响测试结果?需要怎样的测试环境?应该怎样进行测试?,三、主要性能测试工具介绍,LoadRunnerLoadRunner 是一种预测系统行为和性能的工业标准级
2、负载测试工具。通过以模拟上千万用户实施并发负载及实时asdfghuj阿萨德法国户籍性能监测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试。,WinrunnerWR 可以帮助你自动处理从测试开发到测试执行的,Rational RobotIBM 公司提供的 Rational Robot 可开发三种测试脚本:用于功能测试的 GUI 脚本、用于性能测试的 VU 以及 VB 脚本。,四、LoadRunner 测试工具介绍,1.制定负载测试计划,在任何类型的测试中,测试计划都是必要的步骤。测试计划是进行成功的负载测试的关键。任何类型的测试的第一步都是制定比较详细的测试计划。一个比
3、较好的测试计划能够保证 LoadRunner 能够完成负载测试的目标。分析应用程序确定系统的组成 画出系统的组成图。组成图要包括系统中所有的组件,以及相互之间是如何通讯的。,描述系统配置对于一个项目,试着回答以下问题,对系统的组成图进行完善。预计有多少用户会连到系统 客户机的配置情况(硬件、内存、操作系统、软件工具等)服务器使用什么类型的数据库以及服务器的配置情况 客户机和服务器之间如何通讯 还有什么组件会影响 Response Time 指标 通讯装置(网卡、路由器等)的吞吐量是多少?每个通讯装置能够处理多少并发用户,分析最普遍的使用方法了解该系统最常用的功能,确定哪些功能需要优先测试、什么
4、角色使用该系统以及每个角色会有多少人、每个角色的地理分布情况等,从而预测负载的最高峰出现的情况。,确定测试目标,根据我们的调查和分析确定我们要进行测试的目标。,2.开发测试脚本,录制测试脚本注意事项:1.只有选择合适的协议,才能录制出有用的脚本。2.尽量在录制过程中加入事务,集合点以及注释。对于事务和集合点,应该给一个代表具体含义的名字3.Action 的内容要尽量简单,避免包含过多的操作。,录制步骤:输入正确的 url 地址,对按钮 option.的设置;点击确定后,开始进行脚本的录制;在录制过程中,我们可以根据需要增加多个 Action,事务,集合点等对象,使得我们的脚本更加容易阅读;录制
5、完成后,LR 会自动生成测试脚本。为你的脚本取个名字并保存,一个简单的测试脚本就录制完成了。,Runtime SettingsRun logic:Number of iterationsThink time:ignore Think timeOthers:Use Defaults,参数化输入,如果用户在录制脚本过程中,填写提交了一些数据,比如要增加数据库记录。这些操作都被记录到了脚本中。当多个虚拟用户运行脚本时,都会提交相同的记录,这样不符合实际的运行情况,而且有可能引起冲突。为了更加真实的模拟实际环境,需要各种各样的输入。参数化输入是一种不错的方法。用参数表示用户的脚本有两个优点:可以使脚本
6、的长度变短。可以使用不同的数值来测试你的脚本。参数化包含以下两项任务:在脚本中用参数取代常量值。设置参数的属性以及数据源。参数化仅可以用于一个函数中的参量。你不能用参数表示非函数参数的字符串。,参数化输入,DateTime:很简单,在需要输入日期/时间的地方,可以用DateTime 类型来替代。其属性设置也很简单,选择一种格式即可。当然也可以定制格式。Group Name:暂时不知道何处能用到,但设置比较简单。在实际运行中,LoadRunner使用该虚拟用户所在的Vuser Group 来代替。但是在VuGen 中运行时,Group Name将会是NoneLoad Generator Name
7、:在实际运行中,LoadRunner 使用该虚拟用户所在LoadGenerator 的机器名来代替。Iteration Number:在实际运行中,LoadRunner 使用该测试脚本当前循环的次数来代替。Random Number:随机数。很简单。在属性设置中可以设置产生随机数的范围File:需要在属性设置中编辑文件,添加内容,也可以从现成的数据库中取数据,参数化输入,Unique Number:唯一的数。在属性设置中可以设置第一个数以及递增的数的大小。注意:使用该参数类型必须注意可以接受的最大数。这里说的递增意思是各个用户取第一个值的递增数,每个用户相邻的两次循环之间的差值为1。举例说明:
8、假如起始数为1,递增为5,那么第一个用户第一次循环取值1,第二次循环取值2;第二个用户第一次循环取值为6,第二次为7;依次类推。Vuser ID:设置比较简单。在实际运行中,LoadRunner 使用该虚拟用户的ID 来代替,该ID 是由Controller 来控制的。但是在VuGen 中运行时,Vuser ID 将会是 1。User Defined Function:从用户开发的dll 文件提取数据。,3.创建运行场景,运行场景描述在测试活动中发生的各种事件。一个运行场景包括一个运行虚拟用户活动的 Load Generator 机器列表,一个测试脚本的列表以及大量的虚拟用户和虚拟用户组。我们
9、使用 Controller 来创建运行场景。,4.运行测试,5.监视场景,常用的监视器:Running VusersTrans Response TimeThroughputWindows ResourcesUnix Resources,6.分析测试结果,LoadRunner 提供的 Analysis 工具自动对测试运行后的结果进行分析。,五、WinRunner 工具使用介绍,WinRunner主窗口主窗口包括以下部分:a).WinRunner title bar 标题栏 b).Menu bar 菜单栏 c).Standard toolbar 标准工具栏,包含运行测试时常用的命令 d).Use
10、r toolbar 用户工具栏,包含创建测试时常用的命令 e).Status bar 状态栏,WinRunner测试过程,WR 的测试过程分六个步骤:创建 GUI map 创建测试 调试测试执行测试 查看测试结果 报告发现的错误,两种录制模式,环境判断模式(Context Sensitive mode)当你进行录制时间,WR会对你选取的每个对象做唯一描述并写入GUI map(映射)中。GUI map和测试脚本被分开保存维护。模拟模式(Analog mode)这种模式记录鼠标点击、键盘输入和鼠标在二维平面上(x轴和y轴)的精确运动轨迹。执行测试时,WR让鼠标根据轨迹运动。,录制测试脚本的相关概念
11、,同步点 同步点让你解决测试和被测软件之间的时间占用问题。例如:如果你创建一个打开数据库软件的测试,你可以插入一个同步点让测试等待直到在数据库中的记录在屏幕上被加载。,检查点检查点让你比较软件当前版本和以前版本的区别。同步点用来处理测试运行中可能发生的时间控制和窗体位置等问题。在脚本中可以插入以下四类检查点:GUI检查点检验GUI对象信息。比如:你可以查看一个 button 是否可用或一个清单中哪个项目被选定了。位图检查点做一个窗体或区域的截图,并把这张图片和以前版本进行比较。文本检查点读取GUI对象和位图中的文本,使你可以检验文本内容。数据库检查点检查一定数量的行和列组成的集合(这个集合由你
12、在数据库中创建)的内容。,GUI map file模式的选取,计划和创建测试时,你需要确定 GUI map 的工作模式。作为 WR 新手或 GUI map 只使用一次,可以使用GUI Map File Per Test 模式。这种模式下,每次新建测试就自动新建一个 GUI map file。在你保存测试时,GUI map file 自动保存;在你打开测试时,GUI map file 自动加载。作为 WR 老手或 GUI map 将被不同测试共享,建议使用更有效率的 模式。这是 WR 的默认模式。WR6.02 或更低版本都是使用这种模式,且只能使用这种模式。下面是两种模式的优缺点比较:,录制测试
13、,录制时有以下要点:开始录制前,关闭所有无关的程序。使用 invoke_application 语句打开被测软件。录制窗体中的对象前,点击窗体的标题栏来录一个 win_activate 语句。这是用来激活窗体的。创建可以自我复原的测试。当测试结束时,测试环境必须恢复到测试前的状态。录制时,你可以把 WR 最小化而使用 User 工具条(需要先把工具条和菜单分开)。这样你就可以全屏录制程序了。所有主要命令都在工具条上,当然你也可以自定义工具条的内容。,录制过程中,在一个窗体中移动时尽量使用鼠标,不要用 Tab 键。在 Analog 模式下录制时,尽量使用热键插入检查点,不要用 WR 菜单或工具条
14、。在 Analog 模式下录制时,避免超前输入。如果你需要打开一个窗口,就等窗口完全打开后再继续操作。避免按住一个鼠标键不放,尤其是当这个动作会造成重复操作时(如点在滚动条上来移动屏幕显示的内容)。因为这样会造成一个无法被回放的时间感应(time-sensitive)操作。如果真的需要对鼠标键连续操作,可以多点击几下。,WR 支持 RTL-style(从右到左)的窗体属性。包括菜单从右到左排列和输入、在左侧的滚动条、附加文本在 GUI 对象的右上角。WR 还支持输入时同时按下 CTRL 和 SHIFT(或 ALT 和 SHIFT)切换语言。WR 支持下拉和类菜单的工具条(比如 IE)。虽然类菜
15、单的工具条看上去和菜单一模一样,但两者属于不同的类,而且WR录制起来也不同。工具条中被选定的项目会被录成 toolbar_select_item 语句,菜单中的则是 menu_select_item 语句。如果一个测试文件夹或测试脚本文件在系统中被标记成只读,WR 就不能对它进行任何修改操作。,调试测试,WR 的脚本(TSL)是采用类 C 的语言编写的。你可以自己编写代码,使脚本能够更真实的模拟实际环境。,执行测试,对于一个录制好的脚本,WR 提供三种测试模式:Verify 真正的执行测试,并且保存测试结果。Debug 检查脚本是否执行流畅,是否有错误,只保存最后一次执行的测试结果。Update 当想要更新检查点的预期值时。,Thanks!,