




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件测试技术第五章 软件测试自动化2本章要点n软件自动化测试基础n自动化测试工具n自动化软件测试工具简介nWinRunner简介n软件性能测试过程35.1 软件自动化测试基础n自动化测试的产生n自动化测试的定义n自动化测试的优势4企业的问题在开发新的应用程序软件的激烈竞赛中,企业所面临的压力越来越大,一方面需要在更短时间内开发出更高质量的产品,另一方面为保证软件质量又必须安排相当的时间进行测试,即我们称之为“软件开发矛盾”的两难境地。如今,这些企业认识到:要想生存,就必须在第一时间内既快又好地开发出应用程序。因此,软件测试必须自动化。通过自己开发或购买合适的测试工具,以满足特定的测试需求,无论
2、是软件的功能测试,还是性能测试,绝大多数测试工作都可以通过自动化测试工具来完成。5n也许存在这样的看法:优秀的测试工具会增加软件开发的预算。但这是一种陈旧的观点,所有的软件都需要测试,测试是保证软件质量的最重要的手段。开发人员查找错误的最佳开始时间是在项目设计之初,其后同步测试应伴随开发过程的每一个环节,真正达到开发、测试一体化。n采用优秀的软件测试工具不但不会增加预算,反而会减少软件开发的成本。6工具和自动化测试的产生用户对产品的要求用户对产品的要求质量用户希望软件产品能满足其业务的所有需求质量用户希望软件产品能满足其业务的所有需求时间短期时间短期现实状况现实状况开发人员与测试人员的比例失调
3、开发人员与测试人员的比例失调测试人员的技术水平不高测试人员的技术水平不高7n计算机执行测试测试的许多操作是重复性的、非智力创造性的,要求准确细致的工作。n测试自动化目的着重于发现旧的软件故障;n手工测试的目的在于发现新的软件故障;n自动化测试大大减轻手工测试的工作量,从而可提高软件质量。n 提示:软件测试工具不能代替软件测试员它们只能帮助软件测试员更好地工作。8自动化测试的定义n各种测试活动的管理与实施,包括测试脚本的开发与执行,均使用一种自动化测试工具来验证实际的测试结果是否满足测试的需求。9工具和自动化测试的优势n速度:以手工方式每速度:以手工方式每5 5秒执行一个秒执行一个Windows
4、Windows计算器的测试用例(用例总数可能为数千计算器的测试用例(用例总数可能为数千个),试想总的执行时间为多长?个),试想总的执行时间为多长?n效率:自动化测试工具能够将测试员从繁效率:自动化测试工具能够将测试员从繁复的测试用例执行过程解放出来,使其从复的测试用例执行过程解放出来,使其从事更有意义的工作(例如修订测试计划、事更有意义的工作(例如修订测试计划、增加测试用例等);增加测试用例等);10n准确度和精确度:测试员在尝试几百个测准确度和精确度:测试员在尝试几百个测试用例后,难免注意力分散。测试工具则试用例后,难免注意力分散。测试工具则可以保持前后一致地执行每一次测试;可以保持前后一致
5、地执行每一次测试;n坚持不懈:自动化测试工具永远不会因为坚持不懈:自动化测试工具永远不会因为疲惫而半途而废。疲惫而半途而废。工具和自动化测试的优势(续)11自动化的必要性n回归测试n每次当程序发生变更时,就需要进行回归测试;n如果程序上次通过了回归测试,并且改动很小,看起来这次也应该通过;n简单重复的单调的回归测试,无法调动测试员的兴趣,也似乎是浪费时间的罪魁祸首。n有些测试过程无法由人工完成n对底层通讯协议的测试、 对I/O性能的测试、对服务程序支持的并发交易量的测试、并发用户测试、大数据量测试、长时间运行可靠性测试等等,依靠手工无法完成;12自动化的可能性n每次使用的测试用例集都相同;n测
6、试流程相对固定;n通过编写一些测试脚本,可以实现自动化的软件系统生成(system build)、测试用例运行、运行结果收集、运行结果处理和测试报告生成;13在传统的制造业中计量设备、化验设备在生产过在传统的制造业中计量设备、化验设备在生产过程中对质量控制是至关重要的。如果千分尺、天平、程中对质量控制是至关重要的。如果千分尺、天平、实验炉的温度计不准,它所引起的后果可想而知。因实验炉的温度计不准,它所引起的后果可想而知。因此必须规定对这些设备的控制、校准和维修的办法,此必须规定对这些设备的控制、校准和维修的办法,并建立文件化程序。并建立文件化程序。对于软件企业呢,这里应该指的是软件测试工具对于
7、软件企业呢,这里应该指的是软件测试工具的控制。的控制。5.2 测试工具概述14、什么是软件测试工具?、什么是软件测试工具? 软件测试工具是一种测试软软件测试工具是一种测试软件,测试人员借件,测试人员借 助它来提高软件测试工作的效率。助它来提高软件测试工作的效率。 目前国内软件企业采用软件目前国内软件企业采用软件测试工具还不够测试工具还不够普遍。普遍。15 2 2、软件测试工具的分类、软件测试工具的分类 按工作方式分:按工作方式分: 静态分析工具静态分析工具 动态测试工具动态测试工具 按工具功能分:按工具功能分: 测试计划工具:支持制订测试计划工具:支持制订测试计划测试计划 测试设计与开发工具:
8、支测试设计与开发工具:支持测试数据生成,测试问题的持测试数据生成,测试问题的 捕捉与重演捕捉与重演 测试执行工具:支持特定测试执行工具:支持特定的测试方法、支持回归测试的测试方法、支持回归测试 测试评估工具:报告测试测试评估工具:报告测试覆盖情况覆盖情况 测试管理工具:协助进行测试管理工具:协助进行测试的组织工作测试的组织工作 其它辅助工具:如数据比其它辅助工具:如数据比较、模拟运行较、模拟运行16 3 3、如何控制、如何控制 自行开发的测试工具待成熟才可投入使用自行开发的测试工具待成熟才可投入使用采购产品的选择:优秀的、名牌的采购产品的选择:优秀的、名牌的 使用前充分检测使用前充分检测17白
9、盒测试工具静态测试工具n代码审查n一致性检查n错误检查n接口分析n输入输出规格说明分析检查n数据流分析n类型分析n单元分析n复杂度分析18白盒测试工具动态测试工具n功能确认与接口测试n覆盖分析n性能测试n内存分析19黑盒测试工具n功能测试工具n检测程序是否达到预期的功能并正常运行。n性能测试工具n确定软件和系统的性能n常用的黑盒测试工具有 Rational公司的TeamTest、Compuware公司的QACenter(QARun、QALoad、Eco Tools、Eco Scope)201.Telelogic Logiscope简介 5.3 主流自动化软件测试工具简介 21 面向源代码进行工
10、作的,贯穿于软件开发、代码评审、单元/集成测试、系统测试、以及软件维护阶段,重点是帮助代码评审和动态覆盖测试; Logiscope支持对嵌入式系统的覆盖率分析。首先是对应用源代码的插装,然后是实时地将测试信息通过网线/串口传到宿主机(Host)上,并在线显示。 Logiscope支持VxWorks、pSOS、VRTX等实时操作系统。Logiscope简介221.RuleChecker自定义的代码规则走查系统 对代码进行编程风格检测。预定义了50 个的编程规则(关于结构化编程、面向对象编程):名称约定(如:局部变量用小写等);表示约定(如:每行一条指令); 限制(如:不能用GOTO 语句,不能修
11、改循环体中的计数器等)。用户可以规则中选择,也可以用脚本和编程语言定义新的规则。使用所选规则对源代码一一进行验证,指出所有不符合编程规则的代码,并对应所违反的规则。 23 2.TestChecker动态测试模块 对代码进行测试覆盖率分析。提供对指令块(IB)、判定路径(DDP)和调用路径(PPP)覆盖测试。此外对安全-关键软件还提供了MC/DC (条件组合覆盖)的覆盖测试。 第一个提供MC/DC(Modified Condition/Decision Coverage)测试的工具。 产生每个测试的测试覆盖信息和累计信息。用直方图显示覆盖比率,并根据测试运行情况实时在线更改。随时显示新的测试所反
12、映的测试覆盖情况。 24TestChecker覆盖测试过程(交叉开发环境)25TestChecker与覆盖测试nTestChecker & TcGateWay TestChecker & TcGateWay nTcGateWay TcGateWay n 接收插装后程序执行时传送的路径信接收插装后程序执行时传送的路径信息息nTestChecker TestChecker n 统计覆盖率并显示覆盖路径统计覆盖率并显示覆盖路径262.AMC CODETEST2.AMC CODETEST嵌入式软件在线测试与嵌入式软件在线测试与分析工具分析工具 u硬件辅助软件的测试与分析工具 ;u吸取了
13、纯软件的测试工具采用的软件打点技术,并对这种技术进行了改善。u纯软件测试在被测代码中插入一些函数(插桩函数),用这些函数来完成数据的生成,并上送数据到目标系统的共享内存中。同时在目标系统中运行一个Monitor,将处理后的数据通过目标机的网口或串口上送到主机平台,这些代码会对系统的运行效率有很大的影响(超过50%)。CodeTEST插入的是一条赋值语句, 它在汇编级也是一条语句,所以它执行的时间非常短,同时避免了被其它的中断所中断,所以它对目标系统的影响非常小(1%-15%); 27从纯硬件的测试工具那里吸取了从总线捕获数据的技术并且对它进行了改善,CodeTEST不再是采样的方式,它是通过监
14、视系统总线,当程序运行到插入的特殊的点的时候才会主动的到数据总线上把数据捕获回来,借此,在同样的处理能力下,CodeTEST可以做到精确的数据观察; 强大的性能分析:能同时对32000个函数和1000个任务进行性能分析,可以精确的得出每个函数或任务执行的最大时间、最小时间和平均时间,精确度达到50ns;能够精确的显示各函数或任务之间的调用情况,帮助发现系统瓶颈、优化系统和提升系统性能。28强大的覆盖率分析:可以在系统真实的环境下,从单元级、集成级、系统级以及产品终端现场阶段进行嵌入式软件的分析与测试。帮助测试工程师掌握当前的测试覆盖率数据,指导测试用例的编写。 强大的内存分析:可以动态追踪内存
15、分配,报告内存出错和相应的原始数据。不仅可以在程序运行时报告为每条语句分配多少字节的内存,而且可以鉴别20多种内存分配的错误。例如:CodeTEST可以捕捉“释放空指针(freeing a null pointer)”一样常见的程序错误,报告发生错误的函数和代码行,尽早发现动态内存泄漏,而无需到系统崩溃时。29强大的代码跟踪分析:提供400K的追踪缓冲空间,能追踪150万行的源代码。可以设置触发器来追踪自己感兴趣的事件,可以显示运行过程中程序运行的实际情况,帮助查找程序的BUG所在。 30 CodeTEST对软件分析测试功能的实现原理 315.4 WinRunner5.4 WinRunner简
16、介简介nMercury Interactiven企业测试和性能管理解决方案供应商n测试套件nWinRunnernLoadRunnernTestDirectorn提供整个测试流程的解决方案n测试计划、测试开发;nGUI负载测试、错误跟踪、多用户系统客户端负载测试32主要内容主要内容nWinRunner介绍nWinRunner如何识别GUI对象nGUI MAPn创建测试n检查GUI对象 33WinRunnerWinRunner:强大的企业级测试自动化工具:强大的企业级测试自动化工具n基于MS Windows的功能测试工具; n由于软件功能增加越来越快,测试难度越来越大,手工测试已经跟不上这种发展趋
17、势; nWR可以帮助自动处理从测试开发到测试执行的整个过程。可以创建可修改和可复用的测试脚本,而不用担心软件功能模块的变更。34TestDirectorTestDirector:全球测试管理系统:全球测试管理系统nTD是业界第一个基于web的测试管理系统,可在公司组织内进行全球范围内测试的协调。nTD通过在一个整体的应用系统中提供并且集成了测试需求管理,测试计划,测试日程控制以及测试执行和错误跟踪等功能,极大地加速测试过程。35LoadRunner:工业标准级负载测试工具:工业标准级负载测试工具nLR是一种预测系统行为和性能的负载测试工具。通过模拟成千上万名用户和实施实时性能监测来确认和查找问
18、题。n使用LR,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。36WinRunnerWinRunner的安装的安装375.4.1 WinRunner5.4.1 WinRunner使用概述使用概述 1.1.启动启动WinRunner WinRunner 点击开始点击开始 程序程序WinRunnerWinRunner WinRunnerWinRunner 启动启动WRWR。WRWR的的Record/Run Engine(Record/Run Engine(记记录录/ /执行引擎执行引擎) )的图标出现在的图标出现在WindowsWindows的的任务条上。这个引擎设立和维护任务条
19、上。这个引擎设立和维护WRWR和和被测软件之间的连接。被测软件之间的连接。 第一次启动第一次启动WRWR会看到欢迎窗口,可以选会看到欢迎窗口,可以选择新建测试、打开已有测试或快速预择新建测试、打开已有测试或快速预览览WRWR。如果不希望下次启动看到这个。如果不希望下次启动看到这个窗口,可以把窗口,可以把Show on startupShow on startup前面的前面的勾去掉。勾去掉。 382.2.加载加载WinRunner WinRunner 插件插件n在WinRunner启动时,可以选择支持ActiveX control、PowerBuilder、VisualBasic或WebTest
20、的插件。n把Show on startup前面的勾去掉,这样Add-In Manager的窗口就不会在WR启动的时候出现。也可以在进入WR后在SettingsGeneral OptionsEnviroment 里面设置是否在开始时显示这个窗口以及等待时间等。n建议:不要同时载入所有的插件。 393.WinRunner3.WinRunner主窗口主窗口主窗口包括以下部分: WinRunner title bar(标题栏)Menu bar (菜单栏) Standard toolbar (标准工具栏),包含运行测试时常用的命令 User toolbar (用户工具栏),包含创建测试时常用的命令 St
21、atus bar (状态栏) 40WinRunnerWinRunner主窗口主窗口41确认显示工具条确认显示工具条424.4.测试窗口测试窗口在测试窗口创建和执行测试,窗口包含以下部分: Test Window title bar(测试窗口标题栏),显示当前打开的测试名称 Test script (测试脚本), 通过录制或编写代码方式生成 Execution arrow (执行箭头),指明当前正在执行的那一行脚本,如果想要移动这个标志到某一行,只需要在该行左侧空白处点击鼠标左键 Insertion point (插入点),你可以插入或编辑文本的地方 4344记录记录ScriptScript1
22、1、先将光标移动到要插入、先将光标移动到要插入ScriptScript的地方!的地方!2 2、启动要录制的、启动要录制的ApplicationApplication3 3、按红色按钮开始录制、按红色按钮开始录制4 4、停止录制、停止录制45WinRunnerWinRunner测试过程测试过程 WR的测试过程分六个步骤: 创建GUI map(RapidTest Script wizard) 创建测试 调试测试(Debug Mode) 执行测试 (Verify Mode)查看测试结果(Test Results) 报告发现的错误 465.4.2 WinRunner5.4.2 WinRunner如何识
23、别如何识别GUIGUI对象对象nGUI的每个对象都有一组被定义的属性来决定它的行为和外观。WinRunner通过学习这些属性来识别和定位GUI对象,而不需要知道对象的物理位置;nWinRunner把从GUI map上学来的信息储存起来。当执行测试时,WinRunner使用GUI map定位对象:先从GUI map读取有关对象的描述,然后寻找有相同属性的对象;n当GUI被修改了之后,先前的脚本仍然可以使用 用户只需要在GUI map上添加、删除或编辑相关的对象的描述,WinRunner就可以在修改后的软件上找到这些对象。47GUI对象的逻辑名n在测试脚本中,WinRunner不使用全部的物理描述
24、来表示对象,而是给每个对象一个逻辑名。n对象的逻辑名由它的类决定。多数情况下,逻辑名是对象的卷标:一个button的逻辑名就是它的卷标,如“OK”或“Cancel”;一个window的名称就是它标题栏上的文本;一个list的名称是list上方或旁边的文本。n逻辑名和物理描述一起作用,确保每个GUI对象有自身唯一的标识。48GUI对象的物理描述nWinRunner使用物理描述识别被测软件的GUI对象n物理描述包括物理属性名和相应的值;n这些属性值的配对在GUI map中以下面的格式出现:属性1:值1,属性2:值2,property3:value3,.n例如:对于“Open” window的描述包
25、含两个属性:类(Class)和卷标(Label)。n类的属性的值是“window”,卷标的属性的值是“Open”:class:window,label:Openn类的属性标识对象的类型。每个对象根据功能不同属于不同的类:nwindow, push button, list, radio button, menu等。49505.4.3 GUI map5.4.3 GUI mapn选择ToolsGUI Map Editor 可以查看GUI map的内容。GUI map实际上是一个或多个GUI map文件的总和。n在GUI Map Editor中,可以查看整个GUI map或单个GUI map文件的内
26、容。GUI对象按照他们在软件中出现时所在的窗体分组。5152用GUI Spy查看GUI对象的属性nGUI Spy可以用来检视某个GUI对象有哪些属性以及WR是以哪些属性来识别它的。n过程:n开启GUI Spy;n按下spy按钮,将鼠标移动到登入窗口上,将鼠标移到OK按钮上,然后按下Ctrl_L+F3,在跳出的Spy模式里,可以看到显示OK按钮的属性。53检视GUI Spy显示的信息n在Recorded标签,是显示WR用来识别OK按钮的属性,分别是class:push_button以及label:Ok,表示这个GUI对象是个按钮,按钮上面的文字是OK;n在All Standard标签,则是显示O
27、K按钮的所有属性。nWR只用最少的属性来识别GUI对象!54设定窗体环境(设定窗体环境(Window ContextWindow Context)nWR在对象出现的窗体环境中学习和实现操作。当录制脚本时,一旦当前窗体(Active window)改变而且有GUI对象被操作,WR会自动在测试脚本中插入一条set_window 语句。然后所有的对象就在那个窗体环境中被识别。例如: n Set_window(“Print”,12); n Button_press(“OK”); nSet_window(“Print”,12)指明Print window(打印窗口)是当前窗体。OK button是在这个
28、窗体环境里学到的。 n如果手工编写脚本,则需要写入set_window 语句以对应当前窗体的变化。同样在编辑脚本时注意不要随意删除必要的set_window 语句。 55教教WinRunnerWinRunner学习被测软件的学习被测软件的GUIGUIWR需要先学习软件的GUI 当使用GUI Map File per Test mode时,WR会在录制脚本时自动学习软件的GUI。 当使用Global GUI Map File mode(共用GUI映射文件)时,需要教给WR有关GUI对象属性的信息。方式: 使用RapidTest Script wizard在录制脚本前一次性的学习每个窗体中所有的G
29、UI对象的属性;通过录制脚本的方法学习被录制的那部分软件中所有的GUI对象的属性,如果只使用录制的方法让WR学习对象,WR或许不能把窗体上所有的对象都学到(因为有对象没有被操作),学习得不全面 ;录制方式只用于小的或临时的测试。 使用GUI Map Editor学习单个GUI对象、窗体或某个窗体中所有GUI对象的属性 。注意:在GUI Map File per Test 模式下,RapidTest Script wizard将被禁用。 56GUI map fileGUI map file模式的选取模式的选取n计划和创建测试时,需要确定GUI map的工作模式。 n作为WR新手或GUI map只
30、使用一次,可以使用GUI Map File Per Test模式。这种模式下,每次新建测试就自动新建一个GUI map file。在你保存测试时,GUI map file自动保存;在你打开测试时,GUI map file自动加载。 n作为WR老手或GUI map将被不同测试共享,建议使用更有效率的Global GUI Map File模式。这是WR的默认模式。57两种模式的优缺点比较:两种模式的优缺点比较: GUI Map File Per Test Global GUI Map File 优点优点 1. 每个测试都有自带的GUI map file。 2. 使用方便,且避免忘记保存或加载GUI
31、 map file。 3. 作为单次测试,容易维护和更新(就是重新录一次)。 1. 如果对象或窗体属性改变,只需要在GUI map file里把对应的属性修改。 2. 容易维护和更新(无需重新录制) 缺点缺点 一旦软件GUI变更,每个测试的GUI map file都要重新录制。要记住保存和加载GUI map file。建议建议 如果你对WR没有经验或被测软件的GUI已经固定,可以采用这种模式。如果你是有经验的WR使用者或被测软件的GUI经常变化,最好使用这种模式。 585.4.4 Global GUI Map File5.4.4 Global GUI Map File模式模式的使用的使用 nW
32、R最有效率的用法是把测试分组。一组中的测试(任务)都测试同一窗体上的GUI对象。这样这些任务就可以共享GUI map file。当GUI发生变化,只需要修改一个GUI map file,就可以让同组中的任务都正常工作。 59RapidTest Script wizardRapidTest Script wizard的使用的使用 1).选择CreateRapidTest Script Wizard,点击Next。 注意:当载入WebTest插件或其他某些插件后,RapidTest Script wizard将被禁用。 2).标识被测软件屏幕打开点击指向手(手型图标),然后点击被测软件。被测软件的
33、窗体名称显示在Window Name框中。 3).选择测试屏幕打开4).选择希望WR创建的测试类型。当RapidTest Scipt Wizard在被测软件中走查结束,选择的测试就会被显示在WR窗口中。 60RapidTest Script wizardRapidTest Script wizard的使用的使用( (续续) )5).5).消除所有设定消除所有设定( (这里仅识别这里仅识别GUIGUI对象对象) )6).6).接受接受Navigation ControlsNavigation Controls默认值默认值 此窗口主要告诉此窗口主要告诉WRWR哪些哪些GUIGUI对象会开启一个新窗
34、对象会开启一个新窗口,默认口,默认与与。点击。点击NextNext。 7).7).选择选择Express(Express(快速快速) )或或Comprehensive(Comprehensive(全面全面) )学学习流程。点击习流程。点击LearnLearn。WRWR就开始系统地一个窗口一就开始系统地一个窗口一个窗口地学习被测软件。个窗口地学习被测软件。8).8).选择选择YesYes或或NoNo来告诉来告诉WRWR你是否希望在你使用你是否希望在你使用WRWR时,时,让让WRWR自动启动这个被测软件。点击自动启动这个被测软件。点击NextNext。 9).9).输入启动脚本和输入启动脚本和GU
35、I mapGUI map文件的保存路径和文件文件的保存路径和文件名,或使用默认值。点击名,或使用默认值。点击NextNext。 6110).10).输入测试文件的保存路径和文件名,或输入测试文件的保存路径和文件名,或使用默认值。点击使用默认值。点击NextNext。 11).11).点击点击OKOK关闭关闭RapidTest Script wizardRapidTest Script wizard。刚才创建的测试被显示在刚才创建的测试被显示在WRWR窗口中。窗口中。62可选择以下几种类型的测试:可选择以下几种类型的测试: nGUI Regression TestGUI Regression T
36、est(界面回归测试)用来比较软件(界面回归测试)用来比较软件不同版本中的不同版本中的GUIGUI对象。例如检查一个对象。例如检查一个buttonbutton是否被禁用。是否被禁用。创建这种测试时,创建这种测试时,WRWR先捕捉先捕捉GUIGUI对象默认信息。在回归测对象默认信息。在回归测试时,试时,WRWR把当前信息和默认比较,并报告不符合的地方。把当前信息和默认比较,并报告不符合的地方。 nBitmap Regression Test (Bitmap Regression Test (位图回归测试位图回归测试) )用来比较软用来比较软件不同版本中的位图图片。如果被测软件没有件不同版本中的位
37、图图片。如果被测软件没有GUIGUI对象,对象,则选择这种类型。创建这种测试时,则选择这种类型。创建这种测试时,WRWR先捕捉被测软件每先捕捉被测软件每个窗体的一幅位图图片。在回归测试时,个窗体的一幅位图图片。在回归测试时,WRWR把当前图片和把当前图片和以前捕捉的比较,并报告不符合的地方。以前捕捉的比较,并报告不符合的地方。 nUser Interface Test(User Interface Test(用户界面测试用户界面测试) )这种测试决定被这种测试决定被测软件是否符合测软件是否符合Microsoft WindowsMicrosoft Windows标准。标准。nTest Templ
38、ate(Test Template(测试模板测试模板) )这种测试提供一个操作被测这种测试提供一个操作被测软件的自动测试的基本框架。它打开和关闭每个窗口,为软件的自动测试的基本框架。它打开和关闭每个窗口,为你留下可以添加代码(手写或录制)的空间。你留下可以添加代码(手写或录制)的空间。 63User Interface Test(User Interface Test(用户界面测试用户界面测试) )检查: a). GUI对象在窗体中的排列 b). 所有被定义的文本(text)在GUI对象上可见 c). GUI对象上的卷标(Label)以大写字母写 d). 每个卷标包含一个有下划线的字母 e).
39、 每个窗口有一个OK button,一个Cancel button,和一个系统菜单 WR搜索软件UI,把不符合Microsoft Windows标准的地方报告出来。 64保存GUI Map 1). 选择ToolsGUI Map Editor,打开编辑器。 2). 选择ViewGUI Files。 3). 确认文件显示在GUI File清单中。文件名前有一个星号(*),表示GUI map文件被改变了。当文件保存后,星号消失。 4). 在GUI Map Editor中,选择FileSave打开Save GUI File对话框。 5). 选择文件夹、文件名(或输入新文件名)。点击保存。被保存的GUI
40、 map文件被加载并显示在GUI Map Editor里。 65加载GUI Map文件 有两种方法加载GUI map文件: 用GUI_load功能 从GUI Map Editor中加载 665.4.5 GUI Map File per Test5.4.5 GUI Map File per Test模模式式 nWR通过录制的方式学习被测软件的GUI。如果GUI发生变化,可以用GUI Map Editor更新每个测试的GUI map。n无需加载或保存GUI map文件。 n注意:如果改变了对象的逻辑名,必须更新脚本。 675.4.6 5.4.6 创建测试创建测试n用户可以用录制或编程的方式创建测试
41、。n通常从录制一个基础测试脚本开始 用户对被测软件进行操作,TSL语言记录下这些操作;n用户可以在脚本中修改、添加功能等。n有两种可用的录制模式:nContext Sensitive模式录制你对GUI对象的操作;nAnalog模式用X轴和Y轴定位跟踪鼠标运行轨迹。68Context Sensitive模式n主要以GUI对象为基础,WR会识别使用者点选的GUI对象以及执行的操作;n如在登入窗口按下OK按钮动作,则WR产生button_press(“OK”),执行这段TSL,WR会在应用程序上找寻OK按钮,然后按下它。69Analog模式nWR主要录制鼠标移动的轨迹、鼠标的点选以及键盘的输入三种动
42、作;n如在登入窗口按下OK按钮动作,则WR产生nmove_locator_track(1); 鼠标移动nmtype(“-”); 按下鼠标左键nmtype(“+”); 放开鼠标左键n执行这段TSL,WR会控制鼠标移动,此鼠标移动的轨迹是以屏幕的绝对坐标为基准,所以当应用程序的位置或是使用接口变动,则测试脚本将会执行失败。70两种两种RecordingRecording测试的模式测试的模式Context SensitiveContext Sensitive(环境判断模式)(环境判断模式)AnalogAnalog(模拟模式)(模拟模式)应用程序只对GUI对象进行操作 应用程序不仅仅只对GUI对象进行
43、操作,对位图敏感。如画图软件等Default mode 完全按照用户鼠标、键盘的移动来进行记录Recommended 使用Context Sensitive不能完成测试时。提示:假如测试的应用程序包含一般GUI对象,也包含绘图区域,在录制过程中,可随时切换录制模式71创建测试脚本的主要步骤创建测试脚本的主要步骤1.决定要测试的功能点。确定想在脚本中使用的检查点和同步点。 2.检查点用于比较软件当前版本和以前版本的区别;3.同步点用来处理测试运行中可能发生的时间控制和窗体位置等问题。4.在测试属性对话框里把测试相关的信息文档化。 5.选择录制模式(Context Sensitive或Analog
44、)并录制。 6.给测试分配一个名字并保存。 72检查点检查点 在脚本中可以插入以下四类检查点: GUI检查点,检验GUI对象信息。比如:可以查看一个button是否可用或一个清单中哪个项目被选定了。位图检查点,做一个窗体或区域的截图,并把这张图片和以前版本进行比较。文本检查点,读取GUI对象和位图中的文本,可以检验文本内容。数据库检查点,检查一定数量的行和列组成的集合(这个集合由你在数据库中创建)的内容。73同步点同步点 n同步点解决测试和被测软件之间的时间占用问题。例如:如果创建一个打开数据库软件的测试,你可以插入一个同步点让测试等待直到在数据库中的记录在屏幕上被加载。 74录制录制Cont
45、ext SensitiveContext Sensitive模式的测试模式的测试脚本脚本 录制测试的操作方法: 1).开启WR并加载GUI Map File;2).开启Flight Reservation并登入;3).开始以Context Sensitive模式录制测试脚本; 4).开启3号定单;5).停止录制;6).保存测试脚本为lesson3。 注意:WR是以目录的方式而不是单一文件的方式储存lesson3测试脚本,此目录将会包含测试脚本以及测试执行的结果。75录制测试的操作方法: 1).开启lesson3测试脚本,将光标移到最后一行;2).开始以Context Sensitive模式录制
46、测试脚本; 3).开启传真订单;Fax Number输入 4).勾选send signature with order;5).在Context Sensitive模式下录制签名动作;6).清除签名;7).将Fax Order窗口移动到其他位置;8).在Analog模式下录制签名动作;(F2或再按一次Record按钮进行切换)录制录制AnalogAnalog模式的测试脚本模式的测试脚本 769).切换回Context Sensitive模式并将订单传真出去;10).停止录制; 11).保存测试脚本;12).记住保存新的GUI对象。前次Fax Order窗口的GUI对象并未被识别,当录制到Fax
47、Order窗口上的操作时,会被识别到并先放到temporary GUI Map File中。关闭WR后,此GUI对象将会被抛弃。77录制时的要点:n录制前,关闭所有无关的程序。 n创建可以自我复原的测试,以便测试脚本可以重复执行测试。当测试结束时,测试环境必须恢复到测试前的状态。 n录制时,你可以把WR最小化而使用User工具条(需要先把工具条和菜单分开)。这样你就可以全屏录制程序了。所有主要命令都在工具条上,当然你也可以自定义工具条的内容。n在Analog模式下录制时,避免超前输入。如果需要打开一个窗口,就等窗口完全打开后再继续操作。避免按住鼠标键不放,尤其是当这个操作会造成重复操作时(如点
48、在滚动条上来移动屏幕显示的内容)。因为这样会造成一个无法被回放的时间感应(time-sensitive)操作。如果真的需要对鼠标键连续操作,可以多点击几下。 n录制过程中,在一个窗体中移动时尽量使用鼠标,不要用Tab键。 78n当需要从Context Sensitive模式切换到Analog模式时,在切换前建议移动一下窗口,如此可确保以Analog模式录制完成后执行时,窗口位置为固定的。n在Analog模式下录制时,尽量使用热键插入检查点,不要用WR菜单或工具条。n当在Global GUI Map File模式下录制测试脚本时,录制的GUI对象之前并未录制过,则WR会将其放在temporary
49、 GUI Map File中。n当在Global GUI Map File模式下录制测试脚本时,经常检查新的GUI对象是否被新增到temporary GUI Map File中,记得存盘。79测试编程测试编程 n可以用编写代码的方法创建一个完整的脚本或是增强已录制的脚本。WR自带一个虚拟编程工具功能生成器(Function Generator),可以快速无错地在脚本中添加TSL功能。添加时,只需点一个对象或从功能清单上选择。 n可以像普通编程一样使用变量、控制语句、数组和自定义功能。805.4.7 5.4.7 运行测试运行测试n三种运行模式nVerify 校验模式:用于检查应用程序;nDebu
50、g 调试模式:用于调试测试脚本;nUpdate 更新模式:用于更新预期的结果(以便与实际运行结果比较)。n更改运行模式81VerifyVerify模式模式n使用该模式检查用户的应用程序;nWinRunner将用户应用程序的当前响应(输出)与其预期响应相比较。任何的差异都会被捕获并存储为校验结果;n当用户运行完一个测试时,WinRunner默认会打开测试结果窗口,以便用户查看校验结果。82DebugDebug模式模式n在修改完测试脚本后,通常会执行看看是不是顺利,有没有语法或逻辑上的错误。WinRunner使用该模式帮助用户找出脚本中的缺陷;可以逐行执行测试脚本;设定断点;以Watch List
51、检视变量的值n以Debug模式运行一个测试与以Verify模式运行一个测试基本相同。唯一的区别在于调试运行的结果总是存储于debug文件夹;n一旦用户进入Debug模式运行测试,运行模式会一直保持不变直至用户手工激活另外一个模式。83UpdateUpdate模式模式n使用该模式更新一个测试的预期结果或者创建一个新的预期结果文件文件夹;n当某一测试在update模式运行完成后,verify模式再次自动变为缺省运行模式;nWinRunner一般将预期结果存在exp文件夹,并覆盖掉先前已有的任何结果。845.4.8 5.4.8 检查检查GUIGUI对象对象 n检查单个属性的值 n检查单个对象 n检查
52、一个窗体中的多个对象 n检查一个窗体中的所有对象 85GUIGUI对象检查点对象检查点n如何检查GUI对象;n练习GUI对象检查点;n用不同的应用程序验证GUI对象检查点。86如何检查GUI对象n在测试应用程序时,通常是透过检查GUI对象的属性,来测试功能是否正常。当GUI对象的属性值与预期的值不符合时,表示有问题产生了。n在WR中可以建立GUI检查点,可以检查:87建立单一GUI对象的检查点n当鼠标点一下,WR会以预设检查的属性建立检查清单,并将检查点插入到测试脚本n当鼠标点两下,Check GUI对话窗口会开启并显示选取的GUI对象,以及此GUI对象可供检查的属性。勾选想要检查的属性,WR
53、就会建立检查清单(checklist),并将检查点插入到测试脚本8889nWR会选取建立检查点当时的属性值当作预期的值,并且在测试脚本中插入obj_check_gui或win_check_gui(针对GUI对象或窗口对象);n执行测试脚本,WR会自动比对执行时的实际值与建立检查点时的预期值,如果一致,表示检查点检查通过,否则,检查点检查失败。90测试结果窗口91关于运行差异的提示n当WinRunner以Debug或者Verify模式运行测试,如果发现与预期结果不一致的地方,会给出提示:92建立GUI对象检查点时的建议n可以使用createGUI CheckpointFor Multiple O
54、bjects,一次检查窗口中多个或是全部的GUI对象;n如果打算在深夜或无人时执行测试,可以设定当检查点不一致时,WR不要显示讯息以免中断测试的执行;n如果想要更新检查点的预期值,请以Update模式执行一次测试脚本,则WR会以执行当时截取到的值,覆盖原本的预期值,成为新的预期值。93关闭提示nWinRunnern主窗口nSettings General Options94练习1).开启WR并加载GUI Map File;2).开启Flight Reservation并登入;3).开始以Context Sensitive模式录制测试脚本;4).开启Open Order窗口;5).对Order
55、No.check box建立检查点;(2次点击)6).输入订单编号4;7).对Order No.check box建立另一个检查点;(1次点击)8).对Customer Namecheck box建立一个检查点; (2次点击)9).按下OK开启订单;停止录制;保存测试脚本lesson5。95n执行测试脚本;n在另一个版本的Flight Reservation执行测试脚本;n检视测试结果。965.4.9 5.4.9 图像检查点图像检查点n如何检查应用程序的图像;n示范如何建立图像检查点;n用不同的应用程序验证图像检查点;97如何检查应用程序的图像nWR提供图像的检查点,以象素的方式比对图像;nW
56、R提供三种方式建立图像检查点:n屏幕区域:以鼠标拖拉方式决定图像检查点的区域;n窗口:以整个窗口作为图像检查点的区域;nGUI object:以整个GUI对象作为图像检查点的区域98建立图像检查点1.开启WR并加载GUI Map File;2.开启Flight Reservation并登入;3.以Context Sensitive模式录制测试脚本;4.开启订单、传真订单;5.输入传真号码、移动传真订单窗口;6.切换到Analog录制模式;7.在Agent Signature中签下你的名字;8.切换到Context Sensitive录制模式;99建立图像检查点(cont.)9.建立图像检查点检
57、查你的签名;10. 选取Bitmap CheckpointFor Object/Window,以鼠标点选Agent Signature,测试脚本中插入obj_check_bitmap指令;11. 清除签名;12. 再建立图像检查点;13. 测试脚本中插入obj_check_bitmap指令;14. 关闭传真订单窗口;15. 停止录制;16. 储存测试脚本lesson6;17. 将GUI Map File保存(如果使用Global GUI Map模式的话)100检视预期结果n开启WR测试结果窗口;n检视WR截取的图像;n关闭测试结果窗口。101在另一个版本执行测试脚本1.关闭Flight Res
58、ervation 1A;2.执行Flight Reservation 1B;3.确认目前的测试脚本为刚刚录制的;4.确认执行模式为Verify;5.点选Run From Top;6.执行时出现mismatch窗口; 7.检视测试结果;102103在另一个版本执行测试脚本(cont.)8.关闭测试结果窗口;9.关闭Flight Reservation;10.关闭测试脚本。104建立图像检查点时的建议n可以使用createBitmap CheckpointFor Screen Area,以屏幕区域建立图像检查点,WR会插入win_check_bitmap指令;n如果打算在深夜或无人时执行测试,可以
59、设定当检查点不一致时,WR不要显示讯息以免中断测试的执行;n如果想要更新检查点的预期值,请以Update模式执行一次测试脚本,则WR会以执行当时截取到的值,覆盖原本的预期值,成为新的预期值。1055.4.10 5.4.10 同步点同步点n何时该使用同步点;n如何建立同步点;n执行测试并分析结果。106何时该使用同步点n当执行测试时,所测试的应用程序每次操作的响应时间并不一定,导致执行输入动作的时间也需要等待。n比如以下的动作,会花几个秒钟:n从数据库取得数据;n等待一个窗口开启;n等待状态列成为100;n等待某个状态讯息出现;107何时该使用同步点(cont.)n此时,WR会等待一段固定的时间
60、,直到应用程序可以接受输入的动作;n等待时间的默认值为10s;n如果应用程序响应的时间超过WR等待的时间,则测试执行就可能会失败。108解决办法A. 增加WR预设等待的时间;B. SenttingsGeneral OptionsRun,将Timeout for checkpoints and CS Statements的值加大,预设为10000msec。C. 加大此设定可能会造成在Context Sensitive的动作变慢。D. 在测试脚本中插入同步点。109如何识别何种问题需要以同步点解决110111加入同步点n在测试脚本中插入同步点,这个同步点会截取状态列上Insert Done的图像;n再次执行测试脚
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025河南省农产品种植销售合同范本
- 2025年个人所有房产买卖合同
- 2025福建省软件企业劳动合同(官方范本)
- 2025年家庭聘请家政服务员的合同模板
- 2025汽车制造合同及具体内容
- 2025联营经营店铺合同模板
- 2025年软件开发外包合同模板:应用软件开发外包合同格式
- 2025年版个人房产抵押借款合同模板
- 公司股责任合同范例
- 产品融资合同范例
- 2025年中考物理一轮复习:物理学与社会发展 专项练习
- DL∕T 526-2013 备用电源自动投入装置技术条件
- 2024年北京大兴区九年级初三一模英语试题和答案
- JT-T-848-2013公路用复合隔离栅立柱
- 食品生物化学 知到智慧树网课答案
- 2024年江苏国信新丰海上风力发电有限公司招聘笔试冲刺题(带答案解析)
- 学术交流英语(学术写作)智慧树知到期末考试答案2024年
- 国家卫生部《综合医院分级管理标准》
- 中医经络养生拍打
- Unit7Summerholidayplans(单元解读)六年级英语下册(译林版三起)
- 医学高级职称-皮肤与性病学(医学高级)笔试(2018-2023年)真题摘选含答案
评论
0/150
提交评论