自动化测试课件_第1页
自动化测试课件_第2页
自动化测试课件_第3页
自动化测试课件_第4页
自动化测试课件_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第8章 WinRunner测试系统工具的运用8.1 WinRunner介绍8.2 使用WinRunner8.3 设定GUI Map8.4 编辑GUI Map8.5 学习虚拟对象8.6 创建测试8.7 同步点(Synchronize)8.8 检查点(Checkpoint)本章教学目标理论环节认识WinRunner系统的主要功能及适用范围认识WinRunner系统进行软件测试的基本思想与策略学习WinRunner系统进行软件测试的主要任务和过程掌握运用WinRunner系统工具的应用配置掌握运用WinRunner系统实现功能测试实践环节认识并掌握WinRunner系统的配置使用认识并掌握WinRu

2、nner系统进行软件测试的实践8.1 WinRunner介绍WinRunner(简称WR)是一种基于MS Windows的功能测试工具。WR可以帮助用户自动处理从测试开发到测试执行的整个过程,可以创建可修改和可复用的测试脚本,而不用担心软件功能模块的变更。使用WinRunner进行自动化测试的好处: 快速(Fast)、可靠(Reliable)、 可重复(Repeatable)、可程序化(Programmable)、 广泛的(Comprehensive)、可再使用(Reusable)WinRunner的测试模式以WinRunner执行测试,就与人工测试一样,WinRunner 会仿真鼠标的动作与

3、键盘的输入。当在软件操作中点击GUI(图形用户界面)对象时,WR会使用一种类C的测试脚本语言 (TSL) 生成一个测试脚本。测试人员可以用手工编程的方法编辑这个脚本。WinRunner包括的功能生成器 (Function Generator) 可以帮助用户快速简便的在已录制的测试中添加功能。WinRunner有两种录制测试的模式: (1)环境判断模式(Context Sensitive Mode) (2)模拟模式(Analog Mode)环境判断模式环境判断模式根据用户选取的GUI对象将用户对软件的操作动作录制下来,并忽略这些对象在屏幕上的物理位置。每一次对被测软件进行操作,测试脚本会描述用户

4、选取的对象和操作动作。 当进行录制时间,WR会对选取的每个对象做唯一描述并写入GUI map(映射) 中。GUI map和测试脚本被分开保存和维护。当软件用户界面发生变化时,用户只需更新GUI map。这样一来,环境判断模式的测试脚本将非常容易地被重复使用。执行测试时只需要回放测试脚本。回放测试脚本的过程,就是WR模拟一个用户使用鼠标选取对象、用键盘输入数据的操作过程。 WR从GUI map中读取对象描述,并在被测软件中查找符合这些描述的对象。模拟模式模拟模式记录鼠标点击、键盘输入和鼠标在二维平面上(x轴、y轴)的精确运动轨迹。执行测试时,WR让鼠标根据轨迹运动。模拟模式对于那些需要追踪鼠标运

5、动的测试非常有用,例如画图软件。WinRunner的测试过程WinRunner的测试流程分为以下六个阶段:创建GUI Map:识别应用程序的GUI对象创建测试:建立测试脚本调试测试:对测试脚本除错(debug)执行测试:在新版应用程序执行测试脚本查看测试结果报告发现的错误样本软件和测试套件WinRunner 7.6 中附带了一个用于航班预定的样本软件Flight Reservation。该样本软件有两个版本Flight4A 和Flight4B,其中 Flight4A 版本是正常的软件, Flight4B 版本中则有意识加入了一些错误。样本软件的登录:可以使用任意用户名(长度至少为4)登录Fli

6、ght Reservation软件,密码为Mercury。WinRunner和测试套件的其他工具一起提供整个测试流程的解决方案:测试计划、测试开发、GUI负载测试、错误跟踪以及多用户系统客户端负载测试。常用测试套件有: TestDirector(测试管理工具)LoadRunner(用于Client/Server结构软件的测试工具) 8.2 使用WinRunner启动WinRunnerWinRunner主窗口测试窗口加载WinRunner插件8.3 设定GUI MapWinRunner如何识别应用程序中的GUI对象使用GUI Spy查看GUI对象的属性选择GUI Map的工作模式使用RapidT

7、est Script Wizard学习对象并产生测试脚本 WR如何识别GUI对象关于识别GUI对象 一般的Windows应用程序,通常是由窗口、按钮、菜单等组成,这些在WinRunner中通称为GUI对象。WR会通过学习这些GUI对象的属性来识别GUI对象。 WR把学来的这些GUI对象的属性保存在GUI Map文件中(GUI Map是一个或多个GUI Map文件的总和) 。当执行测试时,WR使用GUI Map定位对象:先从GUI map读取有关对象的描述,然后寻找有相同属性的对象。WR如何识别GUI对象(续)脚本中如何识别GUI对象 在测试脚本中,WR使用逻辑名(Logic name) 定义对

8、象:如“Print”定义Print dialog box,“OK” 定义OK button。对象的逻辑名由它的类(Class) 决定。多数情况下,逻辑名是对象的卷标(Label)。 逻辑名实际上是对象物理描述(物理描述是 包含一个对象物理属性的清单)的简称。 逻辑名和物理描述一起作用,确保每个GUI对象有自身唯一的标识。WR如何识别GUI对象(续)物理描述 WR使用物理描述识别被测软件的GUI对象。物理描述包括:物理属性清单和每个属性的值。 GUI map按以下格式记录这些属性和值的配对: 属性1:值1,属性2:值2,属性3:值3, 例如,对“Open”window的描述包含两个属性: Cla

9、ss和Label。其中Class属性的值是“window”, Label属性的值是“Open”,该对象的物理描述为: class:window, label:Open 。WR如何识别GUI对象(续)设定窗体环境 WR总是在对象出现的窗体的环境中学到该对象的物理描述。当用户录制脚本时,一旦当前窗体改变并且有GUI对象被操作,WR会自动在测试脚本中插入一条set_window语句,之后所有的对象就在那个窗体环境中被识别。 例如: Set_window(“Print”,12); Button_press(“OK”); 如果用户手工编写脚本,则需要用户写入set_window 语句以对应当前窗体的变化

10、。操作演示查看GUI对象的属性 WR提供一个叫GUI Spy的工具,可以用来查看某个GUI对象有哪些属性以及WR是以哪些属性来识别此GUI对象。注意:WR只会用最少但可以组合成唯一的一组属性来识别GUI对象。查看GUI Map的内容 可以通过GUI Map Editor工具来查看GUI Map的内容。可以看到:GUI Map文件包含了GUI对象的逻辑名和物理描述。GUI Map的两种工作模式 当WR识别完GUI对象后,会将GUI对象的逻辑名和物理描述存储在GUI Map File中。WR提供两种GUI Map的工作模式:GUI Map File Per Test和Global GUI Map

11、File。因此,用户在创建测试前应先确定要使用哪种GUI Map模式。GUI Map File Per Test:每次新建测试就自动创建一个GUI Map File。WR会在用户保存测试、打开测试时,自动保存和自动加载GUI Map File。Global GUI Map File:多个测试脚本共享同一个GUI Map File,用户要手工保存和加载使用的GUI Map File。这是WR的默认模式。两种模式的比较GUI Map File Per TestGlobal GUI Map File优点1.每个测试都有自带的GUI Map File2.使用方便,保存和加载GUI Map File都是

12、自动完成3.作为单次测试,容易维护和更新(就是重新录一次)1.如果对象或窗体的属性改变,只需要修改在GUI Map File里对应的属性2.容易维护和更新(无需重新录制)缺点一旦软件GUI变更,每个测试的GUI Map File都要重新录制要记住保存和加载使用的GUI Map File建议如果用户对WR没有经验或被测软件的GUI已经固定,可以采用这种模式。如果用户是有经验的WR使用者或被测软件的GUI经常变化,最好使用这种模式。操作演示设定要使用的GUI Map File模式 WR默认值是使用Global GUI Map File。 要设定GUI Map的工作模式,点选Tools - Gene

13、ral Options-General,设定你要的模式。 重新设定GUI Map File模式后,必须重新启动WR才能让设定生效。 注意:从GUI Map File per Test模式转换到Global GUI Map File模式,用户必须把和每个测试对应的GUI map文件合并成被一组测试使用的 共享文件。用户可通过GUI Map File Merge Tool进行合并。 Global GUI Map File模式的使用关于Global GUI Map File模式 WR最有效率的用法是把测试分组,一组中的测试(任务)都测试同一窗体上的GUI对象。这样这些任务就可以共享GUI Map f

14、ile。当GUI发生变化,只需要修改一个GUI Map file,就可以让同组中的任务都正常工作。 使用这种模式,最好是使用RapidTest Script Wizard在录制脚本前让WR一次性的学习被测软件中所有的GUI对象。如果GUI发生变化,再用GUI Map Editor来单独学习发生变化的窗体或对象,并以此更新GUI Map。Global GUI Map File模式的使用(续)让WinRunner学习GUI 在Global GUI Map File模式,WR可以通过以下三种方式学习被测软件的GUI:(1)使用RapidTest Script Wizard学习被测软件每个窗体中所有G

15、UI对象的属性。(2)使用GUI Map Editor学习单个GUI对象、窗体或某个窗体中所有GUI对象的属性。如果软件开发过程中GUI改变了,用户可以使用这种方式更新GUI Map。(3)通过录制脚本的方式学习被测软件中被录制 (被操作)的那部分的所有GUI对象的属性。操作演示使用RapidTest Script Wizard学习GUI 在录制脚本前使用RapidTest Script wizard一次性学习被测软件所有的GUI对象,将生成并保存GUI map文件。以后在脚本开头部分使用GUI_load语句就可以加载这个GUI map文件。 要使用RapidTest Script wizar

16、d(该向导只能在Global GUI Map File模式下使用),点选Insert - RapidTest Script wizard,将打开该向导的欢迎窗口。 操作演示使用GUI Map Editor学习GUI 点选Tools -GUI Map Editor,打开GUI Map编辑器。 点击learn按钮:想要学习一个窗体中所有的对象,就点击窗体的标题栏,当提示是否学习窗体中所有对象时,点击Yes; 如果只想学习窗体,就点击窗体的标题栏,出现提示时点击No;如果只要学习个别对象,就左键点击这个对象(点击鼠标右键取消)。 WR把学到的信息放在当前GUI map文件中。Global GUI M

17、ap File模式的使用(续)保存GUI Map 当用户用录制的方式学习GUI对象时,对象的描述就被添加到临时GUI Map文件中。用户启动WR时,包含前一次测试内容的临时文件就被加载。 要避免在新的测试中把有价值的GUI信息覆盖掉,用户必须把临时GUI Map文件保存在一个永久的GUI Map文件中。 操作演示:使用GUI Map Editor保存GUI MapGlobal GUI Map File模式的使用(续)加载GUI Map文件 WR把对象的信息保存在一个GUI Map文件中。当用户需要用GUI Map文件来寻找对象时,用户必须将文件加载到GUI Map中,而且必须在测试开始前加载合

18、适的GUI Map文件。在WR中有两种方法可以加载GUI Map文件: (1)使用GUI_load功能加载GUI Map文件(2)使用GUI Map Editor加载GUI Map文件注意:如果用户用GUI Map File per Test模式,则不能手工加载或卸除GUI map文件。 操作演示使用GUI_load功能加载GUI Map文件 GUI_load语句可以加载任何用户需要的GUI Map文件,但用户只能一次加载一个GUI Map文件。用户可以把GUI_load语句插到任何测试脚本的开头,但最好放到第一个执行的测试的开头。使用GUI Map Editor加载GUI Map文件 用户可

19、以在GUI Map Editor中加载GUI Map文件或者查看被加载的GUI map文件,这类文件会在文件名前出现一个“L”。 GUI Map File Per Test模式的使用关于GUI Map File Per Test模式 使用GUI Map File per Test模式,用户不需要教WR去学习被测软件的GUI,也不需要保存或加载GUI Map文件。 在这种模式下, WR会自动处理所有与GUI Map File有关的动作:在用户创建新测试时自动创建一个新的GUI Map文件;在用户保存测试时自动保存GUI Map文件;在用户打开测试时自动加载GUI Map文件。 注意:某些功能在这

20、种模式下会被禁用。GUI Map File Per Test模式的使用(续)在GUI Map File Per Test模式下工作 在这种模式下,WR通过录制脚本的方式学习被测软件的GUI。如果GUI发生变化,用户可以用GUI Map Editor更新每个测试的GUI Map,用户无须加载或保存GUI Map文件。注意:如果用户改变了对象的逻辑名,则必须更新脚本。GUI Map File Per Test模式要点 不要在GUI Map Editor里保存用户对GUI Map文件的修改。不要手工加载或卸除GUI Map文件。8.4 编辑GUI Map WR使用GUI Map来标识和查找GUI对象

21、。一旦被测软件的GUI改变了,用户就必须更新GUI Map中对象的描述。 用户有两种更新GUI Map的方法: 在测试运行中使用Run wizard: 测试中如果WR无法定位对象时,就会自动打开Run wizard,它会指导用户识别对象并把对象的描述更新到GUI Map里。 用GUI Map Editor手工编辑GUI Map:在用户更新GUI Map前,GUI Map必须先被加载。Run WizardRun wizard(运行指南)可以在测试运行中检测被测软件GUI的变化:当WR无法定位对象时,它会被自动打开。Run wizard会提示用户指向对象,确定该对象没有被发现的原因,然后提供解决方

22、案。多数情况下,它会自动给GUI Map添加新的描述或修改已有描述。当这个过程结束,测试将继续。下次执行测试时,WR就会找到这个对象了。 GUI Map Editor GUI Map Editor提供了两种模式来查看GUI Map的内容:GUI Map:可以让用户看到整个GUI Map中所有的窗体和对象。GUI Files:提供一个GUI File的文件清单,用户可以方便的查看单个GUI Map文件的内容。 在GUI Map Editor的“view”菜单中提供了这两种查看模式的转换。修改逻辑名和物理描述 在GUI Map Editor中用户可以修改对象的逻辑名或物理描述。 当对象被赋予的逻辑

23、名太长或含义不清晰时,就需要修改逻辑名使脚本容易阅读。当对象属性值变化时,就需要修改物理描述。操作演示:在GUI Map Editor中修改对象的 逻辑名和物理描述在文件间复制和移动对象 用户可以用从一个GUI map文件复制或移动GUI对象到另一个GUI map文件的方式更新GUI map文件。 注意:用户只能从一个被打开但是未被加载的GUI map文件中复制对象。如果用户使用GUI Map File per Test模式,就不可以手工打开或在文件之间复制或移动对象。操作演示:在GUI Map文件间复制和移动对象操作演示在GUI Map File里找到对象在多个GUI Map File里找到

24、对象在GUI Map File里手工添加对象从GUI Map File里删除对象清除GUI Map File筛选显示对象保存GUI的变更8.5 学习虚拟对象被测软件中可能包含位图,WR录制对这些位图的操作时使用win_mouse_click语句。通过把位图定义成虚拟对象(virtual object),用户可以让WR像对待GUI对象那样处理它们。依据位图在被测软件中的行为表现,用户可以 创建虚拟push buttons、 radio buttons、 check buttons、lists 或 tables。如果这些类型都不适合,用户可以创建一个属于综合类的虚拟对象。操作演示:使用Virtua

25、l Object Wizard定义虚拟对象8.6 创建测试用户可以用录制或编程的方式创建测试。通常是结合以上两种方式创建测试脚本:首先录制一个基础测试脚本用户对被测软件进行操作,TSL语言记录下这些操作;随后用户可以在录制的测试脚本中修改、添加功能等。创建测试脚本的主要步骤:(1)决定用户想要测试的功能点,确定用户想在脚本中使用的检查点和同步点。(2)在测试属性对话框里把测试相关的信息文档化。(3)选择录制模式,并录制。 (4)给测试分配一个名字并保存。关于检查点检查点可以让用户比较软件当前版本和以前版本的区别。录制测试时,在用户需要检查软件反应的地方插入检查点;插入检查点后,WR会收集一套性

26、能指标,在测试运行时对其一一验证。在脚本中可以插入四类检查点:GUI检查点检验GUI对象信息。位图检查点做一个窗体或区域的截图,并把这张图片和以前版本进行比较。文本检查点读取GUI对象和位图中的文本,使用户可以检验文本内容。数据库检查点检查一定数量的行和列组成的集合(这个集合由用户在数据库中创建)的内容。 关于同步点同步点用来处理测试运行中可能发生的时间控制和窗体位置等问题。当WR执行到同步点时,会暂停执行以等待应用程序某些状态的改变后,再继续执行脚本。何时应该使用同步点? 执行测试时,所测试的应用程序每次操作的响应时间并不一定,导致执行输入动作的时间也需要等待。例如:从数据库取得数据、等待一

27、个窗口开启、等待某个状态讯息出现等动作可能会时快时慢,如果应用程序响应时间超过WR设置的等待时间,则测试执行就可能会失败。关于数据驱动测试如果用户想用多组数据测试相同的操作步骤,用户可以创建数据驱动测试。测试会循环执行指定的次数,每次执行都由不同的数据驱动。为了使WR可以使用这些数据,用户必须在测试脚本中建立和数据的联系,这就叫测试参数化。测试所需的多组数据会被存储在一个数据表中。具体操作时,用户可以手动修改测试脚本或者用Data Driver Wizard来参数化测试以及把数据储存到表格中。计划一个测试确认将要测试的功能点。最好设计简短、测试单一功能点的测试;尽量不要设计繁长、一次涉及多个功

28、能点的测试。决定要在测试中使用的检查点和同步点。 如果计划使用录制的方式,就要决定哪个部分用Analog模式,哪个部分用Context Sensitive模式。 决定在脚本中添加哪些代码,如循环、数组或自定义功能。测试信息文档化创建测试前,用户可以把测试相关信息写在测试属性(Test Properties)对话框的综合和描述栏里。用户可以输入测试创建者的名字、测试类型、对于测试的详细描述和功能描述文档;用户还可以通过测试属性对话框来确定测试中使用的插件、给测试分配一个数据表、定义测试变量、把测试作为一个编译过的模块等。操作演示:使用Test Properties对话框来文档化测试信息录制测试脚

29、本选择录制模式WR允许用户以录制的方式快速建立自动测试脚本:WR会将使用这的动作录制下来,并以TSL产生测试脚本,并显示在WR主窗口中。WR提供两种录制模式: Context Sensitive主要以GUI对象为基础,WR会识别使用者点选的GUI对象以及执行的操作。 Analog主要录制鼠标移动的轨迹、鼠标的点选以及键盘的输入三种动作。录制测试脚本(续)选择录制模式的参考原则:以Context Sensitive模式录制:应用程序包含一般GUI对象;不需要录制鼠标移动的轨迹;打算将测试脚本运用在同一应用程序不同版本上。以Analog模式录制:应用程序包含绘图区域;需要录制鼠标移动的轨迹(如绘图

30、软件)。如果被测程序既包含一般GUI对象,也包含绘图区域,则要混合使用两种录制模式。录制测试脚本(续)操作演示:录制Context Sensitive模式的测试脚本 1、启动WR,并加载GUI Map File (flight4a.gui) 2、启动Flight 4A,并登录 3、开始以Context Sensitive模式录制测试脚本 4、开启3号订单 5、停止录制 6、储存测试脚本为lesson3录制测试脚本(续)操作演示:录制Analog模式的测试脚本 1、打开lesson3测试脚本,将光标移到最后一行 2、开始以Context Sensitive模式录制测试脚本 3、打开传真订单窗口,

31、输入Fax Number: 4、勾选“Send Signature with order” 5、在Context Sensitive模式下录制签名动作 6、清除签名 7、将Fax Order窗口移动到其它位置录制测试脚本(续)操作演示:录制Analog模式的测试脚本(续) 8、使用F2切换到Analog模式下录制签名动作 9、再按F2切换回Context Sensitive模式,并将 订单传真出去 10、停止录制 11、保存测试脚本lesson3 12、保存更新后的GUI Map File到flight4a.gui操作演示:执行测试脚本lesson3,并分析测试结果8.7 同步点操作演示:在F

32、light Reservation中建立一张新的订单,并新增到数据库中 变更预设等待时间的设定如何识别何种问题需要以同步点解决加入同步点执行测试脚本并检视结果操作演示录制测试脚本 1、启动WR,并加载GUI Map File (flight4a.gui) 2、启动Flight 4A,并登录 3、开始以Context Sensitive模式录制测试脚本 4、建立新的订单 5、填入航班与旅客资料 6、点选“Insert Order”,将订单新增到数据库中 7、点选“Delete Order”,删除刚才新增的订单 8、停止录制,并保存测试脚本为lesson4操作演示变更预设等待时间的设定 1、点选Tools-General Options 2、选取Run-S

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论