讲义文稿测试书_第1页
讲义文稿测试书_第2页
讲义文稿测试书_第3页
讲义文稿测试书_第4页
讲义文稿测试书_第5页
已阅读5页,还剩104页未读 继续免费阅读

下载本文档

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

文档简介

RobotFramework+Selenium2/WebDriver测试技术培训@吴穹AdamRobotFramework+Selenium2/WebDriver测试技术培训@吴穹Adam©2011 AgileanCopyrightReserved2基本概念Agenda©2011 AgileanCopyrightReserved2基本概念Agenda•定义一种统一的方式来书写和组织测试用例(测试步骤,测试数据与期待返回值);••定义一种统一的方式来书写和组织测试用例(测试步骤,测试数据与期待返回值);•••©2011 AgileanCopyrightReserved3测试框架的职责©2011 AgileanCopyrightReserved4Robot©2011 AgileanCopyrightReserved4RobotFramework方案概要••••••••易于使用,采用表格式语法,统一测试用例格式;••••••••易于使用,采用表格式语法,统一测试用例格式;支持变量;支持创建基于数据驱动的测试用例。结果报告和日志采用HTML格式,易于阅读;平台、应用无关;功能全面,支持WEB测试(Selenium)、JavaGUI启动线程、终端、SSH等;API,用户可以自定义的基于Python或者Java的测试库;XML的输出文件;易于与版本管理集成;•••©2011 AgileanCopyrightReserved5RobotFramework的特性DBBuiltin©DBBuiltin©2011 AgileanCopyrightReserved6RobotFramework•基本概念©2011 AgileanCopyrightReserved7安装Agenda•基本概念©2011 AgileanCopyrightReserved7安装Agenda•运行python-2.7.1.msi)加入PathPython2.8-win32-unicode--py27.exe,robotframework-2.6.3.tar••••运行python-2.7.1.msi)加入PathPython2.8-win32-unicode--py27.exe,robotframework-2.6.3.tar•••解压到本地用管理员帐户打开一个cmd在cmd中执行,pythonsetup.pyinstallrobotframework-ride-0.39.1.win32.exerobotframework-selenium2library-0.5.2.win32.exe替换[PythonDir]\Lib\site-packages\Selenium2Library的内容执行[PythonDir]\Scripts\ride.py•©2011 AgileanCopyrightReserved8安装•在[PythonDir]\Lib\site-packages\robot\utils下的encoding.py文件中,找到def_get_output_encoding():原来的编码是’cp437’cp936’(简体中将其改成’文,gbk)。©2011 Agilean•在[PythonDir]\Lib\site-packages\robot\utils下的encoding.py文件中,找到def_get_output_encoding():原来的编码是’cp437’cp936’(简体中将其改成’文,gbk)。©2011 AgileanCopyrightReserved9设置中文支持•需要以管理员身份运行IE,将所有四个区域的“启用保护模式”选项清除,否则WebDriver会报这个错误©2011 AgileanCopyrightReserved•需要以管理员身份运行IE,将所有四个区域的“启用保护模式”选项清除,否则WebDriver会报这个错误©2011 AgileanCopyrightReserved10IE8设置••基本概念安装©2011 AgileanCopyrightReserved11••基本概念安装©2011 AgileanCopyrightReserved11创建测试用例Agenda•••测试项目可以目录或文件存储格式可以用TXT,TSV或HTML•••测试项目可以目录或文件存储格式可以用TXT,TSV或HTMLTXT,这样便于管理©2011 AgileanCopyrightReserved12创建测试项目•测试套也可以选择是文件还是目录©2011 AgileanCopyrightReserved13创建测试套•测试套也可以选择是文件还是目录©2011 AgileanCopyrightReserved13创建测试套©2011 AgileanCopyrightReserved14创建测试用例©2011 AgileanCopyrightReserved14创建测试用例©2011 AgileanCopyrightReserved15©2011 AgileanCopyrightReserved15关系总结•测试库提供针对特定应用的关键词©2011 AgileanCopyrightReserved•测试库提供针对特定应用的关键词©2011 AgileanCopyrightReserved16添加测试库••资源提供定制公用关键词的能力注意:资源也需要引用用到的Library©2011 AgileanCopyrightReserved17添加资源••资源提供定制公用关键词的能力注意:资源也需要引用用到的Library©2011 AgileanCopyrightReserved17添加资源©2011 AgileanCopyrightReserved18关系总结©2011 AgileanCopyrightReserved18关系总结©2011 AgileanCopyrightReserved19增加自定义关键词©2011 AgileanCopyrightReserved19增加自定义关键词©2011 AgileanCopyrightReserved20增加自定义关键词©2011 AgileanCopyrightReserved20增加自定义关键词•F5可以搜索关键词红色表明需要输入参数©2011 AgileanCopyrightReserved21增加自定义关键词•F5可以搜索关键词红色表明需要输入参数©2011 AgileanCopyrightReserved21增加自定义关键词•测试用例用到的资源,需要在测试套里面直接引用©2011 AgileanCopyrightReserved22•测试用例用到的资源,需要在测试套里面直接引用©2011 AgileanCopyrightReserved22在测试用例里面引用资源••F5可以查找关键词匹配的关键词会显示为蓝色©2011 Agilean••F5可以查找关键词匹配的关键词会显示为蓝色©2011 AgileanCopyrightReserved23引用自定义关键词•••基本概念安装创建测试用例©2011 Agilean•••基本概念安装创建测试用例©2011 AgileanCopyrightReserved24执行测试Agenda©2011 AgileanCopyrightReserved©2011 AgileanCopyrightReserved25执行测试••测试用例可以标记多个Tag可以按Tag来执行或跳过用例©2011 AgileanCopyrightReserved••测试用例可以标记多个Tag可以按Tag来执行或跳过用例©2011 AgileanCopyrightReserved26按Tag执行••测试日志按树形组织可自动提供错误步骤的屏幕截图©2011 Agilean••测试日志按树形组织可自动提供错误步骤的屏幕截图©2011 AgileanCopyrightReserved27测试日志•拷屏|filename=None将页面内容加入Log•LogLogLogLocationSource|loglevel=INFO•拷屏|filename=None将页面内容加入Log•LogLogLogLocationSource|loglevel=INFOTitle•Log特定信息(BuiltInLibrary)•Log变量(BuiltInLibrary)©2011 AgileanCopyrightReserved28其他可用调试手段•底色表示成功与失败©2011 AgileanCopyrightReserved29•底色表示成功与失败©2011 AgileanCopyrightReserved29测试报告••建立测试用例查看测试报告©2011 Agilean••建立测试用例查看测试报告©2011 AgileanCopyrightReserved30练习一••••基本概念安装创建测试用例执行测试©••••基本概念安装创建测试用例执行测试©2011 AgileanCopyrightReserved31使用Selenium2LibraryAgenda•SeleniumLibrary将WebDriver与RobotFramework连接起来提供了非常多的内置关键词可以使用F5或以下链接来学习••©2011 Agilean•SeleniumLibrary将WebDriver与RobotFramework连接起来提供了非常多的内置关键词可以使用F5或以下链接来学习••©2011 AgileanCopyrightReserved32内置关键词•Selenium2Lib提供了与浏览器交互的关键词:BrowserMaximizeBrowserGoToGoBackReload•Selenium2Lib提供了与浏览器交互的关键词:BrowserMaximizeBrowserGoToGoBackReloadPageWindowCloseCloseCloseWindowBrowserAllBrowsers©2011 AgileanCopyrightReserved33浏览器操作•点击ClickClickClickClickButton|locatorElement|locatorImage|locatorLink|•点击ClickClickClickClickButton|locatorElement|locatorImage|locatorLink|locatorElement|locatorIE中,Click不起作用,可以用如下命令来替代•PressKey|<id>|\\13或\\10©2011 AgileanCopyrightReserved34常用关键词•Locator或name来用定位界面元素XPath=或Dom=来开头来定位,强烈建议强制要求开发为所有需要交互的界面元素设定id,所以,locator最好以id=,name=,identifier=••Locator或name来用定位界面元素XPath=或Dom=来开头来定位,强烈建议强制要求开发为所有需要交互的界面元素设定id,所以,locator最好以id=,name=,identifier=•©2011 AgileanCopyrightReserved35定位元素•也可以应用AssignIdTo•也可以应用AssignIdToElement关键词来为没有ID的元素指定一个ID©2011 AgileanCopyrightReserved36定位元素•有时,需要先进入一个frame或iframe再定位一个元素,这样效率更高,可以使用如下两个关键词或iframeSelectFrame|•有时,需要先进入一个frame或iframe再定位一个元素,这样效率更高,可以使用如下两个关键词或iframeSelectFrame|locatorframe或iframe•UnselectFrame©2011 AgileanCopyrightReserved37定位元素•可见性问题要求交互的元素必须是可见的,其判定逻辑如下:•••••••可见性问题要求交互的元素必须是可见的,其判定逻辑如下:•••••••Select是否可见?;Area,判断包含它的Map是否可见?对于Map,判断MapImage是否可见?hiddeninput不可见;NoScript不可见;hiddenvisibility不可见;displayed=‘none’,则元素不可见;•©2011 AgileanCopyrightReserved38定位元素•可见性问题IE有一个缺陷使得即便display=“none”的元素依然可见,/explorer/ienondisappear•可见性问题IE有一个缺陷使得即便display=“none”的元素依然可见,/explorer/ienondisappearcontentbugPIE/index.htm•display=‘none’或任何祖先元素的display=‘none’,则元素不可见;©2011 AgileanCopyrightReserved39定位元素•输入InputPassword|locator|textInputText|•输入InputPassword|locator|textInputText|locator|text更新•PressKey|<id>|\\13或\\10©2011 AgileanCopyrightReserved40常用关键词•按键PressKey|locator|key例子PressKey|text_field•按键PressKey|locator|key例子PressKey|text_fieldPressKey|login_button特殊编码||q|\\13|#ASCIIcodefor••••••••43:44:45:56:57:59:61:Keys.ADD,Keys.SUBTRACT,Keys.DECIMAL,Keys.DIVIDE,Keys.EQUALS,•••••••••0:8:9:Keys.NULL,Keys.BACK_SPACE,Keys.TAB,10:13:24:27:32:42:Keys.RETURN,Keys.ENTER,Keys.CANCEL,Keys.ESCAPE,Keys.SPACE,127:Keys.DELETE©2011 AgileanCopyrightReserved41常用关键词•可以使用FireFoxFirebug或IE8来辅助定位©2011 AgileanCopyrightReserved42•可以使用FireFoxFirebug或IE8来辅助定位©2011 AgileanCopyrightReserved42定位元素•创建更多关键词©2011 AgileanCopyrightReserved43•创建更多关键词©2011 AgileanCopyrightReserved43更新例子•扩展测试用例©2011 AgileanCopyrightReserved44•扩展测试用例©2011 AgileanCopyrightReserved44更新例子•验证页面是否包含相应结果Page••••••••PagePage•验证页面是否包含相应结果Page••••••••PagePagePagePagePagePagePagePageShould(Not)ContainShould(Not)ContainShould(Not)ContainButtonElementImageLinkListRadioButtonTextfield&Title•••LocationShouldLocationShouldTitleShouldBeBeContain©2011 AgileanCopyrightReserved45检查结果•验证页面是否包含相应结果Text••••CurrentFrameContainsPageShould•验证页面是否包含相应结果Text••••CurrentFrameContainsPageShouldContainPageShouldNotContainTextfieldValueShouldBe••••••ElementElementElementElementElementElementShouldShouldShouldShouldShouldBeBeBeDisabledEnabledVisibleContainNotBeVisibleTextShouldBe©2011 AgileanCopyrightReserved46检查结果•验证页面是否包含相应结果ListListSelectionShouldBeListShouldHave•验证页面是否包含相应结果ListListSelectionShouldBeListShouldHaveNoSelectionsCheckboxCheckboxShouldBeSelectedCheckboxShouldNotRadioButtonBeSelected••RadioRadioButtonButtonShouldShouldBeSetNotBeToSelected©2011 AgileanCopyrightReserved47检查结果•验证页面是否包含相应结果–Table•••••••TableTableTableTable•验证页面是否包含相应结果–Table•••••••TableTableTableTableTableTableCellShouldContainColumnFooterHeaderShouldContainContainContainRowShouldContainShouldContainTextfieldShouldContain–Xpath•XpathShouldMatchXTimes©2011 AgileanCopyrightReserved48检查结果••默认情况下,Selenium2会自动等待页面加载完成对于页面AJAX可以使用如下等待页面的关键词:WaitWaitWaitForCondition|••默认情况下,Selenium2会自动等待页面加载完成对于页面AJAX可以使用如下等待页面的关键词:WaitWaitWaitForCondition|condition|timeout=None|error=NoneUntilPageContains|text|timeout=None|error=NoneUntilPageContainsElement|locator|timeout•一种调试时可以使用,但是不应该留下来的SleepxSleep关键词是RobotFrameworkBuiltInLibrary提供的,In.html?r=2.6.1©2011 AgileanCopyrightReserved49等待页面加载•Selenium2Lib提供了和其他界面元素交互的关键词:–Element•••Focus聚焦Simulate模拟时间触发OpenContextMenu–List••Selenium2Lib提供了和其他界面元素交互的关键词:–Element•••Focus聚焦Simulate模拟时间触发OpenContextMenu–List•••SelectAllFromListSelectFromListUnselectFromListCheckboxSelectCheckboxUnselectCheckboxRadioButtonSelectRadioButtonFormSubmitForm •ChooseFile(ForFileUpload) ©2011 AgileanCopyrightReserved50和其他界面元素交互•更新测试用例©2011 AgileanCopyrightReserved51•更新测试用例©2011 AgileanCopyrightReserved51练习二•••••基本概念安装执行测试使用SeleniumLibrary•••••基本概念安装执行测试使用SeleniumLibrary©2011 AgileanCopyrightReserved52数据驱动的测试与测试用例的架构Agenda•要做到流程和数据的分离id不算数据,不应分离©2011 Agilean•要做到流程和数据的分离id不算数据,不应分离©2011 AgileanCopyrightReserved53•增加一个新的测试用例这样好吗?©2011 AgileanCopyrightReserved54更新例子•增加一个新的测试用例这样好吗?©2011 AgileanCopyrightReserved54更新例子••要做到流程和数据的分离通过不断抽象,消除冗余©2011 Agilean••要做到流程和数据的分离通过不断抽象,消除冗余©2011 AgileanCopyrightReserved55••要做到流程和数据的分离通过不断抽象,消除冗余©2011 Agilean••要做到流程和数据的分离通过不断抽象,消除冗余©2011 AgileanCopyrightReserved56•••要做到流程和数据的分离通过不断抽象,消除冗余避免复杂逻辑©•••要做到流程和数据的分离通过不断抽象,消除冗余避免复杂逻辑©2011 AgileanCopyrightReserved57•••要做到流程和数据的分离通过不断抽象,消除冗余避免复杂逻辑©•••要做到流程和数据的分离通过不断抽象,消除冗余避免复杂逻辑©2011 AgileanCopyrightReserved58•••要做到流程和数据的分离通过不断抽象,消除冗余测试用例应尽量简单易读,避免复杂逻辑问题:“登录”Keyword应该在这里吗?©2011 Agilean•••要做到流程和数据的分离通过不断抽象,消除冗余测试用例应尽量简单易读,避免复杂逻辑问题:“登录”Keyword应该在这里吗?©2011 AgileanCopyrightReserved59••••要做到流程和数据的分离通过不断抽象,消除冗余建立测试用例分层架构,并坚守••••要做到流程和数据的分离通过不断抽象,消除冗余建立测试用例分层架构,并坚守©2011 AgileanCopyrightReserved60测试流程步骤=界面交互细节©2011 AgileanCopyrightReserved61测试流程构件=测试流程步骤的排列测试流程模板=测试流程构件的排列测试用例测试流程步骤=界面交互细节©2011 AgileanCopyrightReserved61测试流程构件=测试流程步骤的排列测试流程模板=测试流程构件的排列测试用例=+测试数据测试用例的层次架构(实例)•分层测试用例架构©2011 AgileanCopyrightReserved62•分层测试用例架构©2011 AgileanCopyrightReserved62练习三••••••基本概念安装执行测试使用SeleniumLibrary••••••基本概念安装执行测试使用SeleniumLibrary数据驱动的测试与测试用例的架构©2011 AgileanCopyrightReserved63使用变量Agenda•使用变量来实现测试目标可变©2011 AgileanCopyrightReserved64使用变量•使用变量来实现测试目标可变©2011 AgileanCopyrightReserved64使用变量•使用变量来实现测试目标可变©2011 AgileanCopyrightReserved65•使用变量来实现测试目标可变©2011 AgileanCopyrightReserved65使用变量•使用变量来实现测试目标可变©2011 AgileanCopyrightReserved66•使用变量来实现测试目标可变©2011 AgileanCopyrightReserved66使用变量•可以使用变量来获得界面返回值,用于验证Test级别,因为测试用例最好是相互独立的©2011 AgileanCopyrightReserved67•可以使用变量来获得界面返回值,用于验证Test级别,因为测试用例最好是相互独立的©2011 AgileanCopyrightReserved67使用变量•相关关键词有:Page••••GetGetGetGetTitleSource•相关关键词有:Page••••GetGetGetGetTitleSourceXpathCount•••GetGetGetElementAttributeValueText(AddedByAdamWu)LinkGetAllLinks©2011 AgileanCopyrightReserved68获取页面信息•相关关键词有:–TableGetListTableCell•••••相关关键词有:–TableGetListTableCell•••••GetGetGetGetGetListItemsSelectedListListListListLabelLabelsValueValues©2011 AgileanCopyrightReserved69获取页面信息•••••••基本概念安装执行测试使用Selenium•••••••基本概念安装执行测试使用SeleniumLibrary数据驱动的测试与测试用例的架构使用变量©2011 AgileanCopyrightReserved70设置TimeoutAgenda•Suite和Test都可以设定Timeout,这限定了测试用例的最长执行时间,因此,需要预留合适的时间,否则,可能导致测试不稳定©2011 AgileanCopyrightReserved71•Suite和Test都可以设定Timeout,这限定了测试用例的最长执行时间,因此,需要预留合适的时间,否则,可能导致测试不稳定©2011 AgileanCopyrightReserved71设置Timeout•Timeout也可以通过如下Keyword来设置(GetSeleniumTimeoutSetSeleniumTimeout•Timeout也可以通过如下Keyword来设置(GetSeleniumTimeoutSetSeleniumTimeoutSelenium执行速度•GetSetSeleniumSeleniumSpeedSpeed©2011 AgileanCopyrightReserved72设置Timeout(需要被更新)•••••要做到流程和数据的分离通过不断抽象,消除冗余•••••要做到流程和数据的分离通过不断抽象,消除冗余建立测试用例分层架构,并坚守自动化测试用例必须非常健壮,避免误报©2011 AgileanCopyrightReserved73••••••••基本概念安装执行测试••••••••基本概念安装执行测试使用SeleniumLibrary数据驱动的测试与测试用例的架构使用变量设置Timeout©2011 AgileanCopyrightReserved74敏捷测试过程AgendaOwnerScrumDevelopers,Testers,..+Manager/LeadReleaseOwnerScrumDevelopers,Testers,..+Manager/LeadReleasePlanMeetingSprintReviewReleaseWorkshopSprintPlanMeetingSprint©2011 AgileanCopyrightReserved75ScrumProcessFramework©2011 AgileanCopyrightReserved76©2011 AgileanCopyrightReserved76迭代过程中的测试(A-TDD)••••••••基本概念安装执行测试••••••••基本概念安装执行测试使用SeleniumLibrary数据驱动的测试与测试用例的架构使用变量设置Timeout©2011 AgileanCopyrightReserved77敏捷测试过程Agenda•••••••••基本概念安装•••••••••基本概念安装执行测试使用SeleniumLibrary数据驱动的测试与测试用例的架构使用变量设置Timeout敏捷测试过程©2011 AgileanCopyrightReserved78进阶问题Agenda©2011 AgileanCopyrightReserved79选择式输入与日期处理进阶问题©2011 AgileanCopyrightReserved79选择式输入与日期处理进阶问题•在界面当中,有许多信息使用选择方式来输入,如年龄,日期,密码等等;div层,就是看到的“下拉框”。可以用如下方式直接赋值来进行选择:••–inputtext•在界面当中,有许多信息使用选择方式来输入,如年龄,日期,密码等等;div层,就是看到的“下拉框”。可以用如下方式直接赋值来进行选择:••–inputtext//select[@id='registeredAgePeriod']03©2011 AgileanCopyrightReserved80选择式输入与日期处理•对于有些日期输入框,也可以直接调用JavaScriptwindow.一定要写不能省略©2011 AgileanCopyrightReserved81•对于有些日期输入框,也可以直接调用JavaScriptwindow.一定要写不能省略©2011 AgileanCopyrightReserved81选择式输入与日期处理••很多时候输入的日期值,需要根据当前日期计算可以利用BuildInLibrary里面的GetTime来解决©2011 AgileanCopyrightReserved82选择式输入与日期处理••很多时候输入的日期值,需要根据当前日期计算可以利用BuildInLibrary里面的GetTime来解决©2011 AgileanCopyrightReserved82选择式输入与日期处理•日期处理••切换窗口Alert处理和模式对话框©2011 AgileanCopyrightReserved83•日期处理••切换窗口Alert处理和模式对话框©2011 AgileanCopyrightReserved83等待AJAX返回结果进阶问题••定位AJAX会动态更新的页面内容定义一个等待动态加载完成的关键词©2011 AgileanCopyrightReserved84••定位AJAX会动态更新的页面内容定义一个等待动态加载完成的关键词©2011 AgileanCopyrightReserved84等待AJAX返回结果•等待界面返回,可以利用BuiltInLibrary里面的WaitUntilKeywordSucceeds关键词©2011 AgileanCopyrightReserved85等待AJAX返回结果•等待界面返回,可以利用BuiltInLibrary里面的WaitUntilKeywordSucceeds关键词©2011 AgileanCopyrightReserved85等待AJAX返回结果••日期处理等待AJAX返回结果•Alert处理和模式对话框©2011 AgileanCopyrightReserved86••日期处理等待AJAX返回结果•Alert处理和模式对话框©2011 AgileanCopyrightReserved86切换窗口进阶问题•如果测试用例打开了多个窗口或多个Frame,可以用如下关键词来进行切换:•如果打开新窗口的时间不确定,可以结合WaitUntilKeywordSucceeds关键词,以确保切换窗口成功©2011 AgileanCopyrightReserved87•如果测试用例打开了多个窗口或多个Frame,可以用如下关键词来进行切换:•如果打开新窗口的时间不确定,可以结合WaitUntilKeywordSucceeds关键词,以确保切换窗口成功©2011 AgileanCopyrightReserved87切换窗口•另外,可以使用如下关键词来获取所有当前打开窗口的信息,方便调试GetGetGetWindowIdentifiers•另外,可以使用如下关键词来获取所有当前打开窗口的信息,方便调试GetGetGetWindowIdentifiersNamesTitles©2011 AgileanCopyrightReserved88切换窗口••••••JQuery支持Flex支持Firefox••••••JQuery支持Flex支持FirefoxProfiles支持日期处理等待AJAX返回结果切换窗口©2011 AgileanCopyrightReserved89Alert处理和模式对话框进阶问题•在Selenium2/IE中,模式对话框就和一个普通窗口一样,只需用SelectWindow结合WaitUntilKeywordSucceeds切换过去即可,在模式对话框关闭之后再用SelectWindow结合WaitUntilKeywordSucceeds切换回主窗口即可©2011 Agilean•在Selenium2/IE中,模式对话框就和一个普通窗口一样,只需用SelectWindow结合WaitUntilKeywordSucceeds切换过去即可,在模式对话框关闭之后再用SelectWindow结合WaitUntilKeywordSucceeds切换回主窗口即可©2011 AgileanCopyrightReserved90模式对话框的处理••Selenium会修改页面JS代码,所以不会有实际的弹出窗口否符合预期•其实这里ConfirmAction不会进行点击动作,而只是会去获取需要确认的内容,但是如果不调用ConfirmAction,后面就会报错了;而ChooseCancel••Selenium会修改页面JS代码,所以不会有实际的弹出窗口否符合预期•其实这里ConfirmAction不会进行点击动作,而只是会去获取需要确认的内容,但是如果不调用ConfirmAction,后面就会报错了;而ChooseCancelonNextConfirmation就是规定下一次Confirm选择Cancel•©2011 AgileanCopyrightReserved91Confirm的处理•Alert的处理©2011 AgileanCopyrightReserved92Alert的处理•Alert的处理©2011 AgileanCopyrightReserved92Alert的处理••••日期处理返回结果切换窗口Alert处理和模式对话框©••••日期处理返回结果切换窗口Alert处理和模式对话框©2011 AgileanCopyrightReserved93模拟Windows动作SeleniumLibrary进阶•RobotFramework还有一个AutoItLibrary,Windows界面的关键词,安装方式如下:安装PythonWindowsExtension(pywin32-需要本机管理员权限)之后,解压AutoItLibrary-1.1.zip到任意目录,然后在目录下执行•RobotFramework还有一个AutoItLibrary,Windows界面的关键词,安装方式如下:安装PythonWindowsExtension(pywin32-需要本机管理员权限)之后,解压AutoItLibrary-1.1.zip到任意目录,然后在目录下执行••setup.pyinstall注意:–在Win7或WindowsServer上–以你的有管理员权限的用户登录»而不要直接用Administrator账号登录–要以管理员身份打开命令行窗口–再执行setup.py©2011 AgileanCopyrightReserved94模拟Windows动作•安装之后需要将AutoItLibrary的两个相关目录的只读限制清除,否则,使用RIDE时会抛异常;另外可能没法SearchKeyword;©2011 AgileanCopyrightReserved•安装之后需要将AutoItLibrary的两个相关目录的只读限制清除,否则,使用RIDE时会抛异常;另外可能没法SearchKeyword;©2011 AgileanCopyrightReserved95模拟Windows动作•如果用Administrator执行了setup.pyinstall,那么使用其他用户使用AutoIt时,会报这个错误–––>>>Don'tthinkweneedtounregisterthe•如果用Administrator执行了setup.pyinstall,那么使用其他用户使用AutoIt时,会报这个错误–––>>>Don'tthinkweneedtounregistertheoldone...Traceback(mostrecentcalllast):File"C:\Python27\Lib\site-packages\pythonwin\pywin\framework\scriptutils.py",line325,inRunScriptexeccodeObjectin main . dict File"C:\pathon2.7.1\AutoItLibrary-1.1\setup.py",line63,in<module>shutil.copyfile("3rdPartyTools/AutoIt/AutoItX3.dll",instFile)File"C:\Python27\lib\shutil.py",line81,incopyfilewithopen(src,'rb')asfsrc:IOError:[Errno2]Nosuchfileordirectory:'3rdPartyTools/AutoIt/AutoItX3.dll‘–––•这时需要删除AutoItLibrary目录,同时用regedt32情况注册表里面所有和AutoIt项目的信息©2011 AgileanCopyrightReserved96模拟Windows动作••使用时需要ImportAutoItLibrary关键词列表请见–http://robotframework-••使用时需要ImportAutoItLibrary关键词列表请见–http://robotframework-AutoItLibrary-1.0/doc/AutoItLibrary.html©2011 AgileanCopyrightReserved97模拟Windows动作•••••日期处理返回结果切换窗口Alert处理和模式对话框模拟Windows动作•••••日期处理返回结果切换窗口Alert处理和模式对话框模拟Windows动作©2011 AgileanCopyrightReserved98String和Collection支持SeleniumLibrary进阶•RobotFramework内置提供了StringLibrary–ReplaceString–ReplaceString•RobotFramework内置提供了StringLibrary–ReplaceString–ReplaceStringUsi–ShouldBeLowercas–ShouldBeString–ShouldBeTitlecas–ShouldBeUppercas–ShouldNotBeStrin–SplitString–SplitStringFromR–SplitToLinesFetchFromLeftFetchFromRightGenerateRandomStringGetLineGetLineCountGetLinesContainingStringGetLinesMatchingPatternGetLinesMatchingRegexpGetSubstring©2011 AgileanCopyrightReserved99String支持•AppendToList·CombineLists·ConvertToList·CopyDictionaryDictionary··CopyList· CountValuesInList·CreateDictionariesShouldBeEqual·DictionaryShouldContainDictionary·Key·DictionaryShouldContainSubDictionaryShouldContainValue·DictionaryShouldNotContainKey·DictionaryShouldNotContainValue·GetDictionaryItems·GetDictionary•AppendToList·CombineLists·ConvertToList·CopyDictionaryDictionary··CopyList· CountValuesInList·CreateDictionariesShouldBeEqual·DictionaryShouldContainDictionary·Key·DictionaryShouldContainSubDictionaryShouldContainValue·DictionaryShouldNotContainKey·DictionaryShouldNotContainValue·GetDictionaryItems·GetDictionaryKeys·GetDictionaryValues·GetFromDictionary·GetFromListIntoList·GetIndexFromList· GetSliceFromList·InsertList·KeepInDictionary·ListShouldContainSub· ListShouldNotContain·ListShouldContainValueDuplicates·ListShouldNotContainValue·ListsShouldBeEqual·LogDictionary· LogList·RemoveFromDictionary·RemoveFromList·RemoveValuesFromList·ReverseList·SetListValue·SetToDictionary·SortList©2011 AgileanCopyrightReserved100Collection支持••••••日期处理返回结果切换窗口Alert处理和模式对话框••••••日期处理返回结果切换窗口Alert处理和模式对话框模拟Windows动作©2011 AgileanCopyrightReserved101Cookie支持SeleniumLibrary进阶•Selenium2Lib提供了如下关键词来操作Cookie:DeleteAllCookiesDeleteCookie•Selenium2Lib提供了如下关键词来操作Cookie:DeleteAllCookiesDeleteCookieGetGetCookieValueCookies©2011 AgileanCopyrightReserved102Cookies操作•••••••日期处理返回结果切换窗口•••••••日期处理返回结果切换窗口Alert处理和模式对话框模拟Windows动作和Collection支持Cookie支持©2011 AgileanCopyrightReserved103鼠标动作SeleniumLibrary进阶•Selenium2Lib提供了如下关键词来操作鼠标:GetVerticalPositionGetHorizontalPosition•Selenium2Lib提供了如下关键词来操作鼠标:GetVerticalPositionGetHorizontalPositionMouseMouseMouseMouseMouseMouseDownDownDownOutOverUpOnOnImageLink©2011 AgileanCopyrightReserved104Cookies操作••RegisterKeywordToRunOn••RegisterKeywordToRunOnFailure•Tag©2011 AgileanCopyrightReserved105失败处理••••Flex支持FirefoxProfiles支持RemoteLibraryDBLibrary©••••Flex支持FirefoxProfiles支持RemoteLibraryDBLibrary©2011 AgileanCopyrightReserved106JQuery支持其他进阶话题•在用例中,将所有ImportLibrary|SeleniumLibrary都换成ImportLibrary|Selenium2Libr•在用例中,将所有ImportLibrary|SeleniumLibrary都换成ImportLib

温馨提示

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

评论

0/150

提交评论