RFS自动化测试培训.pptx

上传人:封****n 文档编号:96701255 上传时间:2024-03-11 格式:PPTX 页数:144 大小:3.34MB
返回 下载 相关 举报
RFS自动化测试培训.pptx_第1页
第1页 / 共144页
RFS自动化测试培训.pptx_第2页
第2页 / 共144页
点击查看更多>>
资源描述

《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

19、tShouldNotBeVisibleElementTextShouldBe常用关键字常用关键字验证页面是否包含相应结果ListListSelectionShouldBeListShouldHaveNoSelectionsCheckboxCheckboxShouldBeSelectedCheckboxShouldNotBeSelectedRadioButtonRadioButtonShouldBeSetToRadioButtonShouldNotBeSelected常用关键字常用关键字验证页面是否包含相应结果TableTableCellShouldContainTableColumnShoul

20、dContainTableFooterShouldContainTableHeaderShouldContainTableRowShouldContainTableShouldContainTextfieldShouldContainXpathXpathShouldMatchXTimesDBLibraryDBLibrary1、下载DBLibrary:http:/franz-see.github.io/Robotframework-Database-Library/2、安装pythonsetup.pyinstall3、导入库:DatabaseLibrary4、安装MySQLInterfaceht

21、tps:/ Driven Development,行为驱动开发是一种敏捷软件开发的技术,它鼓励软件项目中的开发者、QA和非技术人员或商业参与者之间的协作。The common BDD approach basically consists in:1.writing some unit tests2.running these tests3.making these tests fail4.writing code5.making the code pass these tests(green status)lettucelettuceLettuce 是一个基于是一个基于Cucumber(目前比

22、(目前比lettuce更更强大的大的BDD工具,工具,Cucumber是基于是基于ruby语言的)的言的)的简单的的BDD测试工具。工具。Lettuce是基于是基于Python语言的。言的。在在线安装:安装:pip install lettuceLettuceLettuce流程流程Lettuce+seleniumLettuce+selenium进行进行WebWeb测试测试1、安装、安装lettucepip install lettucehttp:/lettuce.it2、安装、安装lettuce_webdriverpip install lettuce_webdriverhttps:/pypi

23、.python.org/pypi/lettuce_webdriver3、安装、安装nosepip install nosehttps:/pypi.python.org/pypi/nose/一个例子(一个例子(1 1)Lettuce的目的目录结构构./test/features/baidu.feature /step_definitions/setps.py /support/terrain.py*一个例子(一个例子(2 2)一个例子(一个例子(3 3)*一个例子(一个例子(4 4)Lettuce的的traint文件文件一个例子(一个例子(5 5)运行运行Lettuce-直接在直接在test目目

24、录下运行下运行lettuce命令命令演讲完毕,谢谢观看!附录资料:不需要的可以自行删除QTP自动化测试自动化测试的好处快速QuickTest 执行测试比人工测试速度快多了。可靠QuickTest 每一次的测试都可以正确的执行相同的动作,可以避免人工测试的错误。可重复QuickTest 可以重复执行相同的测试。可程序化QuickTest 可以以程序的方式,撰写复杂的测试脚本,以带出隐藏应用程序中的信息。广泛性QuickTest 可以建立广泛的测试脚本,涵盖应用程序的所有功能。可再使用QuickTest 可以重复使用测试脚本,即使应用程序的使用接口已经改变。QTP背景BTO:Business Te

25、chnology Optimization业务科技优化方案使IT系统既能满足质量和成本的需求,又能适应多变的业务需求,可随之改变QTP是HP花费45亿美元购买的Mecury公司测试产品套件之一QTP是继WR后推出以VBS为内嵌语言的测试工具用于功能测试QC产品协作进行自动化测试开发(BPT)BusinessProcessTesting特点:价格高昂但是容易掌握QTP应用范围自带插件ActiveX Database StdWindows TEA VisualBasic Web Xml额外购买插件Java DotNet PeopelSoft VisualAge siebel OracleQTP基本

26、功能介绍HP QuichTest Professinal 支持功能测试和回归测试自动化,用于每个主要软件应用程序和环境。此解决方案使用关键字驱动的测试概念,简化了测试创建和维护过程。它使测试人员能够使用专业的不惑技术直接从应用程序屏幕中捕获流程来构建测试案例。测试专家还可以通过集成的脚本和调试环境完全访问内在测试和对象属性。QTP的基本功能介绍TestActionActionActionFunctionFunctionFunctionFunctionLibraryStepStepStep以Test为测试运行单位,每个Test包含若干类型Action。以Action为最小单位映射对象库,多个Ac

27、tion之间可以共享统一对象库Action内的Step可以包含用户录制操作或者函数库内对Function的调用StepStep使用QuickTest进行测试测试和业务组件测试:组织成一个或多个操作的步骤集合,用于验证应用程序是否按预期执行。业务组件:表示应用程序中单任务的步骤集合。业务组件(也称为组件)在Mercury Quality Center 中由业务流程测试组合为特定的场景以建立业务流程测试。测试流程使用 QuickTest 测试包括三个主要阶段创建测试或组件以下列一种或两种方式向测试中添加步骤在应用程序或网站上录制会话。建立对象库并使用这些对象在关键字视图或专家视图中手动添加步骤然后

28、,使用特殊的测试选项或编程语句来修改测试或组件。通过用参数替换固定值拓宽测试或组件的范围使用设计的数据表中的数据QuickTest 生成随机数据使用 QuickTest 中众多的功能测试功能来增强测试或组件,或添加编写语句来实现更复杂的测试目标。运行测试或组件运行测试或组件检查网站或应用程序运行测试或者组件以对其进行调试单步执行单步跳过单步退出设置断点使测试或组件在预定点暂停分析结果在“结果”窗口中查看结果。报告在运行会话过程中检测到的缺陷。QuickTest窗口窗口标题栏&菜单栏文件工具栏调试工具栏测试工具栏操作工具栏测试窗格:关键字、专家试图数据表运行窗口调试查看器基本使用介绍各个按钮介绍

29、QuickTest如何识别对象确定对象符合的测试对象类对测试对象进行分类标准 Windows 对话框(Dialog)Web 按钮(WebButton)Visual Basic 滚动条对象(VbScrollBar)强制属性列表添加辅助属性特殊的顺序标识应用测试对象模型在录制时执行应用程序的相应操作,则 QuickTest 将标识 QuickTest 测试对象类(表示执行了操作的对象),并创建相应的测试对象 读取应用程序中对象属性的当前值,然后将属性和属性值列表与测试对象一起存储选择该对象的唯一名称,一般使用该对象某个重要属性的值使用适当的 QuickTest 测试对象方法录制对对象执行的操作实例

30、对象标识为 WebButton 测试对象测试对象创建一个名为 Find的 WebButton 对象为 Find WebButton 对象存储属性和属性值属性属性值typeFindnameresetHtml taginput实例(续)录制对 WebButton 执行了 Click 方法方法关键字视图关键字视图专家视图Browser(Mercury Interactive).Page(Mercury Interactive).WebButton(Find).Click核心功能清单对象库描述性编程检查点对象属性运行期间变更数据驱动错误恢复自动化对象核心功能-对象库入口:tools-Object Re

31、positoryCtrl+R 功能保存被测试对象属性,在编写执行步骤时使用核心功能-对象库对象库中的对象可以在录制过程中自动产生,也可以手动添加指定对象对象库分为本地对象库和共享对象库,区别是:本地对象库只应用于本地Action调用 共享对象库以.tsr扩展名文件形式存在,可以被其他Action调用。对象库面板具有定义以及更新对象的功能,并且能够进行在被测软件和对象库之间双向查找对象。对象属性可以在对象库中被任意修改,并且其属性描述支持正则表达式。核心功能-对象库智能识别是鸡肋,辅助标识符要慎用对象库与描述性编程的区别:对象库将对象收集起来,以可视化的方式呈现给用户描述性编程在运行步骤中通过对

32、象属性指定对象。结合使用时应注意:描述性编程的子对象不可以是对象库中的对象,反之可以。具体采用哪种方式指定对象因具体情况和个人喜好所定,并非描述性编程更“高人一筹“核心功能-对象库-简单的对象识别原理用户通过录制或指定对象属性的方式将一个对象添加到对象库,在录制过程中添加的对象是根据Tools-Object Identification中的设定记录的。在回放的过程中QTP通过将对象库中的对象属性和被测软件中的实时对象属性进行比对,如果发现存在能够唯一确定的对象,则对对象使用相应的用户设定的方法,完成用户动作。若不能发现唯一确定的对象,则启动智能识别机制,若智能识别仍无法唯一确定对象,则报错。更

33、多细节请参见QTP帮助。核心功能-描述性编程Browser(name:=UML软件工程组织).Page(Title:=UML软件工程组织).link(text:=项目管理,html tag:=A).ClickSet desc=Description.Createdesc(text).value=项目管理desc(html tag).value=ABrowser(name:=UML软件工程组织).Page(Title:=UML软件工程组织).link(desc).Click对象类型(“识别属性1:=属性值”).子对象属性(“识别属性1:=属性值”,“识别属性2:=属性值)。方法此外,描述性编程中

34、属性值默认是支持正则表达式的,在使用中请留意。由于支持了正则表达式,就可以一次获取多个测试对象,便可以逐个处理这个相似对象集。核心功能-检查点可检查类型包括上图中所有Checkpoint中子菜单项,包括文字,位图,XML,数据库(数据表)等检查点。每个检查点的执行结果都会在Automation-Result中存在相应的记录。有些检查点需要在录制状态下才能够使用。核心功能-对象属性运行期间变更Object(description).SetTOProperty Property,Value 通过此方法能够在运行期间更改对象库中对象的识别属性值。尤其在一个循环逻辑中更为常用,通过每次循环修改属性值,

35、完成对一系列类似对象的相同动作。此方法弥补了对象库相对于描述性编程的不足。Browser(UML软件工程组织).Page(UML软件工程组织).Link(项目管理).SetTOProperty text,需求管理Browser(UML软件工程组织).Page(UML软件工程组织).Link(项目管理).Click核心功能-对象属性运行期间变更更多方法通过.object对象,能够使用对象本身(没有被QTP封装)的更多方法或属性值设定。核心功能-数据驱动通过变更不同的数据组合,执行相同的逻辑步骤,完成对一个测试用例的测试。数据来源可以是:Excel表格,数据库(数据表),XML文件,TXT文件。任

36、何有规则的VBS可以操纵的文件类型都可以作为QTP的数据来源。当然最常用的还是Excel表。核心功能-错误恢复QTP软件本身自带了错误恢复手段 Recovery Scenario Manager。通过在发生不同错误的时候,执行指定的操作,保证测试脚本能够24*7的不间断运行。用户也可以通过在容易发生错误的步骤或函数调用处执行相应的操作,保证无人值守时不宕机,脚本不中断。核心功能-错误恢复-Recovery Scenario Manager入口:Resources-Recovery Scenario Manager不同的错误条件和用户可执行操作如上图所示,具体到问题的处理,还需要QTP的使用者在开发过程中不断揣摩优化。核心功能-错误恢复-用户自定义错误恢复举例在某一个用户动作执行时,总会产生某个不需要的,并且会阻止测试正常运行的软件打开,或者过程存在。这个时候就要进行人为干预。Browser(“xxxx”).close,或者核心功能-自动化对象QTP自身就了实现自动化对象的COM,可以通过创建QTP对象完成对QTP一些运行环境及错误收集等细节的指定。具体请参考下图中手册。网上很多,自己下载。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 期刊短文 > 信息管理

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com