收藏 分销(赏)

RFS自动化测试培训.pptx

上传人:可**** 文档编号:10290779 上传时间:2025-05-17 格式:PPTX 页数:111 大小:2.96MB
下载 相关 举报
RFS自动化测试培训.pptx_第1页
第1页 / 共111页
RFS自动化测试培训.pptx_第2页
第2页 / 共111页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2018/5/25,#,Content,工具简介与环境搭建,RobotFramework+Selenium使用,持续集成,BDD,简介与,lettuce,工具列表,RobotFramework,Selenium,FireBug,Jenkins,lettuce,Robot Framework,是什么,Robot Framework,是一款,python,编写的功能,自动化测试框架,。具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行。主要用于轮次很多的验收测试和验收测试驱动开发(,ATDD,)。,自动化测试框架的职责,定义一种统一的方式来书写和组织测试用例(测试步骤,测试数据与期待返回值);,控制测试用例的执行过程;,生成测试报告和测试日志;,RobotFramework,特性,易于使用,采用表格式语法,统一测试用例格式;,重用性好,可以利用现有关键字来组合新关键字;,支持变量;,支持创建基于数据驱动的测试用例。,结果报告和日志采用,HTML,格式,易于阅读;,提供标签以分类和选择将被执行的测试用例;,平台、应用无关;,功能全面,支持,WEB,测试(,Selenium,)、,Java GUI,测试,易于扩展,提供了简单,API,,用户可以自定义的基于,Python,或者,Java,的测试库;,易于集成,提供了命令行接口和基于,XML,的输出文件;,易于与版本管理集成,Selenium,简介,Selenium,是,ThoughtWorks,专门为,Web,应用程序编写的一个验收测试工具。,与其他测试工具相比,使用,Selenium,的最大好处是:,Selenium,测试直接在浏览器中运行,就像真实用户所做的一样。,Selenium,测试可以在,Windows,、,Linux,和上的,Internet Explorer,、,Mozilla,和,Firefox,中运行。其他测试工具都不能覆盖如此多的平台。,RFS=Robot Framework+Selenium,(,WD,),RobotFramework,架构,环境搭建,-,在线安装,安装,Python,,使用,Python-2.7,安装,wxPython2.8,pip install robotframework,pip install robotframework-ride,pip install robotframework-selenium2library,浏览器,driver:,=cp437:,原来的编码是,cp437,将其改成,cp936(,简体中文,gbk),。,*,FireBug,安装,FireBug,入门使用,Content,工具简介与环境搭建,RobotFramework+Selenium,使用,持续集成,BDD,简介与,lettuce,RFS,基本使用,-,入门实例,*,新建项目,*,新建测试套件,1,2,3,*,新建测试用例,1,3,2,*,添加测试库,1,3,2,在测试套件中添加库,注意区分大小写,*,编写测试用例,打开禅道登录页面,输入用户名,输入密码,单击登录按钮,关键字,*,运行测试,*,运行测试,*,查看报告,*,查看日志,24,*,RFS,基本使用,-,元素定位,Selenium,支持的定位方式,最好以,id,来定位,如果没有,id,可以使用,AssignIdToElement,关键字来为元素分配一个,id,*,Xpath,*,Xpath1,通过绝对路径定位元素,xpath=/html/body/form/input,通过相对路径定位元素,xpath=/input,使用索引来定位元素,xpath=/input2,使用属性值定位元素,xpath=/inputid=username,xpath=/inputid=usernamename=username,xpath=/inputid=username and name=username,xpath=/inputid=username or name=username,*,Xpath2,使用属性名称定为元素,xpath=/inputname,使用部分属性值定位元素,使用值来匹配任意属性及元素,/input*=username,*,切换到新的窗口,有时,浏览器打开了两个窗口,要跳转到新的窗口才能操作元素,进入新的窗口,Select Window new,返回到主窗口,Select Windowmain,注意:切换到新窗口后,关闭窗口,必须要有一步返回到主页面,打开,3,和,3,个以上的窗口:,xlist windows,首先得到所有窗口的句柄列表,select window x2,切换到第三个窗口,*,进入一个,frame,或,iframe,有时,需要先进入一个,frame,或,iframe,再定位一个元素,这样效率更高,可以使用如下两个关键词,进入一个,frame,或,iframe,Select Frame|locator,回到最上层,frame,或,iframe,Unselect Frame,*,js,定位:(,js,),js,点击,execute javascript document.querySelectorAll(css)0.click(),移动,div,中内嵌滚动条,(先定位,再移动),移动滚动条到最底端,execute javascript document.querySelectorAll(css)0.scrollTop=10000,移动到最顶端,execute javascript document.querySelectorAll(css)0.scrollTop=0,正常网页直接进行移动,execute javascript document.body.scrollTop=0,execute javascript document.scrollTop(0,50),*,js,定位:(,jQuery,),jQuery,定位,(,定位使用的是,css,定位,),execute javascript$(css).click(),jQuery,事件,execute javascript$(css).,click,(),定位后点击,execute javascript$(css).,dblclick,(),定位后双击,execute javascript$(css).,text,(),定位后得到元素的文字,execute javascript$(css).,text,(,文字,),定位后输入文字,返回得到的文字,$x,execute javascript,return,$(css).text(),*,css,定位:,*,网页代码:,*,css,定位实例:,*,css,结构定位:,1、lia :选中 li 标签的子元素 a,2、li+a :选中 li 同级的 下一个 a,3,、lia:nth-child(n)/lia:nth-of-type(n):选中 li 下第 n 个 a,lia: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 下最后面一个 a,lia:,first,-child /lia:,first,-of-type :选中 li 下第一个个 a,5,、lia:only-child :li 下只有1个a的 a 标签,RFS,基本使用,selenium2library,*,操作浏览器,Selenium2Lib,提供了与浏览器交互的关键词:,Open Browser,Maximize Browser Window,Go To,Go Back,Reload Page,Close Window,Close Browser,Close All Browsers,驱动不同的浏览器,Selenium,默认的是,Firefox,浏览器,其他浏览器需要自己的,driver,1,、下载,IE,的,driver,2,、放到项目目录下,*,常用关键字,点击,Click Button|locator,Click Element|locator,Click Image|locator,Click Link|locator,Double Click Element|locator,有时在,IE,中,,Click,不起作用,可以用如下命令来替代,Press Key|,13,或,10,常用关键字,输入,Input Password|locator|text,Input Text|locator|text,有时会出现输入之后界面没有的问题,可以用如下命令来触发页面更新,Press Key|,13,或,10,*,常用关键字,按键,Press Key|locator|key,例子,Press Key|text_field|q|,Press Key|login_button|13|#ASCII code for,特殊编码,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,提供了和其他界面元素交互的关键词:,Element,Focus,聚焦,Simulate,模拟时间触发,Open Context Menu,打开,List,Select All From List,Select From List,Unselect From,List,Checkbox,Select Checkbox,Unselect Checkbox,常用关键字,Selenium2Lib,提供了和其他界面元素交互的关键词:,Radio Button,Select Radio Button,Form,Submit Form,Choose File,(,For File Upload),*,常用关键字,默认情况下,Selenium2,会自动等待页面加载完成,对于页面,AJAX,可以使用如下等待页面的关键词:,Wait For Condition|condition|timeout=None|error=None,Wait,Until Page Contains|text|timeout=None|error=None,Wait Until Page Contains Element|locator|timeout,一种调试时可以使用,但是不应该留下来,的,Sleep x,Sleep,关键词是,Robot Framework Built In Library,提供的,Title,Get Location,Get Source,Get Matching Xpath Count,Element,Get Element Attribute,Get Value,Get Text(Added By Adam Wu),Link,Get All Links,常用关键字,获取页面信息,Table,Get Table Cell,List,Get List Items,Get Selected List Label,Get Selected List Labels,Get Selected List Value,Get Selected List Values,RFS,基本使用,-,弹出窗口处理,*,常用关键字,Alert Should Be Present,Get Alert Message,Choose Cancel On Next Confirmation,Choose Ok On Next Confirmation,Confirm Action,*,AutoItLibrary,以管理员身份运行,cmd,python setup.py install,导入库,AutoItLibrary,RFS,基本使用,-,编写测试用例,添加资源,资源下面可以放自己的关键字,*,增加自定义关键字,增加内置模块,为资源添加库,引用,自定义资源,在测试套件中添加资源,*,使用自定义资源,“打开浏览器”已经变颜色了,说明引用正确,*,参数化:(一)创建列表形式,适用于少量数据,*,(二)调用,read.py,脚本,进行封装,适用于大量数据,*,位置结构:,excel,文件和,read.py,文件在同一个目录,*,read.py,脚本,代码一览,*,写好自动化测试用例的原则,要做到流程和数据的分离,注意:界面元素,id,不算数据,不应分离,更新测试用例,增加一个新的测试用例,这样好吗,?,写好自动化测试用例的原则,不断封装,用例复用,*,写好自动化测试用例的原则,要做到数据和流程的分离,不断抽象,消除冗余,写好自动化测试用例的原则,要做到数据和流程的分离,不断抽象,消除冗余,测试用例应该简单易读,避免复杂逻辑,*,写好自动化测试用例的原则,要做到数据和流程的分离,不断抽象,消除冗余,测试用例应该简单易读,避免复杂逻辑,问题:“登录”放在这好吗?,写好自动化测试用例的原则,1,、要做到流程和数据的分离,2,、通过不断抽象,消除冗余,3,、测试用例应尽量简单易读,避免复杂逻辑,4,、建立测试用例分层架构,并坚守,测试用例的层次结构,测试用例,=,测试流程模板,+,测试数据,测试流程模板,=,测试流程构件的排列,测试流程构件,=,测试流程步骤的排列,测试流程步骤,=,界面交互细节,Call Selenium Library,RFS,基本使用,-,变量和结果验证,使用变量,使用变量来实现测试目标可变,使用变量,使用变量来实现测试目标可变,运行时可以指定变量取值切换不同环境,使用变量,可以使用变量来获得界面返回值,用于验证,需要注意关键词里面的返回值变量只在关键词之内有效,,可以通过如下关键词来提升变量的可见范围,但是最好只提升到,Test,级别,因为测试用例最好是相互独立的,Set Global Variable,Set Suite Variable,Set Test Variable,常用关键字,验证页面是否包含相应结果,Page,Page Should,(,Not)Contain Button,Page Should,(,Not)Contain Checkbox,Page Should,(,Not)Contain Element,Page Should,(,Not)Contain Image,Page Should(Not)Contain Link,Page Should(Not)Contain List,Page Should,(,Not)Contain Radio Button,Page Should,(,Not)Contain Textfield,Location&Title,Location Should Be,Location Should Contain,Title Should Be,常用关键字,验证页面是否包含相应结果,Text,Current Frame Contains,Page Should Contain,Page Should Not Contain,Textfield Value Should Be,Element,Element Should Be Disabled,Element Should Be Enabled,Element Should Be Visible,Element Should Contain,Element Should Not Be Visible,Element Text Should Be,常用关键字,验证页面是否包含相应结果,List,List Selection Should Be,List Should Have No Selections,Checkbox,Checkbox Should Be Selected,Checkbox Should Not Be Selected,Radio Button,Radio Button Should Be Set To,Radio Button Should Not Be Selected,常用关键字,验证页面是否包含相应结果,Table,Table Cell Should Contain,Table Column Should Contain,Table Footer Should Contain,Table Header Should Contain,Table Row Should Contain,Table Should Contain,Textfield Should Contain,Xpath,Xpath Should Match X Times,DBLibrary,1,、下载,DBLibrary,:,franz-see.github.io/Robotframework-Database-Library/,2,、安装,python setup.py install,3,、导入库:,DatabaseLibrary,4,、安装,MySQL Interface,To Database Using Custom Params,Disconnect From Database,Query,Execute Sql String,Row Count Is Equal To X,Table Must Exist,Check If Exists In Database,RFS,基本使用,-,数据驱动,数据驱动,可以利用,Template,实现数据驱动,创建一个,Template,新建一个关键字,LoginTemplate,引用,Template,注意:,用例中如果使用了这个,template,,那么用例步骤里面就只用填写传递的参数就可以了,RFS,基本使用,-RFS,中的编程,分支与流程控制,常用关键字,Run Keyword If,Run Keyword If Test Passed/Failed(only for teardown),Set Variable If,常用关键字,Evaluate,RFS,基本使用,-,自定义关键字,使用,Python,开发自定义关键字,我们来开发一个产生随机数的库,1,、新建一个文件:,MyLibrary.py,引用定义关键字,1,、把它放到项目文件夹下,2,、导入自己的库,MyLibrary.py,使用自己的库,产生,4,到,10,的随机数,Content,验收测试驱动开发概述,工具简介与环境搭建,RobotFramework+Selenium,使用,持续集成,BDD,简介与,lettuce,持续集成(,CI,),持续集成是一种,软件开发实践,,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,,自动化测试,),来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发,内聚,的,软件,。,安装,Jenkins,打开,Jenkins,localhost:8080,添加节点,选择系统管理,-,管理节点,添加节点,新建节点,-,填入节点名称,添加节点,#of executors,:如果使用,RF,的话必须填,1,Remote FS root,:远程机的工作目录,Launch method,:如果选其他的可能会出错,启动节点,建议使用这种方式,添加插件,1,、系统管理,-,管理插件,2,、高级,选择文件,上传,(上传后需重启,Jenkins,),新建任务,1,、在首页,-,新建任务,2,、填入名称,选择自由风格即可,新建任务,Content,验收测试驱动开发概述,工具简介与环境搭建,RobotFramework+Selenium,使用,持续集成,BDD,简介与,lettuce,*,BDD,简介,BDD,:,Behavior Driven Development,,,行为驱动开发,是一种,敏捷软件开发,的技术,它鼓励软件项目中的开发者、,QA,和非技术人员或商业参与者之间的协作。,The common BDD approach basically consists in:,writing some unit tests,running these tests,making these tests fail,writing code,making the code pass these tests(green status),lettuce,Lettuce,是一个基于,Cucumber,(目前比,lettuce,更强大的,BDD,工具,,Cucumber,是基于,ruby,语言的)的简单的,BDD,测试工具。,Lettuce,是基于,Python,语言的。,在线安装:,pip install lettuce,Lettuce,流程,Lettuce+selenium,进行,Web,测试,1,、安装,lettuce,pip install lettuce,lettuce.it,2,、安装,lettuce_webdriver,pip install lettuce_webdriver,https:/pypi.python.org/pypi/lettuce_webdriver,3,、安装,nose,pip install nose,https:/pypi.python.org/pypi/nose/,一个例子(,1,),Lettuce,的目录结构,./test/features/baidu.feature,/step_definitions/setps.py,/support/terrain.py,*,一个例子(,2,),一个例子(,3,),*,*,一个例子(,4,),Lettuce,的,traint,文件,一个例子(,5,),运行,Lettuce-,直接在,test,目录下运行,lettuce,命令,演讲完毕,谢谢观看!,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 职业教育

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服