RFS自动化测试培训.pptx
《RFS自动化测试培训.pptx》由会员分享,可在线阅读,更多相关《RFS自动化测试培训.pptx(144页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Content工具简介与环境搭建RobotFramework+Selenium使用持续集成BDD简介与lettuce工具列表RobotFrameworkSeleniumFireBugJenkinslettuceRobot Framework 是什么RobotFramework是一款python编写的功能自动化测试框架。具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行。主要用于轮次很多的验收测试和验收测试驱动开发(ATDD)。自动化测试框架的职责u定义一种统一的方式来书写和组织测试用例(测试步骤,测试数据与期待返回值);u控制测试用例的执行过程;u
2、生成测试报告和测试日志;RobotFramework特性u易于使用,采用表格式语法,统一测试用例格式;u重用性好,可以利用现有关键字来组合新关键字;u支持变量;u支持创建基于数据驱动的测试用例。u结果报告和日志采用HTML格式,易于阅读;u提供标签以分类和选择将被执行的测试用例;u平台、应用无关;u功能全面,支持WEB测试(Selenium)、JavaGUI测试u易于扩展,提供了简单API,用户可以自定义的基于Python或者Java的测试库;u易于集成,提供了命令行接口和基于XML的输出文件;u易于与版本管理集成Selenium简介uSelenium是ThoughtWorks专门为Web应用
3、程序编写的一个验收测试工具。u与其他测试工具相比,使用Selenium的最大好处是:Selenium测试直接在浏览器中运行,就像真实用户所做的一样。uSelenium测试可以在Windows、Linux和上的InternetExplorer、Mozilla和Firefox中运行。其他测试工具都不能覆盖如此多的平台。uRFS=RobotFramework+Selenium(WD)RobotFramework架构环境搭建-在线安装1.安装Python,使用Python-2.72.安装wxPython2.83.pipinstallrobotframework4.pipinstallrobotfram
4、ework-ride5.pipinstallrobotframework-selenium2library6.浏览器driver:http:/ main注意:切换到新窗口后,关闭窗口,必须要有一步返回到主页面打开3和3个以上的窗口:xlistwindows首先得到所有窗口的句柄列表selectwindowx2切换到第三个窗口*进入一个frame或iframe有时,需要先进入一个frame或iframe再定位一个元素,这样效率更高,可以使用如下两个关键词进入一个frame或iframeSelectFrame|locator回到最上层frame或iframeUnselectFrame*js js定
5、位:(定位:(js js)js点击executejavascriptdocument.querySelectorAll(css)0.click()移动div中内嵌滚动条(先定位,再移动)移动滚动条到最底端executejavascriptdocument.querySelectorAll(css)0.scrollTop=10000移动到最顶端executejavascriptdocument.querySelectorAll(css)0.scrollTop=0正常网页直接进行移动executejavascriptdocument.body.scrollTop=0executejavascrip
6、tdocument.scrollTop(0,50)*js js定位:(定位:(jQueryjQuery)jQuery定位(定位使用的是css定位)executejavascript$(css).click()jQuery事件executejavascript$(css).click()定位后点击executejavascript$(css).dblclick()定位后双击executejavascript$(css).text()定位后得到元素的文字executejavascript$(css).text(文字)定位后输入文字返回得到的文字$xexecutejavascriptreturn$(
7、css).text()*csscss定位:定位:*网页代码:网页代码:*csscss定位实例:定位实例:*csscss结构定位:结构定位:1、lia:选中li标签的子元素a2、li+a:选中li同级的下一个a3、lia:nth-child(n)/lia:nth-of-type(n):选中li下第n个alia:nth-last-child(n)/lia:nth-last-of-type(n):选中li下,倒数第n个a如果n=odd表示奇数如果n=even表示偶数4、lia:last-child/lia:last-of-type:选中li下最后面一个alia:first-child/lia:fir
8、st-of-type:选中li下第一个个a5、lia:only-child:li下只有1个a的a标签RFSRFS基本使用基本使用selenium2libraryselenium2library*操作浏览器操作浏览器Selenium2Lib提供了与浏览器交互的关键词:lOpenBrowserlMaximizeBrowserWindowlGoTolGoBacklReloadPagelCloseWindowlCloseBrowserlCloseAllBrowsers驱动不同的浏览器驱动不同的浏览器Selenium 默认的是默认的是Firefox浏览器,其他浏览器需要自己的浏览器,其他浏览器需要自己的
9、driver1、下载IE的driver2、放到项目目录下*常用关键字常用关键字点击lClickButton|locatorlClickElement|locatorlClickImage|locatorlClickLink|locatorlDoubleClickElement|locatorl有时在IE中,Click不起作用,可以用如下命令来替代lPressKey|13或10常用关键字常用关键字输入lInputPassword|locator|textlInputText|locator|textl有时会出现输入之后界面没有的问题,可以用如下命令来触发页面更新lPressKey|13或10*常
10、用关键字常用关键字按键lPressKey|locator|keyl例子lPressKey|text_field|q|lPressKey|login_button|13|#ASCIIcodeforl特殊编码0:Keys.NULL,8:Keys.BACK_SPACE,9:Keys.TAB,10:Keys.RETURN,13:Keys.ENTER,24:Keys.CANCEL,27:Keys.ESCAPE,32:Keys.SPACE,42:Keys.MULTIPLY,43:Keys.ADD,44:Keys.SEPARATOR,45:Keys.SUBTRACT,56:Keys.DECIMAL,57:K
11、eys.DIVIDE,59:Keys.SEMICOLON,61:Keys.EQUALS,127:Keys.DELETE常用关键字常用关键字lSelenium2Lib提供了和其他界面元素交互的关键词:lElementlFocus 聚焦lSimulate 模拟时间触发lOpen Context Menu 打开lListlSelect All From ListlSelect From ListlUnselect From ListlCheckboxlSelect CheckboxlUnselect Checkbox常用关键字常用关键字Selenium2Lib提供了和其他界面元素交互的关键词:lRa
12、dio ButtonlSelect Radio ButtonlFormlSubmit FormlChoose File(For File Upload)*常用关键字常用关键字默认情况下,Selenium2会自动等待页面加载完成对于页面AJAX可以使用如下等待页面的关键词:lWaitForCondition|condition|timeout=None|error=NonelWaitUntilPageContains|text|timeout=None|error=NonelWaitUntilPageContainsElement|locator|timeout一种调试时可以使用,但是不应该留下
13、来的lSleepxlSleep关键词是RobotFrameworkBuiltInLibrary提供的http:/ Should Be PresentlGet Alert MessagelChoose Cancel On Next ConfirmationlChoose Ok On Next ConfirmationlConfirm Action*AutoItLibraryAutoItLibrary以管理员身份运行cmdpythonsetup.pyinstall导入库AutoItLibraryRFSRFS基本使用基本使用-编编写写测试测试用例用例添加资源添加资源资源下面可以放自己的关键字*增加自
14、定义关键字增加自定义关键字增加内置模块增加内置模块为资源添加库引用引用自定义资源自定义资源在测试套件中添加资源*使用自定义资源使用自定义资源“打开浏览器”已经变颜色了,说明引用正确*参数化:参数化:(一)创建列表形式,适用于少量数据(一)创建列表形式,适用于少量数据*(二)调用(二)调用read.pyread.py脚本,进行封装,适用于大脚本,进行封装,适用于大量数据量数据*位置结构:位置结构:excelexcel文件和文件和read.pyread.py文件在同一个目文件在同一个目录录*read.pyread.py脚本脚本,代码一览代码一览*写好自动化测试用例的原则要做到流程和数据的分离注意:
15、界面元素id不算数据,不应分离更新测试用例更新测试用例增加一个新的测试用例这样好吗?写好自动化测试用例的原则写好自动化测试用例的原则不断封装,用例复用*写好自动化测试用例的原则写好自动化测试用例的原则l要做到数据和流程的分离l不断抽象,消除冗余写好自动化测试用例的原则写好自动化测试用例的原则l要做到数据和流程的分离l不断抽象,消除冗余l测试用例应该简单易读,避免复杂逻辑*写好自动化测试用例的原则写好自动化测试用例的原则l要做到数据和流程的分离l不断抽象,消除冗余l测试用例应该简单易读,避免复杂逻辑l问题:“登录”放在这好吗?写好自动化测试用例的原则写好自动化测试用例的原则1、要做到流程和数据的
16、分离2、通过不断抽象,消除冗余3、测试用例应尽量简单易读,避免复杂逻辑4、建立测试用例分层架构,并坚守测试用例的层次结构测试用例的层次结构测试用例=测试流程模板+测试数据测试流程模板=测试流程构件的排列测试流程构件=测试流程步骤的排列测试流程步骤=界面交互细节RFSRFS基本使用基本使用-变变量和量和结结果果验证验证使用变量使用变量l使用变量来实现测试目标可变使用变量使用变量l使用变量来实现测试目标可变l运行时可以指定变量取值切换不同环境使用变量使用变量可以使用变量来获得界面返回值,用于验证l需要注意关键词里面的返回值变量只在关键词之内有效,l可以通过如下关键词来提升变量的可见范围,但是最好只
17、提升到Test级别,因为测试用例最好是相互独立的lSetGlobalVariablelSetSuiteVariablelSetTestVariable常用关键字常用关键字验证页面是否包含相应结果PagePageShould(Not)ContainButtonPageShould(Not)ContainCheckboxPageShould(Not)ContainElementPageShould(Not)ContainImagePageShould(Not)ContainLinkPageShould(Not)ContainListPageShould(Not)ContainRadioButton
18、PageShould(Not)ContainTextfieldLocation&TitleLocationShouldBeLocationShouldContainTitleShouldBe常用关键字常用关键字验证页面是否包含相应结果TextCurrentFrameContainsPageShouldContainPageShouldNotContainTextfieldValueShouldBeElementElementShouldBeDisabledElementShouldBeEnabledElementShouldBeVisibleElementShouldContainElemen
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- RFS 自动化 测试 培训
限制150内