已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.,1,孙旭光E-MAIL:sunxuguang,Winrunner的使用,.,2,1、Winrunner如何识别GUI对象,一般的windows应用程序,通常是由窗口、按钮、list、菜单等所组成,在Winrunner中,这些窗口、按钮等通称为GUI对象。Winrunner会透过这些GUI对象的属性,如class、label、width、height、handle与enabled等,来识别GUI对象。Winrunner只会记录最少但可组合成唯一的属性来辨识GUI对象。,.,3,用ToolsGUISpy查看对象的属性在GUISpy窗口中,Recorded页签是显示Winrunner用来标识该对象的属性;在AllStandard页签是显示该对象的所有属性。可以看出,Winrunner只用最少的属性来识别GUI对象。,.,4,2、GUIMap模式,Winrunner识别完GUI对象后,会将GUI对象存储在GUIMapFile。在Winrunner中,提供二种GUIMapFile模式:GUIMapFileperTest与GlobalGUIMapFile。在GUIMapFileperTest模式,当你新建立一个测试脚本(testscript),Winrunner就会自动帮你建立此测试教本的GUIMapFile,当你保存测试脚本时,Winrunner也会自动保存GUIMapFile,而当你开启测试脚本时,其Winrunner也会自动加载其GUIMapFile,总之所有与GUIMapFile有关的动作,都由Winrunner自动会帮你处理了。,.,5,在GlobalGUIMapFile模式,你可以多个测试脚本共享一个GUIMapFile,比较灵活。只是,要记得存储GUIMapFile,并且在开启测试脚本时,也要同时加载使用的GUIMapFile。默认的GUIMapFile为GlobalGUIMapFile模式,可以在Tools-GeneralOptions-General-GUIFiles中自己设定。当修改设置后需对Winrunner重启以生效。使用Insert-RapidTestScriptWizard快速对应用程序建立起GUIMapFileRapidTestScriptWizard只能在GlobalGUIMapFile模式下使用;并且当Winrunner加载TerminalEmulator、WebTest、Javaadd-ins时,也无法使用。,.,6,3、录制测试脚本,Winrunner可以以录制的方式快速建立自动测试脚本。在录制时,使用者还是与平常一样操作应用程序,而Winrunner会将使用者的动作录制下来,如按下鼠标左键、键盘的输入等,并且以TSL(TestScriptLanguage)产生测试脚本,TSL会显示在Winrunner窗口中。,.,7,两种录制模式,Winrunner提供两种录制模式:ContextSensitive与Analog。ContextSensitive录制模式主要是以GUI对象为基础,Winrunner会识别使用者点选的GUI对象(如窗口、菜单、按钮等),以及执行的操作(如按下、移动、选取等)。在Analog模式,Winrunner主要录制鼠标移动的轨迹、鼠标的点选以及键盘的输入三种动作。如果以Analog模式录制测试脚本,鼠标移动的轨迹是以屏幕的绝对位置为基准,当应用程序的位置或使用接口变动,则录制的脚本会执行失败。建议:只有在测试需要记录鼠标移动的应用程序时,如绘图软件,才使用Analog录制模式,否则以使用ContextSensitive录制模式为优先。如果需要测试的应用程序包含一般的GUI对象,也包含绘图区域,可以在录制的过程中,依需要随时切换录制模式。,.,8,录制,1、开始录制(Flight登录:任意4个以上字符,密码Mercury)2、开启3号订单在FlightReservation中点选【File】-【OpenOrder】,在OpenOrder窗口中点选【OrderNo.】并且输入3后按下【OK】。3、停止录制4、储存测试脚本注意:WinRunner是以目录的方式而不是单一文件的方式储存测试脚本。此目录将会包含测试脚本以及测试执行的结果。,.,9,了解测试脚本,当点选一个GUI对象,WinRunner会自动帮这个GUI对象取个名字,通常是以GUI对象上的文字做为名字,此名字称为在WinRunner称为logicname。这个logicname可以让你更容易的阅读测试脚本。例如当你点选【OrderNo.】这个checkbox时,WinRunner产生以下的指令:而OrderNo.就是这个【OrderNo.】checkbox的logicname。当换到另一个窗口上操作时,WinRunner会自动在测试脚本上加上一行批注,帮助你更容易阅读测试脚本。例如当你点选FlightReservation窗口时,WinRunner会自动加上下面的注解:,.,10,当你换到另一个窗口上操作时,WinRunner会自动产生一行set_window指令,然后才是它操作的指令。例如当你开启OpenOrder窗口时,WinRunner会先产生下面的指令:set_window(“OpenOrder”,2);当你以键盘输入时,WinRunner会产生type、obj_type、或是edit_type等指令。例如当你在OrderNo.中输入3时,WinRunner会产生下面的指令:edit_set(“Edit”,”3”);当你点选下拉式菜单时,WinRunner会产生menu_select_item的指令。,.,11,在Insert-Function-FromFunctionGenerater可以展示出所有的函数,在屏幕下方有函数的用法说明。,.,12,录制Analog模式的测试脚本,1、开启刚才的测试脚本,并将光标移到最后一行,接下来将以刚才的测试脚本继续录制下去2、在FlightReservation中点选【File】-【FaxOrder】,在【FaxNumber】中输入4155551234。3、勾选【SendSignaturewithorder】4、在ContextSensitive模式下录制签名动作,以鼠标在【AgentSignature】空白区域中签名。这时请注意WinRunner如何录制你的签名动作。5、清除签名按下【ClearSignature】按钮。6、将FaxOrder窗口移动到其它位置在切换到Analog模式之前,移动一下FaxOrder窗口。7、在Analog模式下录制签名动作按下键盘上的【F2】或是再按一次工具列上的Record按钮,此时录制模式将从ContextSensitive切换到Analog模式。以鼠标在【AgentSignature】空白区域中签名。这时请注意WinRunner如何录制你的签名动作。,.,13,8、切换回ContextSensitive模式并将订单传真出去按下键盘上的【F2】或是再按一次工具列上的Record按钮,此时录制模式会从Analog模式切换回ContextSensitive模式。按下【Send】按钮,FlightReservation会仿真将订单传真出去。9、停止录制,储存测试脚本10、如果在GlobalGUIMapFile模式下,记得储存新的GUI对象,.,14,执行测试脚本,。WinRunner提供三种执行测试脚本的模式:Verify、Debug、Update。Verify:当你真正执行测试以检查应用程序的功能,并且要储存测试结果。Debug:当你想检查测试脚本执行是否流畅,没有错误时。Update:当你要更新检查点的预期值时。,.,15,分析测试结果,WinRunner提供二种类型的测试结果检视器:WinRunnerReport:一般GUI接口的检视器,与WinRunner之前版本的一样。UnifiedReport:HTML类型的检视器,与QuickTestProfessional的测试结果检视器一样。当测试执行结束时,预设WinRunner会以WinRunnerReport检视器开启测试执行结果,同时也会产生供UnifiedReport检视用的测试结果。两种检视器之间的转换:【Tools】-【GeneralOptions】-【Run】-【Reportview】,.,16,录制时的建议,1.录制前请先关闭不必要的应用程序或窗口2.尽量在录制结束时,回到开始录制的画面,以便测试脚本可以重复执行测试。例如当你从主窗口开始录制测试脚本时,在测试脚本的最后,还是要回到主窗口画面。3.当以Analog模式录制时,尽量避免录制按住鼠标的动作。例如当要卷动窗口画面时,以click的方式卷动窗口,尽量不要以按住scrollbar拖曳的方式卷动窗口。4.当需要从ContextSensitive模式切换到Analog模式时,在切换前建议移动一下窗口,如此可确保以Analog模式录制完成后执行时,窗口位置为固定的。,.,17,5.当你在GlobalGUIMapFile模式下录制测试脚本时,录制的GUI对象之前并未录制过,则WinRunner会将其放在temporaryGUIMapFile中。6.在录制过程中可以利用【F2】切换ContextSensitive与Analog的录制模式。7.当你在GlobalGUIMapFile模式下录制测试脚本时,记得经常检查新的GUI对象是否被新增到temporaryGUIMapFile中。当你离开WinRunner之前请记得将存放在temporaryGUIMapFile中的GUI对象存盘。,.,18,4、同步点,为何需要引入同步点?当执行测试时,所测试的应用程序每次操作的响应时间并不一定,有时快,有时慢,导致执行输入动作的时间也需要等待。例如以下的动作常会花个几秒钟:从数据库取得数据等待一个窗口开启等待状态列成为100%等待某个状态讯息出现当遇到这类的情况,WinRunner会等待一段固定的时间,直到应用程序接受输入的动作。这个等待时间的默认值为10秒钟。假如应用程序响应的时间超过WinRunner等待的时间,则测试执行就可能会失败。,.,19,解决方法,1、增加WinRunner预设等待的时间点选【Tools】-【GeneralOptions】-【Run】-【Settings】,将【TimeoutforcheckpointsandCSstatements】的值加大,预设为1000msec。加大这个设定可能会造成在ContextSensitive的动作变慢。2、在测试脚本中插入同步点(synchronizationpoint)。当WinRunner执行到同步点时,会暂停执行以等待应用程序某些状态的改变后,再继续执行。第二种方式是较常被使用的方式。,.,20,操作,1、在FlightReservation中点选【File】-【NewOrder】。2、填入航班与旅客资料,输入以下数据【DateofFlight】:11/15/05(日期格式为MM/DD/YY,日期要大于今天的日期)【FlyFrom】:LosAngeles【FlyTo】:SanFrancisco点选【Flights】按钮,选取一个航班【Name】:Jojo【Class】:First3、点选【InsertOrder】,当完成新增订单后,状态列会显示InsertDone的讯息。4、点选【DeleteOrder】删除刚刚新增的订单,并按下【Yes】确认。5、停止录制并存储6、变更预设等待时间由10秒到1秒,然后执行,注意观察错误。,.,21,加入同步点,接下来在当前测试脚本中插入同步点,这个同步点会撷取状态列上InsertDone的图像,然后当你再次执行测试脚本时,WinRunner会等到InsertDone的图像出现后,才执行点选【DeleteOrder】的动作。操作:将光标移动到要插入同步点的位置在button_press(“DeleteOrder”);这一行上面插入一行空白行,并将光标移到这一行空白行的开头。点选【Insert】-【SynchronizationPoint】-【ForObject/WindowBitmap】,将鼠标光标移动到InsertDone的状态列上并点选,WinRunner会在测试脚本中插入一行obj_wait_bitmap(“InsertDone.”,“Img1”,1);的指令,这一行指令表示当WinRunner执行到这里时,会等待InsertDone的图像出现,等待时间为1秒钟,(注意:这个时间通常太短,需要自己修改一个适当的时间长度)当图像出现了,才会继续往下执行。,.,22,由于等待1秒钟还是太短,所以手动将obj_wait_bitmap(“InsertDone.”,“Img1”,1);指令改成obj_wait_bitmap(“InsertDone.”,“Img1”,10);,等待10秒钟。储存测试脚本如果在GlobalGUIMapFile模式下,记得储存新的GUI对象执行测试脚本并检视结果在测试结果下方的事件中,有一行绿色的waitforbitmap事件,表示同步点执行成功。你也可以对此事件点二下,检视此同步点的图像结果。注意:请将WinRunner预设等待时间改回10秒钟,.,23,加入同步点的其余两种方式,点选【Insert】-【SynchronizationPoint】-【ForObject/WindowProperty】,将让你选屏幕上的某个GUI对象,以GUI对象的状态作为同步的依据。如当某GUI对象enable属性为1时(等待10秒钟),才执行下面的代码。代码示例:button_wait_info(UpdateOrder,enabled,1,10);点选【Insert】-【SynchronizationPoint】-【ForScreenAreaBitmap】,将让你选屏幕上的某个区域,系统记录该区域的图片,以图片作为同步的依据。代码如下所示,等待时间为10秒(手工修改的)。obj_wait_bitmap(InsertDone.,Img2,10,1,1,264,17);,.,24,5、GUI对象检查点,检查GUI对象在测试应用程序时,通常是透过检查GUI对象的属性,来测试功能是否正常,当GUI对象的属性值与预期的值不符合时,也就表示可能有问题产生了。在WinRunner中可以建立GUI检查点(checkpoint),检查GUI对象的属性,如检查按钮是否可用,某对象的值是否正确。当执行测试脚本时,WinRunner会自动比对执行时的实际值与建立检查点时的预期值,如果一致,表示检查点检查通过;如果不一致,表示检查点检查失败。,.,25,建立GUI对象检查点,1.开启WinRunner并加载GUIMapFile2.开启FlightReservation并登陆3.开始录制测试脚本4.开启【OpenOrder】窗口5.对【OrderNo.】checkbox建立检查点在WinRunner点选【Insert】-【GUICheckpoint】-【ForObject/Window】-双击/单击6.输入订单编号47.对【OrderNo.】checkbox建立另一个检查点8.对【CustomerName】checkbox建立一个检查点9.按下【OK】按钮开启订单10.停止录制11.储存测试脚本及GUImapfile。12、在flight4A和flight4B程序中分别执行,观看结果。,.,26,两种方式,当对GUI对象以鼠标点一下,WinRunner会以预设检查的属性建立检查清单(checklist),并将检查点插入到测试脚本中。检查清单的内容纪录了要WinRunner检查的GUI对象与属性。当对GUI对象以鼠标点二下,【CheckGUI】对话窗口会开启并显示你选取的GUI对象,以及此GUI对象可供检查的属性,你只要在【CheckGUI】对话窗口上勾选你想检查的属性,WinRunner就会建立检查清单(checklist),并将检查点插入到测试脚本中。不管建立的检查点是检查预设的属性还是你选取的属性,WinRunner会撷取建立检查点当时的属性值当作预期的值,并且在测试脚本中插入obj_check_gui或win_check_gui(看你所建立的检查点是针对GUI对象还是窗口对象)。,.,27,检视测试结果,点二下【endGUIcheckpoint】,会开启【GUICheckpointResults】窗口,显示此检查点的测试结果。可以看到在检查GUI对象的属性时的预期值与实际值。,.,28,建立GUI对象检查点时的建议,1.可以使用【Insert】-【GUICheckpoint】-【ForMultipleObjects】,一次检查窗口中多个或是全部的GUI对象。透过【CheckGUI】对话窗口选取你要检查的GUI对象与其属性,以建立检查点。WinRunner会在测试脚本中插入win_check_gui指令。2.如果打算在深夜或无人时执行测试,可以设定当检查点不一致时,WinRunner不要显示讯息以免中断测试的执行。点选【Tools】-【GeneralOptions】-【Run】-【Settings】,清除【Breakwhenverificationfails】选项,则在测试执行过程中就不会被检查点不一致的讯息中断了。3.假如想要更新检查点的预期值,请以update模式执行一次测试脚本,则WinRunner会以执行当时撷取到的值,覆盖原本的预期值,成为新的预期值。,.,29,6、图像检查点,假如想要检查应用程序中的图像,WinRunner提供图像的检查点(bitmapcheckpoint),以图素(pixel)的方式比对图像。注意:当执行含有图像检查点的测试脚本时,请确认屏幕显示设定与显示卡驱动程序与当初测试脚本建立时一样。如果不一样,可能会影响图像检查点的正确性,如应该是通过的图像检查点,WinRunner却判断为失败的图像检查点。,.,30,建立图像检查点,1.开启WinRunner并加载GUIMapFile2.开启FlightReservation并登陆3.开始录制测试脚本4.开启订单5.传真订单6.输入传真号码7.移动传真订单窗口8.切换到Analog录制模式9.在【AgentSignature】中签下名字。10.切换到ContextSensitive模式,.,31,11.建立图像检查点检查签名选取【Insert】-【BitmapCheckpoint】-【ForObject/Window】,以鼠标点选【AgentSignature】,WinRunner会撷取【AgentSignature】的图像,并且在测试脚本中插入obj_check_bitmap指令。12.清除签名13.再建立图像检查点14.关闭传真订单窗口15.停止录制16.储存测试脚本及GUImapfile。17、在flight4A和flight4B程序中分别执行,观看结果。,.,32,7、使用TSL撰写测试脚本,除了以录制的方式产生测试脚本之外,TSL还内建了许多函数,你可以依照需求很弹性的应用这些功能强大的函数。除此之外,WinRunner还提供可视化工具“函数产生器(FunctionGenerator)”,帮助你在测试脚本中快速插入函数。,.,33,函数产生器(FunctionGenerator)提供二种使用方式:你可以直接点选GUI对象,让WinRunner为你建议合适的函数,然后你再把函数加入测试脚本中。Insert-Function-ForObject/Windows-点选对象你可以直接依照分类,从函数清单中挑选你要使用的函数。Insert-Function-FromFunctionGenerater在屏幕下方有该函数的用法说明。除了使用函数外,TSL也提供一般程序语言具备的元素,如条件判断(condition)、循环(loop)、表达式(arithmeticoperator)。,.,34,使用TSL撰写测试脚本,建立测试脚本:开启订单开启传真订单窗口检查总金额是否等于机票单价乘上机票张数显示检查结果是否正确代码:edit_get_text(#Tickets:,tickets);edit_get_text(TicketPrice:,price);edit_get_text(Total:,total);if(tickets*price=total)tl_step(total,0,Theresultiscorrect.);elsetl_step(total,1,Theresultisincorrect.);,.,35,其他常用函数,report_msg(字符串);用于输出信息。字符串中可以包含变量,将变量的值输出。substr();截取字符串,.,36,8、建立数据驱动测试脚本,当建立好测试脚本后,你可能会想要用多组不同的数据去执行测试脚本。为了达到此目的,你可以将测试脚本转换成数据驱动测试脚本,并建立一个数据表提供测试所需的多组数据。当执行数据驱动测试脚本时,WinRunner会读取数据表的每一笔数据,并放入被参数化的地方,然后执行一次。每执行一次称为一个反复(iteration),数据表有几笔数据,WinRunner就会执行几次反复(iteration)。并在最后的测试结果中显示每一次反复的测试结果。,.,37,建立数据驱动的测试脚本,1.开启刚才的测试脚本即:建立测试脚本:开启订单开启传真订单窗口检查总金额是否等于机票单价乘上机票张数显示检查结果是否正确2.执行数据驱动精灵Table-DataDriverWizard选择要调整的数据。3.建立数据表输入数据1,6,8,10,.,38,以regularexpression调整GUIMapFile,1、选取【Tools】-【GUIMapEditor】。选取【View】-【GUIFiles】。选择flight4a.gui。选取FaxOrderNo.3窗口。2、修改窗口label属性点选【Modify】按钮,开启Modify窗口。在【PhysicalDescription】字段中,将label这一行第一个双引号后加上!,然后将3与前面的空白删除改成*号。按下OK按钮关闭Modify窗口。3、保存GUIMapFile。,.,39,9、文字检查
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿园全部返校通知书
- 广东南方职业技术学院通知书
- 广坪乡停电通知书
- 广德一中开课通知书
- 庄寨自来水停水通知书
- 建水门面整改通知书
- 建设区禁烧秸秆通知书
- 开江道小学入学通知书
- 张北县暖气涨价通知书
- 张康村发放物资通知书
- 2025年人教版历史八上期末复习-全册重难点知识
- 心电监护仪出现故障应急预案
- 麻醉与睡眠治疗方案
- 【小学教育】道德与法治四年级上册:一课一练(含答案)-2019人教版部编道法
- 消化科常见疾病及治疗
- 精益六西格玛黄带认定考试题库及答案
- 西宁市海湖中学2024-2025学年高一上学期期中考试政治试卷
- 国峰GF-250型反循环钻机安全操作规程
- 编剧岗位招聘笔试题及解答2025年
- (正式版)FZ∕T 64111-2024 卫生巾(护垫)用非织造布
- HJ 76-2017 固定污染源烟气(SO2、NOX、颗粒物)排放连续监测系统技术要求及检测方法
评论
0/150
提交评论