RFS自动化测试培训_第1页
RFS自动化测试培训_第2页
RFS自动化测试培训_第3页
RFS自动化测试培训_第4页
RFS自动化测试培训_第5页
已阅读5页,还剩106页未读 继续免费阅读

下载本文档

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

文档简介

Content工具简介与环境搭建RobotFramework+Selenium使用持续集成BDD简介与lettuce工具列表RobotFrameworkSeleniumFireBugJenkinslettuceRobotFramework是什么RobotFramework是一款python编写的功能自动化测试框架。具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行。主要用于轮次很多的验收测试和验收测试驱动开发(ATDD)。自动化测试框架的职责定义一种统一的方式来书写和组织测试用例(测试步骤,测试数据与期待返回值);控制测试用例的执行过程;生成测试报告和测试日志;RobotFramework特性易于使用,采用表格式语法,统一测试用例格式;重用性好,可以利用现有关键字来组合新关键字;支持变量;支持创建基于数据驱动的测试用例。结果报告和日志采用HTML格式,易于阅读;提供标签以分类和选择将被执行的测试用例;平台、应用无关;功能全面,支持WEB测试(Selenium)、JavaGUI测试易于扩展,提供了简单API,用户可以自定义的基于Python或者Java的测试库;易于集成,提供了命令行接口和基于XML的输出文件;易于与版本管理集成Selenium简介Selenium是ThoughtWorks专门为Web应用程序编写的一个验收测试工具。与其他测试工具相比,使用Selenium的最大好处是:Selenium测试直接在浏览器中运行,就像真实用户所做的一样。Selenium测试可以在Windows、Linux和上的InternetExplorer、Mozilla和Firefox中运行。其他测试工具都不能覆盖如此多的平台。RFS=RobotFramework+Selenium(WD)RobotFramework架构环境搭建在线安装安装Python,使用Python-2.7安装wxPython2.8pipinstallrobotframeworkpipinstallrobotframework-ridepipinstallrobotframework-selenium2library浏览器driver:

/p/selenium/downloads/list环境搭建离线安装1、/pypi/decorator/2、/pypi/robotframework/#downloads3、/pypi/robotframework-selenium2library/1.5.04、/pypi/selenium/2.40.0中文支持在[PythonDir]\Lib\site-packages\robot\utils下的encodingsniffer.py文件中,找到DEFAULT_OUTPUT_ENCODING='cp437':原来的编码是’cp437’将其改成’cp936’(简体中文,gbk)。*FireBug安装FireBug入门使用Content工具简介与环环境搭建RobotFramework+Selenium使用持续集成BDD简介与lettuceRFS基本使用入门实例*新建项目*新建测试套件件123*新建测试用例例132*添加测试库132在测试套件中中添加库注意区分大小小写*编写测试用例例打开禅道登录录页面输入用户名输入密码单击登录按钮钮关键字*运行测试*运行测试*查看报告*查看日志24*RFS基本使用元素定位Selenium支持的定位方方式最好以id来定位,如果果没有id可以使用Assign

IdTo

Element关键字来为元元素分配一个个id*Xpath*Xpath1通过绝对路径径定位元素xpath=/html/body/form/input通过相对路径径定位元素xpath=//input使用索引来定定位元素xpath=//input[2]使用属性值定定位元素xpath=//input[@id=’username’]xpath=//input[@id=’username’][@name=’username’’]xpath=//input[@id=’username’and@name=’username’]xpath=//input[@id=’username’or@name=’username’]*Xpath2使用属性名称称定为元素xpath=//input[@name]使用部分属性性值定位元素素使用值来匹配配任意属性及及元素//input[@*=’username’’]*切换到新的窗窗口有时,浏览器器打开了两个个窗口,要跳跳转到新的窗窗口才能操作作元素进入新的窗口口SelectWindownew返回到主窗口口SelectWindow main注意:切换到到新窗口后,,关闭窗口,,必须要有一一步返回到主主页面打开3和3个以上的窗口口:@{x}listwindows首先得到所有有窗口的句柄柄列表selectwindow@{x}[2]切换到第三个个窗口*进入一个frame或iframe有时,需要先先进入一个frame或iframe再定位一个元元素,这样效效率更高,可可以使用如下下两个关键词词进入一个frame或iframeSelectFrame|locator回到最上层frame或iframeUnselectFrame*js定位:(js)js点击executejavascriptdocument.querySelectorAll('css')[0].click()移动div中内嵌滚动条条(先定位,再再移动)移动滚动条到到最底端executejavascriptdocument.querySelectorAll('css')[0].scrollTop=10000移动到最顶端端executejavascriptdocument.querySelectorAll('css')[0].scrollTop=0正常网页直接接进行移动executejavascriptdocument.body.scrollTop=0executejavascriptdocument.scrollTop(0,50)*js定位:(jQuery)jQuery定位(定位使用的是是css定位)executejavascript$('css').click()jQuery事件executejavascript$('css').click()定位后点击executejavascript$('css').dblclick()定位后双击executejavascript$('css').text()定位后得到元元素的文字executejavascript$('css').text('文字')定位后输入文文字返回得到的文文字${x}executejavascriptreturn$('css').text()*css定位:*网页代码:*css定位实例:*css结构定位:1、li>a::选选中li标标签的子元元素a2、li+a::选选中li同同级的下下一个a3、li>a:nth-child(n)/li>a:nth-of-type(n)::选中li下第n个ali>a:nth-last-child(n)/li>a:nth-last-of-type(n):选中li下,倒数第n个a如果n=odd表表示奇数如果n=even表示偶数数4、li>a:last-child/li>a:last-of-type:选中li下最最后面一个ali>a:first-child/li>a:first-of-type:选中li下第一一个个a5、li>a:only-child::li下只有1个a的a标签RFS基本使用selenium2library*操作浏览器Selenium2Lib提供了与浏览览器交互的关关键词:OpenBrowserMaximizeBrowserWindowGoToGoBackReloadPageCloseWindowCloseBrowserCloseAllBrowsers驱动不同的浏浏览器Selenium默认的是Firefox浏览器,其他他浏览器需要要自己的driver1、下载IE的driver2、放到项目目目录下*常用关键字点击ClickButton|locatorClickElement|locatorClickImage|locatorClickLink|locatorDoubleClickElement|locator有时在IE中,Click不起作用,可可以用如下命命令来替代PressKey|<id>|\\13或\\10常用关键字输入InputPassword|locator|textInputText|locator|text有时会出现输输入之后界面面没有的问题题,可以用如如下命令来触触发页面更新新PressKey|<id>|\\13或\\10*常用关键字按键PressKey|locator|key例子PressKey|text_field|q|PressKey|login_button|\\13|#ASCIIcodefor特殊编码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:Keys.DIVIDE,59:Keys.SEMICOLON,61:Keys.EQUALS,127:Keys.DELETE常用关键字Selenium2Lib提供了和其他他界面元素交交互的关键词词:ElementFocus聚焦Simulate模拟时间触发发OpenContextMenu打开ListSelectAllFromListSelectFromListUnselectFromListCheckboxSelectCheckboxUnselectCheckbox常用关键字Selenium2Lib提供了和其他他界面元素交交互的关键词词:RadioButtonSelectRadioButtonFormSubmitFormChooseFile(ForFileUpload)*常用关键字默认情况下,Selenium2会自动等待页页面加载完成成对于页面AJAX可以使用如下下等待页面的的关键词:WaitForCondition|condition|timeout=None|error=NoneWaitUntilPageContains|text|timeout=None|error=NoneWaitUntilPageContainsElement|locator|timeout一种种调调试试时时可可以以使使用用,,但但是是不不应应该该留留下下来来的SleepxSleep关键键词词是是RobotFrameworkBuiltInLibrary提供供的的/hg/doc/libraries/BuiltIn.html?r=2.6.1常用用关关键键字字获取取页页面面信信息息::PageGetTitleGetLocationGetSourceGetMatchingXpathCountElementGetElementAttributeGetValueGetText(AddedByAdamWu)LinkGetAllLinks常用用关关键键字字获取取页页面面信信息息TableGetTableCellListGetListItemsGetSelectedListLabelGetSelectedListLabelsGetSelectedListValueGetSelectedListValuesRFS基本本使使用用弹出出窗窗口口处处理理*常用用关关键键字字AlertShouldBePresentGetAlertMessageChooseCancelOnNextConfirmationChooseOkOnNextConfirmationConfirmAction*AutoItLibrary以管管理理员员身身份份运运行行cmdpythonsetup.pyinstall导入入库库AutoItLibraryRFS基本本使使用用编写写测测试试用用例例添加加资资源源资源源下下面面可可以以放放自自己己的的关关键键字字*增加加自自定定义义关关键键字字增加加内内置置模模块块为资源添添加库引用自定义资资源在测试套套件中添添加资源源*使用自定定义资源源“打开浏浏览器””已经变变颜色了了,说明明引用正正确*参数化::

(一一)创建建列表形形式,适适用于少少量数据据*(二)调调用read.py脚本,进进行封装装,适用用于大量量数据*位置结构构:excel文件和read.py文件在同同一个目目录*read.py脚本,代码一览览*写好自动动化测试试用例的的原则要做到流流程和数数据的分分离注意:界界面元素素id不算数据据,不应应分离更新测试试用例增加一个个新的测测试用例例这样好吗吗?写好自动动化测试试用例的的原则不断封装装,用例例复用*写好自动动化测试试用例的的原则要做到数数据和流流程的分分离不断抽象象,消除除冗余写好自动动化测试试用例的的原则要做到数数据和流流程的分分离不断抽象象,消除除冗余测试用例例应该简简单易读读,避免免复杂逻逻辑*写好自动动化测试试用例的的原则要做到数数据和流流程的分分离不断抽象象,消除除冗余测试用例例应该简简单易读读,避免免复杂逻逻辑问题:““登录””放在这这好吗??写好自动动化测试试用例的的原则1、要做到到流程和和数据的的分离2、通过不断抽抽象,消除冗冗余3、测试用例应应尽量简单易易读,避免复复杂逻辑4、建立测试用用例分层架构构,并坚守测试用例的层层次结构测试用例=测试流程模板板+测试数据测试流程模板板=测试流程构件件的排列测试流程构件件=测试流程步骤骤的排列测试流程步骤骤=界面交互细节节CallSeleniumLibraryRFS基本使用变量和结果验验证使用变量使用变量来实实现测试目标标可变使用变量使用变量来实实现测试目标标可变运行时可以指指定变量取值值切换不同环环境使用变量可以使用变量量来获得界面面返回值,用用于验证需要注意关键键词里面的返返回值变量只只在关键词之之内有效,可以通过如下下关键词来提提升变量的可可见范围,但但是最好只提提升到Test级别,因为测测试用例最好好是相互独立立的SetGlobalVariableSetSuiteVariableSetTestVariable常用关键字验证页面是否否包含相应结结果PagePageShould(Not)ContainButtonPageShould(Not)ContainCheckboxPageShould(Not)ContainElementPageShould(Not)ContainImagePageShould(Not)ContainLinkPageShould(Not)ContainListPageShould(Not)ContainRadioButtonPageShould(Not)ContainTextfieldLocation&TitleLocationShouldBeLocationShouldContainTitleShouldBe常用关键字验证页面是否否包含相应结结果TextCurrentFrameContainsPageShouldContainPageShouldNotContainTextfieldValueShouldBeElementElementShouldBeDisabledElementShouldBeEnabledElementShouldBeVisibleElementShouldContainElementShouldNotBeVisibleElementTextShouldBe常用关键字验证页面是否否包含相应结结果ListListSelectionShouldBeListShouldHaveNoSelectionsCheckboxCheckboxShouldBeSelectedCheckboxShouldNotBeSelectedRadioButtonRadioButtonShouldBeSetToRadioButtonShouldNotBeSelected常用关键字验证页面是否否包含相应结结果TableTableCellShouldContainTableColumnShouldContainTableFooterShouldContainTableHeaderShouldContainTableRowShouldContainTableShouldContainTextfieldShouldContainXpathXpathShouldMatchXTimesDBLibrary1、下载DBLibrary:http://franz-see.github.io/Robotframework-Database-Library/2、安装pythonsetup.pyinstall3、导入库:DatabaseLibrary4、安装MySQLInterface/petehunt/PyMySQLDBLibraryConnectToDatabaseUsingCustomParamsDisconnectFromDatabaseQueryExecuteSqlStringRowCountIsEqualToXTableMustExistCheckIfExistsInDatabaseRFS基本使用数据驱动数据驱动可以利用Template实现数据驱动动创建一个Template新建一个关键键字LoginTemplate引用Template注意:用例中如果使使用了这个template,那么用例步步骤里面就只只用填写传递递的参数就可可以了RFS基本使用RFS中的编程分支与流程控控制常用关键字RunKeywordIfRunKeywordIfTestPassed/Failed(onlyforteardown)SetVariableIf常用关键字EvaluateRFS基本使用自定义关键字字使用Python开发自定义关关键字我们来开发一一个产生随机机数的库1、新建一个文文件:MyLibrary.py引用定义关键键字1、把它放到项项目文件夹下下2、导入自己的的库MyLibrary.py使用自己的库库产生4到10的随机数Content验收测试驱动动开发概述工具简介与环环境搭建RobotFramework+Selenium使用持续集成BDD简介与lettuce持续集成(CI)持续集成是一一种软件开发实践践,即团队开发发成员经常集集成他们的工工作,通常每每个成员每天天至少集成一一次,也就意意味着每天可可能会发生多多次集成。每每次集成都通通过自动化的的构建(包括括编译,发布布,自动化测试)来验证,从而而尽快地发现现集成错误。。许多团队发发现这个过程程可以大大减减少集成的问问题,让团队队能够更快的的开发内聚的软件。安装Jenkins打开Jenkinshttp://localhost:8080添加节点选择系统管理理管理节点添加节点新建节点填入节点名称称添加节点#ofexecutors:如果使用RF的话必须填1RemoteFSroot:远程机的工工作目录Launchme

温馨提示

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

评论

0/150

提交评论