版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、技术创新,变革未来软件自动化测试工具WinRunner概述2在传统的制造业中计量设备、化验设备在生产过程中对质量控制是至关重要的。如果千分尺、天平、实验炉的温度计不准,它所引起的后果可想而知。因此必须规定对这些设备的控制、校准和维修的办法,并建立文件化程序。对于软件企业呢,这里应该指的是软件测试工具的控制。测试工具概述3、什么是软件测试工具? 软件测试工具是一种测试软件,测试人员借 助它来提高软件测试工作的效率。 目前国内软件企业采用软件测试工具还不够普遍。4 2、软件测试工具的分类 按工作方式分: 静态分析工具 动态测试工具 按工具功能分: 测试计划工具:支持制订测试计划 测试设计与开发工具
2、:支持测试数据生成,测试问题的 捕捉与重演 测试执行工具:支持特定的测试方法、支持回归测试 测试评估工具:报告测试覆盖情况 测试管理工具:协助进行测试的组织工作 其它辅助工具:如数据比较、模拟运行5 3、如何控制 自行开发的测试工具待成熟才可投入使用采购产品的选择:优秀的、名牌的 使用前充分检测6白盒测试工具静态测试工具代码审查一致性检查错误检查接口分析输入输出规格说明分析检查数据流分析类型分析单元分析复杂度分析7白盒测试工具动态测试工具功能确认与接口测试覆盖分析性能测试内存分析8黑盒测试工具功能测试工具检测程序是否达到预期的功能并正常运行。性能测试工具确定软件和系统的性能常用的黑盒测试工具有
3、Rational公司的TeamTest、Compuware公司的QACenter(QARun、QALoad、Eco Tools、Eco Scope)9 WinRunner简介Mercury Interactive企业测试和性能管理解决方案供应商测试套件WinRunnerLoadRunnerTestDirector提供整个测试流程的解决方案测试计划、测试开发;GUI负载测试、错误跟踪、多用户系统客户端负载测试10主要内容WinRunner介绍WinRunner如何识别GUI对象GUI MAP创建测试检查GUI对象 11WinRunner:强大的企业级测试自动化工具基于MS Windows的功能测
4、试工具; 由于软件功能增加越来越快,测试难度越来越大,手工测试已经跟不上这种发展趋势; WR可以帮助自动处理从测试开发到测试执行的整个过程。可以创建可修改和可复用的测试脚本,而不用担心软件功能模块的变更。12TestDirector:全球测试管理系统TD是业界第一个基于web的测试管理系统,可在公司组织内进行全球范围内测试的协调。TD通过在一个整体的应用系统中提供并且集成了测试需求管理,测试计划,测试日程控制以及测试执行和错误跟踪等功能,极大地加速测试过程。13LoadRunner:工业标准级负载测试工具LR是一种预测系统行为和性能的负载测试工具。通过模拟成千上万名用户和实施实时性能监测来确认
5、和查找问题。使用LR,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。14WinRunner的安装154.1 WinRunner使用概述 1.启动WinRunner 点击开始程序WinRunnerWinRunner 启动WR。WR的Record/Run Engine(记录/执行引擎)的图标出现在Windows的任务条上。这个引擎设立和维护WR和被测软件之间的连接。 第一次启动WR会看到欢迎窗口,可以选择新建测试、打开已有测试或快速预览WR。如果不希望下次启动看到这个窗口,可以把Show on startup前面的勾去掉。 162.加载WinRunner 插件在WinRunner
6、启动时,可以选择支持ActiveX control、PowerBuilder、VisualBasic或WebTest的插件。把Show on startup前面的勾去掉,这样Add-In Manager的窗口就不会在WR启动的时候出现。也可以在进入WR后在SettingsGeneral OptionsEnviroment 里面设置是否在开始时显示这个窗口以及等待时间等。建议:不要同时载入所有的插件。 173.WinRunner主窗口主窗口包括以下部分: WinRunner title bar(标题栏)Menu bar (菜单栏) Standard toolbar (标准工具栏),包含运行测试时
7、常用的命令 User toolbar (用户工具栏),包含创建测试时常用的命令 Status bar (状态栏) 18WinRunner主窗口19确认显示工具条204.测试窗口在测试窗口创建和执行测试,窗口包含以下部分: Test Window title bar(测试窗口标题栏),显示当前打开的测试名称 Test script (测试脚本), 通过录制或编写代码方式生成 Execution arrow (执行箭头),指明当前正在执行的那一行脚本,如果想要移动这个标志到某一行,只需要在该行左侧空白处点击鼠标左键 Insertion point (插入点),你可以插入或编辑文本的地方 2122记
8、录Script1、先将光标移动到要插入Script的地方!2、启动要录制的Application3、按红色按钮开始录制4、停止录制23WinRunner测试过程 WR的测试过程分六个步骤: 创建GUI map(RapidTest Script wizard) 创建测试 调试测试(Debug Mode) 执行测试 (Verify Mode)查看测试结果(Test Results) 报告发现的错误 244.2 WinRunner如何识别GUI对象GUI的每个对象都有一组被定义的属性来决定它的行为和外观。WinRunner通过学习这些属性来识别和定位GUI对象,而不需要知道对象的物理位置;WinRu
9、nner把从GUI map上学来的信息储存起来。当执行测试时,WinRunner使用GUI map定位对象:先从GUI map读取有关对象的描述,然后寻找有相同属性的对象;当GUI被修改了之后,先前的脚本仍然可以使用 用户只需要在GUI map上添加、删除或编辑相关的对象的描述,WinRunner就可以在修改后的软件上找到这些对象。25GUI对象的逻辑名在测试脚本中,WinRunner不使用全部的物理描述来表示对象,而是给每个对象一个逻辑名。对象的逻辑名由它的类决定。多数情况下,逻辑名是对象的卷标:一个button的逻辑名就是它的卷标,如“OK”或“Cancel”;一个window的名称就是它
10、标题栏上的文本;一个list的名称是list上方或旁边的文本。逻辑名和物理描述一起作用,确保每个GUI对象有自身唯一的标识。26GUI对象的物理描述WinRunner使用物理描述识别被测软件的GUI对象物理描述包括物理属性名和相应的值;这些属性值的配对在GUI map中以下面的格式出现:属性1:值1,属性2:值2,property3:value3,.例如:对于“Open” window的描述包含两个属性:类(Class)和卷标(Label)。类的属性的值是“window”,卷标的属性的值是“Open”:class:window,label:Open类的属性标识对象的类型。每个对象根据功能不同属
11、于不同的类:window, push button, list, radio button, menu等。27284.3 GUI map选择ToolsGUI Map Editor 可以查看GUI map的内容。GUI map实际上是一个或多个GUI map文件的总和。在GUI Map Editor中,可以查看整个GUI map或单个GUI map文件的内容。GUI对象按照他们在软件中出现时所在的窗体分组。2930用GUI Spy查看GUI对象的属性GUI Spy可以用来检视某个GUI对象有哪些属性以及WR是以哪些属性来识别它的。过程:开启GUI Spy;按下spy按钮,将鼠标移动到登入窗口上,
12、将鼠标移到OK按钮上,然后按下Ctrl_L+F3,在跳出的Spy模式里,可以看到显示OK按钮的属性。31检视GUI Spy显示的信息在Recorded标签,是显示WR用来识别OK按钮的属性,分别是class:push_button以及label:Ok,表示这个GUI对象是个按钮,按钮上面的文字是OK;在All Standard标签,则是显示OK按钮的所有属性。WR只用最少的属性来识别GUI对象!32设定窗体环境(Window Context)WR在对象出现的窗体环境中学习和实现操作。当录制脚本时,一旦当前窗体(Active window)改变而且有GUI对象被操作,WR会自动在测试脚本中插入一
13、条set_window 语句。然后所有的对象就在那个窗体环境中被识别。例如: Set_window(“Print”,12); Button_press(“OK”); Set_window(“Print”,12)指明Print window(打印窗口)是当前窗体。OK button是在这个窗体环境里学到的。 如果手工编写脚本,则需要写入set_window 语句以对应当前窗体的变化。同样在编辑脚本时注意不要随意删除必要的set_window 语句。 33教WinRunner学习被测软件的GUIWR需要先学习软件的GUI 当使用GUI Map File per Test mode时,WR会在录制脚
14、本时自动学习软件的GUI。 当使用Global GUI Map File mode(共用GUI映射文件)时,需要教给WR有关GUI对象属性的信息。方式: 使用RapidTest Script wizard在录制脚本前一次性的学习每个窗体中所有的GUI对象的属性;通过录制脚本的方法学习被录制的那部分软件中所有的GUI对象的属性,如果只使用录制的方法让WR学习对象,WR或许不能把窗体上所有的对象都学到(因为有对象没有被操作),学习得不全面 ;录制方式只用于小的或临时的测试。 使用GUI Map Editor学习单个GUI对象、窗体或某个窗体中所有GUI对象的属性 。注意:在GUI Map File
15、 per Test 模式下,RapidTest Script wizard将被禁用。 34GUI map file模式的选取计划和创建测试时,需要确定GUI map的工作模式。 作为WR新手或GUI map只使用一次,可以使用GUI Map File Per Test模式。这种模式下,每次新建测试就自动新建一个GUI map file。在你保存测试时,GUI map file自动保存;在你打开测试时,GUI map file自动加载。 作为WR老手或GUI map将被不同测试共享,建议使用更有效率的Global GUI Map File模式。这是WR的默认模式。35两种模式的优缺点比较: GU
16、I Map File Per Test Global GUI Map File 优点 1. 每个测试都有自带的GUI map file。 2. 使用方便,且避免忘记保存或加载GUI map file。 3. 作为单次测试,容易维护和更新(就是重新录一次)。 1. 如果对象或窗体属性改变,只需要在GUI map file里把对应的属性修改。 2. 容易维护和更新(无需重新录制) 缺点 一旦软件GUI变更,每个测试的GUI map file都要重新录制。要记住保存和加载GUI map file。建议 如果你对WR没有经验或被测软件的GUI已经固定,可以采用这种模式。如果你是有经验的WR使用者或被测
17、软件的GUI经常变化,最好使用这种模式。 364.4 Global GUI Map File模式的使用 WR最有效率的用法是把测试分组。一组中的测试(任务)都测试同一窗体上的GUI对象。这样这些任务就可以共享GUI map file。当GUI发生变化,只需要修改一个GUI map file,就可以让同组中的任务都正常工作。 37RapidTest Script wizard的使用 1).选择CreateRapidTest Script Wizard,点击Next。 注意:当载入WebTest插件或其他某些插件后,RapidTest Script wizard将被禁用。 2).标识被测软件屏幕打
18、开点击指向手(手型图标),然后点击被测软件。被测软件的窗体名称显示在Window Name框中。 3).选择测试屏幕打开4).选择希望WR创建的测试类型。当RapidTest Scipt Wizard在被测软件中走查结束,选择的测试就会被显示在WR窗口中。 38RapidTest Script wizard的使用(续)5).消除所有设定(这里仅识别GUI对象)6).接受Navigation Controls默认值 此窗口主要告诉WR哪些GUI对象会开启一个新窗口,默认与。点击Next。 7).选择Express(快速)或Comprehensive(全面)学习流程。点击Learn。WR就开始系统
19、地一个窗口一个窗口地学习被测软件。8).选择Yes或No来告诉WR你是否希望在你使用WR时,让WR自动启动这个被测软件。点击Next。 9).输入启动脚本和GUI map文件的保存路径和文件名,或使用默认值。点击Next。 3910).输入测试文件的保存路径和文件名,或使用默认值。点击Next。 11).点击OK关闭RapidTest Script wizard。刚才创建的测试被显示在WR窗口中。40可选择以下几种类型的测试: GUI Regression Test(界面回归测试)用来比较软件不同版本中的GUI对象。例如检查一个button是否被禁用。创建这种测试时,WR先捕捉GUI对象默认信
20、息。在回归测试时,WR把当前信息和默认比较,并报告不符合的地方。 Bitmap Regression Test (位图回归测试)用来比较软件不同版本中的位图图片。如果被测软件没有GUI对象,则选择这种类型。创建这种测试时,WR先捕捉被测软件每个窗体的一幅位图图片。在回归测试时,WR把当前图片和以前捕捉的比较,并报告不符合的地方。 User Interface Test(用户界面测试)这种测试决定被测软件是否符合Microsoft Windows标准。Test Template(测试模板)这种测试提供一个操作被测软件的自动测试的基本框架。它打开和关闭每个窗口,为你留下可以添加代码(手写或录制)的
21、空间。 41User Interface Test(用户界面测试)检查: a). GUI对象在窗体中的排列 b). 所有被定义的文本(text)在GUI对象上可见 c). GUI对象上的卷标(Label)以大写字母写 d). 每个卷标包含一个有下划线的字母 e). 每个窗口有一个OK button,一个Cancel button,和一个系统菜单 WR搜索软件UI,把不符合Microsoft Windows标准的地方报告出来。 42保存GUI Map 1). 选择ToolsGUI Map Editor,打开编辑器。 2). 选择ViewGUI Files。 3). 确认文件显示在GUI File
22、清单中。文件名前有一个星号(*),表示GUI map文件被改变了。当文件保存后,星号消失。 4). 在GUI Map Editor中,选择FileSave打开Save GUI File对话框。 5). 选择文件夹、文件名(或输入新文件名)。点击保存。被保存的GUI map文件被加载并显示在GUI Map Editor里。 43加载GUI Map文件 有两种方法加载GUI map文件: 用GUI_load功能 从GUI Map Editor中加载 444.5 GUI Map File per Test模式 WR通过录制的方式学习被测软件的GUI。如果GUI发生变化,可以用GUI Map Edit
23、or更新每个测试的GUI map。无需加载或保存GUI map文件。 注意:如果改变了对象的逻辑名,必须更新脚本。 454.6 创建测试用户可以用录制或编程的方式创建测试。通常从录制一个基础测试脚本开始 用户对被测软件进行操作,TSL语言记录下这些操作;用户可以在脚本中修改、添加功能等。有两种可用的录制模式:Context Sensitive模式录制你对GUI对象的操作;Analog模式用X轴和Y轴定位跟踪鼠标运行轨迹。46Context Sensitive模式主要以GUI对象为基础,WR会识别使用者点选的GUI对象以及执行的操作;如在登入窗口按下OK按钮动作,则WR产生button_pres
24、s(“OK”),执行这段TSL,WR会在应用程序上找寻OK按钮,然后按下它。47Analog模式WR主要录制鼠标移动的轨迹、鼠标的点选以及键盘的输入三种动作;如在登入窗口按下OK按钮动作,则WR产生move_locator_track(1); 鼠标移动mtype(“-”); 按下鼠标左键mtype(“+”); 放开鼠标左键执行这段TSL,WR会控制鼠标移动,此鼠标移动的轨迹是以屏幕的绝对坐标为基准,所以当应用程序的位置或是使用接口变动,则测试脚本将会执行失败。48两种Recording测试的模式Context Sensitive(环境判断模式)Analog(模拟模式)应用程序只对GUI对象进行
25、操作 应用程序不仅仅只对GUI对象进行操作,对位图敏感。如画图软件等Default mode 完全按照用户鼠标、键盘的移动来进行记录Recommended 使用Context Sensitive不能完成测试时。提示:假如测试的应用程序包含一般GUI对象,也包含绘图区域,在录制过程中,可随时切换录制模式49创建测试脚本的主要步骤决定要测试的功能点。确定想在脚本中使用的检查点和同步点。 检查点用于比较软件当前版本和以前版本的区别;同步点用来处理测试运行中可能发生的时间控制和窗体位置等问题。在测试属性对话框里把测试相关的信息文档化。 选择录制模式(Context Sensitive或Analog)并
26、录制。 给测试分配一个名字并保存。 50检查点 在脚本中可以插入以下四类检查点: GUI检查点,检验GUI对象信息。比如:可以查看一个button是否可用或一个清单中哪个项目被选定了。位图检查点,做一个窗体或区域的截图,并把这张图片和以前版本进行比较。文本检查点,读取GUI对象和位图中的文本,可以检验文本内容。数据库检查点,检查一定数量的行和列组成的集合(这个集合由你在数据库中创建)的内容。51同步点 同步点解决测试和被测软件之间的时间占用问题。例如:如果创建一个打开数据库软件的测试,你可以插入一个同步点让测试等待直到在数据库中的记录在屏幕上被加载。 52录制Context Sensitive
27、模式的测试脚本 录制测试的操作方法: 1).开启WR并加载GUI Map File;2).开启Flight Reservation并登入;3).开始以Context Sensitive模式录制测试脚本; 4).开启3号定单;5).停止录制;6).保存测试脚本为lesson3。 注意:WR是以目录的方式而不是单一文件的方式储存lesson3测试脚本,此目录将会包含测试脚本以及测试执行的结果。53录制测试的操作方法: 1).开启lesson3测试脚本,将光标移到最后一行;2).开始以Context Sensitive模式录制测试脚本; 3).开启传真订单;Fax Number输入415555123
28、44).勾选send signature with order;5).在Context Sensitive模式下录制签名动作;6).清除签名;7).将Fax Order窗口移动到其他位置;8).在Analog模式下录制签名动作;(F2或再按一次Record按钮进行切换)录制Analog模式的测试脚本 549).切换回Context Sensitive模式并将订单传真出去;10).停止录制; 11).保存测试脚本;12).记住保存新的GUI对象。前次Fax Order窗口的GUI对象并未被识别,当录制到Fax Order窗口上的操作时,会被识别到并先放到temporary GUI Map Fil
29、e中。关闭WR后,此GUI对象将会被抛弃。55录制时的要点:录制前,关闭所有无关的程序。 创建可以自我复原的测试,以便测试脚本可以重复执行测试。当测试结束时,测试环境必须恢复到测试前的状态。 录制时,你可以把WR最小化而使用User工具条(需要先把工具条和菜单分开)。这样你就可以全屏录制程序了。所有主要命令都在工具条上,当然你也可以自定义工具条的内容。在Analog模式下录制时,避免超前输入。如果需要打开一个窗口,就等窗口完全打开后再继续操作。避免按住鼠标键不放,尤其是当这个操作会造成重复操作时(如点在滚动条上来移动屏幕显示的内容)。因为这样会造成一个无法被回放的时间感应(time-sensi
30、tive)操作。如果真的需要对鼠标键连续操作,可以多点击几下。 录制过程中,在一个窗体中移动时尽量使用鼠标,不要用Tab键。 56当需要从Context Sensitive模式切换到Analog模式时,在切换前建议移动一下窗口,如此可确保以Analog模式录制完成后执行时,窗口位置为固定的。在Analog模式下录制时,尽量使用热键插入检查点,不要用WR菜单或工具条。当在Global GUI Map File模式下录制测试脚本时,录制的GUI对象之前并未录制过,则WR会将其放在temporary GUI Map File中。当在Global GUI Map File模式下录制测试脚本时,经常检查
31、新的GUI对象是否被新增到temporary GUI Map File中,记得存盘。57测试编程 可以用编写代码的方法创建一个完整的脚本或是增强已录制的脚本。WR自带一个虚拟编程工具功能生成器(Function Generator),可以快速无错地在脚本中添加TSL功能。添加时,只需点一个对象或从功能清单上选择。 可以像普通编程一样使用变量、控制语句、数组和自定义功能。584.7 运行测试三种运行模式Verify 校验模式:用于检查应用程序;Debug 调试模式:用于调试测试脚本;Update 更新模式:用于更新预期的结果(以便与实际运行结果比较)。更改运行模式59Verify模式使用该模式检
32、查用户的应用程序;WinRunner将用户应用程序的当前响应(输出)与其预期响应相比较。任何的差异都会被捕获并存储为校验结果;当用户运行完一个测试时,WinRunner默认会打开测试结果窗口,以便用户查看校验结果。60Debug模式在修改完测试脚本后,通常会执行看看是不是顺利,有没有语法或逻辑上的错误。WinRunner使用该模式帮助用户找出脚本中的缺陷;可以逐行执行测试脚本;设定断点;以Watch List检视变量的值以Debug模式运行一个测试与以Verify模式运行一个测试基本相同。唯一的区别在于调试运行的结果总是存储于debug文件夹;一旦用户进入Debug模式运行测试,运行模式会一直
33、保持不变直至用户手工激活另外一个模式。61Update模式使用该模式更新一个测试的预期结果或者创建一个新的预期结果文件文件夹;当某一测试在update模式运行完成后,verify模式再次自动变为缺省运行模式;WinRunner一般将预期结果存在exp文件夹,并覆盖掉先前已有的任何结果。624.8 检查GUI对象 检查单个属性的值 检查单个对象 检查一个窗体中的多个对象 检查一个窗体中的所有对象 63GUI对象检查点如何检查GUI对象;练习GUI对象检查点;用不同的应用程序验证GUI对象检查点。64如何检查GUI对象在测试应用程序时,通常是透过检查GUI对象的属性,来测试功能是否正常。当GUI对
34、象的属性值与预期的值不符合时,表示有问题产生了。在WR中可以建立GUI检查点,可以检查:65建立单一GUI对象的检查点当鼠标点一下,WR会以预设检查的属性建立检查清单,并将检查点插入到测试脚本当鼠标点两下,Check GUI对话窗口会开启并显示选取的GUI对象,以及此GUI对象可供检查的属性。勾选想要检查的属性,WR就会建立检查清单(checklist),并将检查点插入到测试脚本6667WR会选取建立检查点当时的属性值当作预期的值,并且在测试脚本中插入obj_check_gui或win_check_gui(针对GUI对象或窗口对象);执行测试脚本,WR会自动比对执行时的实际值与建立检查点时的预
35、期值,如果一致,表示检查点检查通过,否则,检查点检查失败。68测试结果窗口69关于运行差异的提示当WinRunner以Debug或者Verify模式运行测试,如果发现与预期结果不一致的地方,会给出提示:70建立GUI对象检查点时的建议可以使用createGUI CheckpointFor Multiple Objects,一次检查窗口中多个或是全部的GUI对象;如果打算在深夜或无人时执行测试,可以设定当检查点不一致时,WR不要显示讯息以免中断测试的执行;如果想要更新检查点的预期值,请以Update模式执行一次测试脚本,则WR会以执行当时截取到的值,覆盖原本的预期值,成为新的预期值。71关闭提示
36、WinRunner主窗口Settings General Options72练习1).开启WR并加载GUI Map File;2).开启Flight Reservation并登入;3).开始以Context Sensitive模式录制测试脚本;4).开启Open Order窗口;5).对Order No.check box建立检查点;(2次点击)6).输入订单编号4;7).对Order No.check box建立另一个检查点;(1次点击)8).对Customer Namecheck box建立一个检查点; (2次点击)9).按下OK开启订单;停止录制;保存测试脚本lesson5。73执行测试
37、脚本;在另一个版本的Flight Reservation执行测试脚本;检视测试结果。744.9 图像检查点如何检查应用程序的图像;示范如何建立图像检查点;用不同的应用程序验证图像检查点;75如何检查应用程序的图像WR提供图像的检查点,以象素的方式比对图像;WR提供三种方式建立图像检查点:屏幕区域:以鼠标拖拉方式决定图像检查点的区域;窗口:以整个窗口作为图像检查点的区域;GUI object:以整个GUI对象作为图像检查点的区域76建立图像检查点开启WR并加载GUI Map File;开启Flight Reservation并登入;以Context Sensitive模式录制测试脚本;开启订单、
38、传真订单;输入传真号码、移动传真订单窗口;切换到Analog录制模式;在Agent Signature中签下你的名字;切换到Context Sensitive录制模式;77建立图像检查点(cont.)建立图像检查点检查你的签名; 选取Bitmap CheckpointFor Object/Window,以鼠标点选Agent Signature,测试脚本中插入obj_check_bitmap指令;清除签名;再建立图像检查点; 测试脚本中插入obj_check_bitmap指令;关闭传真订单窗口;停止录制;储存测试脚本lesson6;将GUI Map File保存(如果使用Global GUI M
39、ap模式的话)78检视预期结果开启WR测试结果窗口;检视WR截取的图像;关闭测试结果窗口。79在另一个版本执行测试脚本关闭Flight Reservation 1A;执行Flight Reservation 1B;确认目前的测试脚本为刚刚录制的;确认执行模式为Verify;点选Run From Top;执行时出现mismatch窗口; 检视测试结果;8081在另一个版本执行测试脚本(cont.)关闭测试结果窗口;关闭Flight Reservation;关闭测试脚本。82建立图像检查点时的建议可以使用createBitmap CheckpointFor Screen Area,以屏幕区域建立图
40、像检查点,WR会插入win_check_bitmap指令;如果打算在深夜或无人时执行测试,可以设定当检查点不一致时,WR不要显示讯息以免中断测试的执行;如果想要更新检查点的预期值,请以Update模式执行一次测试脚本,则WR会以执行当时截取到的值,覆盖原本的预期值,成为新的预期值。834.10 同步点何时该使用同步点;如何建立同步点;执行测试并分析结果。84何时该使用同步点当执行测试时,所测试的应用程序每次操作的响应时间并不一定,导致执行输入动作的时间也需要等待。比如以下的动作,会花几个秒钟:从数据库取得数据;等待一个窗口开启;等待状态列成为100;等待某个状态讯息出现;85何时该使用同步点(
41、cont.)此时,WR会等待一段固定的时间,直到应用程序可以接受输入的动作;等待时间的默认值为10s;如果应用程序响应的时间超过WR等待的时间,则测试执行就可能会失败。86解决办法增加WR预设等待的时间;SenttingsGeneral OptionsRun,将Timeout for checkpoints and CS Statements的值加大,预设为10000msec。加大此设定可能会造成在Context Sensitive的动作变慢。在测试脚本中插入同步点。87如何识别何种问题需要以同步点解决8889加入同步点在测试脚本中插入同步点,这个同步点会截取状态列上Insert Done的图
42、像;再次执行测试脚本时,WR会等到Insert Done的图像出现后,才执行点选Delete Order的动作。90插入同步点在button_press(“Delete Order”);这一行上面插入一行空白行,并将光标移到这一空白行的开头;点选CreateSynchronizationFor Object/Window Bitmap,将鼠标光标移到Insert Done的状态列上并点选;WR会在测试脚本中插入一行指令:obj_wait_bitmap(“Insert Done”,”Img”,1);可手工将函数参数1s改为10s。91执行测试脚本并检视结果执行已加入同步点的测试脚本:确认WR与F
43、light Reservation的主窗口开启;开启测试脚本;确认工具列上显示Verify模式;点选Run From Top;92测试结果93练习录制测试脚本:在Flight Reservation中建立一张新的订单,并新增到数据库中;然后删除刚刚新增的订单;变更预设等待时间的设定(改为1s);识别何种问题需要以同步点解决;加入同步点;执行测试脚本并检视结果。944.11 使用TSL撰写测试脚本如何在录制好的测试脚本中以可视化的方式加入函数;如何在测试脚本中加入判断式;如何调试(debug)。95函数产生器(Function Generator)可视化工具,帮助在测试脚本中快速插入函数;提供两
44、种使用方式:直接点选GUI对象,让WR为你建议合适的函数,然后再把函数加入测试脚本中;直接依照分类,从函数清单中挑选要使用的函数。96录制基本测试脚本开启WR并加载GUI Map File;开启Flight Reservation并登入;开始以Context Sensitive模式录制测试脚本;开启订单在Flight Reservation选取FileOpen Order,勾选Order No ,输入3后按下OK传真订单;点选Cancel关闭传真订单窗口;停止录制;储存测试脚本lesson7。97使用函数产生器在测试脚本中插入函数在button_press(“Cancel”)脚本前插入一行空白
45、;开启传真订单窗口;取得#Tickets字段的值选取Insert FunctionFor Object/Window函数产生器会开启并建议使用edit_get_text函数;变量的预设名称为text,可改成tickets;按下Paste将函数插入到测试脚本中。取得Ticket Price字段的值98使用函数产生器在测试脚本中插入函数(cont.)选取Insert FunctionFor Object/Window函数产生器会开启并建议使用edit_get_text函数;变量的预设名称为text,可改成price;按下Paste将函数插入到测试脚本中。取得Total字段的值选取Insert Fu
46、nctionFor Object/Window函数产生器会开启并建议使用edit_get_text函数;变量的预设名称为text,可改成total;按下Paste将函数插入到测试脚本中。点选Cancel关闭传真订单窗口;储存测试脚本。99在测试脚本中加入if/else判断式将光标放在最后一个edit_get_text脚本的下一行;加上下列的脚本:If(tickets*price=total)tl_step(“total”,0, “Total is correct.”);elsetl_step(“total”,1, “Total is incorrect.”);在if脚本前加上批注:check
47、that the total ticket price is calculated correctly.储存测试脚本。100了解tl_step函数透过加上的tl_step函数,可以自行决定测试脚本中的某段动作是否通过,进而决定整个测试脚本的执行结果是否通过;tl_step(“total”,1, “Total is incorrect.”);第一参数total代表这个动作的名称;第二参数为1则WR会判定此动作为失败,为0则WR会判定此动作为通过;第三参数Total is incorrect是WR针对此动作显示的讯息,有意义的描述可帮助你在检视最后测试结束时,更了解此动作所代表的意义。101测试脚
48、本的调试(debug)选取Debug模式;将执行箭头放在测试脚本第一行;逐行执行:选取DebugStep,WR开始执行第一行逐行执行完整个测试脚本;停止执行:执行完最后一行后,点Stop按钮检视测试结果:选取ToolsTest Results,开启测试结果窗口;关闭测试结果窗口。102在另一版本FR执行测试脚本执行Flight Reservation 1B;点选执行模式为Verify;点选Run From Top;检视测试结果;关闭测试结果窗口;关闭Flight Reservation ;关闭测试结果;103练习录制基本测试脚本:开启订单;开启传真订单窗口;使用函数产生器在测试脚本中插入函数;
49、在测试脚本中加入判断式:检查总金额是否等于机票单价*机票张数;调试测试脚本;在另一版本的FR执行测试脚本;检查结果是否正确。1044.12 建立数据驱动测试脚本如何使用数据驱动向导(Data Driver Wizard)建立数据驱动测试脚本;如何以regular expression作为对象名称;如何让测试脚本重复执行;105如何建立数据驱动(Data-driven)测试脚本为达到用多组不同的数据去执行测试脚本的目的,必须将测试脚本转化成数据驱动测试脚本,同时建立一个数据表。将测试脚本转化成数据驱动测试脚本(可以使用Data Driver Wizard 或手工修改)步骤:加上开启及关闭数据表的
50、指令;加上循环并读取数据表的每一笔数据;将录制的固定值与检查点的值参数化为数据表的字段值。106将测试脚本转化成数据驱动(Data-driven)测试脚本开启前一节课产生的测试脚本lesson7;检查GUI Map File是否已经加载;执行数据驱动向导点选Tools Data Driver Wizard ,出现如下图所示的欢迎窗口,选择下一步;建立数据表在Use a new or existing Excel table输入lesson8.xls,自动建立一个Excel档案,存储在测试脚本的目录下;107108109指定数据表的变量名称Assign a name to the variabl
51、e使用默认值table为数据表的变量名称;以数据表的变量来代表数据表的完整路径与文件名,只要修改此变量的值就可以用其他的数据表取代原本的测试数据了。设定参数化选项Add statements to create a data-driven test:表示由数据驱动向导自动将转成数据驱动测试脚本的指令加到测试脚本中;Parameterize the test此选项表示要做参数化110选择要被参数化的值第一个显示要参数化的测试脚本为button_set(“Order No.”,ON);这行脚本是勾选Order No.radio button,不是我们要作参数化的测试脚本,勾选Do not repl
52、ace this data,按下一步。111112第二个显示要参数化的测试脚本为edit_set(“Edit”, “3”); 这行脚本是在Order No.字段中输入3,就是我们要做参数化的脚本;在Argument to be replaced字段中显示要被参数化的资料为3;在Replace the selected value with data from:下选取A new column,并在字段中输入 Order_Num,则Data Driver Wizard会在lesson8.xls中新增一栏Order_Num字段,且第一笔数据为被参数化的资料:3。按下一步。113114完成按下Fini
53、sh按钮, Data Driver Wizard将测试脚本转成数据驱动测试脚本:table=“lesson8.xls”;rc=ddt_open(table,DDT_MODE_READ);If(rc!=E_OK&rc!=E_FILE_OPEN) pause(“Cannot open table.”);ddt_get_row_count(table,table_RowCount);for(table_Row=1;table_RowData Table开启数据表,可以看到第一栏为Order_Num,且其第一笔资料为3;加上4笔数据,分别为1、6、8、10,如下图所示;储存数据表储存测试脚本11811
54、9以regular expression调整测试脚本在flight1a.GUI找到Fax Order No.3窗口;修改窗口label属性;点选Modify按钮,开启Modify窗口。120在Physical Description字段中,将label这一行第一个双引号后加上!,然后将3与前面的空白删除改成*号。121关闭Modify窗口将GUI Map File存盘(如果使用Global GUI Map File模式)所谓regular expression就是利用某些字符,来表示特定的字符,例如用*来表示所有的字符。上面就是将传真窗口的label属性修改成regular expressio
55、n,以解决找不到窗口的问题。122使用通配符来识别GUI对象符号用途.任何单一字符0-9任何数字A-Z任何大写字母a-z任何小写字母m,f这里m,f可以是任意字符,m,f表示可以是字符m或者f*任何循环字符(any repetition of previous charactre or expression).*任何字符组成的字符串123修改结果信息为了让测试结果能更有意义,可修改测试脚本的tl_step,使其显示的信息更有意义修改tl_setptl_step(“total”,0, “Total is correct.”);改为:tl_step(“total”,0,Correct.ticket
56、stickets at $ pricecost$total.);tl_step(“total”,1, “Total is incorrect.”);改为:tl_step(“total”,1, “Error.” tickets”tickets at $ ”price”does not equal $”total”.”);储存测试脚本lesson8124执行测试脚本并分析结果确认Flight 1a已经开启在桌面上;以Verify作为执行模式;点选Run From Top;检视测试结果,如下图所示;测试结果显示5笔tl_step记录,每一笔记录都显示了票数、单价、总金额的值。关闭测试结果;关闭Fli
57、ght Reservation;关闭lesson8测试脚本。125126建立数据驱动脚本时的建议可以只将测试脚本的一部分转成数据驱动测试脚本;可以开启default.xls然后存储成其他文档名,以便使用多个测试数据表;GUI/图像检查点、图像同步点、常数均可参数化;数据表的使用方式与Excel工作表相同,可以在存储格式中使用公式;127在执行数据驱动测试脚本之前,应该先检查整个测试脚本以及其他部分,如GUI对象的属性等,看看是否有冲突的部分使用regular expression将属性变动的部分以特殊字符取代;重新设定GUI Map Configuration,将会变动的属性排除掉。测试执行时
58、并不需要开启数据表监视器(data table viewer)。1284.13 文字检查点(Text checkpoint)如何读取图像或非标准GUI对象上的文字;建立一个读取并验证文字的测试脚本;执行测试脚本并分析结果。提示:要验证标准的GUI对象上的文字,建议使用GUI检查点,以省去手动撰写测试脚本的不便。129从应用程序读取文字开启WR并加载GUI Map File;开启Flight Reservation并登入;确认文字识别的设定选取SettingsGeneral Options,点选Text Recognition,确认Timeout for Text Recognition设定为合理的值,默认500,点击OK。130开始以Context Sensitive模式录制测试脚本;开启图表在Flight Reservation中点选AnalysisGraphs;读取图表上的票数WR中点选CreateGet TextFrom Screen Area;光标会变成十字光标,以左键拖拉的方式框住票数后,再以鼠标右键结束操作;WR会插入:obj_get_text(“GS_Drawing”,text
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 营养产业可持续发展-洞察分析
- 外观模式可维护性-洞察分析
- 稀有金属国际市场动态-洞察分析
- 研究伦理与伦理责任-洞察分析
- 微创睑下垂矫正技术-洞察分析
- 隐私防护的影像存储方案-洞察分析
- 细胞免疫调控策略-洞察分析
- 虚拟现实在创伤后应激障碍治疗-洞察分析
- 娃娃玩具行业人才培养与引进研究-洞察分析
- 天文学与环境保护-洞察分析
- 仓库班长年终总结
- 组织协调方案及措施
- 2024-2029年中国IP授权行业市场现状分析及竞争格局与投资发展研究报告
- 北京市海淀区2023-2024学年四年级上学期期末英语试题
- 2024年湖北省汉江国有资本投资集团有限公司招聘笔试参考题库含答案解析
- 广州市九区联考2023-2024学年高一上学期期末教学质量监测数学试卷(原卷版)
- 西方国家的量刑建议制度及其比较
- 游戏方案模板
- 幼儿园大班数学上学期期末考试-试题测试
- 汽车产品定义 培训课件
- NICU患儿常规监测和护理要点
评论
0/150
提交评论