Robot Framework + Selenium2/WebDriver 测试技术培训


@吴穹Adam Robot Framework + Selenium2/WebDriver 测试技术培训 © 2011 Agilean Copyright Reserved 2 Agenda • 基本概念 © 2011 Agilean Copyright Reserved 3 测试框架的职责 • 定义一种统一的方式来书写和组织测试用例(测试步骤, 测试数据与期待返回值); • 集成不同的测试驱动技术; • 控制测试用例的执行过程; • 生成测试报告和测试日志; © 2011 Agilean Copyright Reserved 4 Robot Framework方案概要 © 2011 Agilean Copyright Reserved 5 Robot Framework的特性 • 易于使用,采用表格式语法,统一测试用例格式; • 重用性好,可以利用现有关键字来组合新关键字; • 支持变量; • 支持创建基于数据驱动的测试用例。 • 结果报告和日志采用HTML格式,易于阅读; • 提供标签以分类和选择将被执行的测试用例; • 平台、应用无关; • 功能全面,支持WEB测试(Selenium)、Java GUI 测试, 启动线程、终端、SSH等; • 易于扩展,提供了简单API,用户可以自定义的基于Python 或者Java的测试库; • 易于集成,提供了命令行接口和基于XML的输出文件; • 易于与版本管理集成; © 2011 Agilean Copyright Reserved 6 Robot Framework方案 架构 Builtin DB © 2011 Agilean Copyright Reserved 7 Agenda • 基本概念 • 安装 © 2011 Agilean Copyright Reserved 8 安装 • 运行 –python-2.7.3.msi (需要本机管理员权限) • 请选择将Python加入Path –wxPython2.8-win32-unicode-2.8.12.1-py27.exe, –robotframework-ride-0.46.1.win32.exe –用管理员帐户打开一个cmd • robotframework-2.7.3>python setup.py install • decorator-3.3.3>python setup.py install • selenium-2.23.0>python setup.py install • rtomac-robotframework-selenium2library-7989cfa>python setup.py install © 2011 Agilean Copyright Reserved 安装 • 覆盖 –用Selenium2Library内容覆盖其中的两个文件 • 从RF Install\Selenium2Library到 •[PythonDir]\Lib\site-packages\ robotframework_selenium2library-1.0.1-py2.7.egg\ Selenium2Library • 执行[PythonDir]\Scripts\ride.py 9 © 2011 Agilean Copyright Reserved 被测应用准备 • robotframework-selenium2library-1.0.1-demo>python rundemo.py demoapp start 10 © 2011 Agilean Copyright Reserved 11 设置中文支持 • 在[PythonDir]\Lib\site-packages\robot\utils下的 encoding.py文件中,找到def _get_output_encoding(): 原来的编码是’cp437’ 将其改成’ cp936’(简体中 文,gbk) 。 © 2011 Agilean Copyright Reserved 12 IE8设置 • 需要以管理员身份运行IE,将所有四个区域的‚启用保护 模式‛选项清除,否则 WebDriver会报这个错误 © 2011 Agilean Copyright Reserved IE8设置 • 确认IE没有设置proxy • 设置放大比例为100% 13 © 2011 Agilean Copyright Reserved 14 Agenda • 基本概念 • 安装 • 创建测试用例 © 2011 Agilean Copyright Reserved 15 创建测试项目 • 测试项目可以目录或文件存储 • 格式可以用TXT, TSV或HTML格式 • 建议选择目录和TXT,这样便于管理 © 2011 Agilean Copyright Reserved 16 创建测试套 • 测试套也可以选择是文件还是目录 © 2011 Agilean Copyright Reserved 17 创建测试用例 © 2011 Agilean Copyright Reserved 18 关系总结 © 2011 Agilean Copyright Reserved 19 添加测试库 • 测试库提供针对特定应用的关键词 © 2011 Agilean Copyright Reserved 20 添加资源 • 资源提供定制公用关键词的能力 • 注意:资源也需要引用用到的Library © 2011 Agilean Copyright Reserved 21 关系总结 © 2011 Agilean Copyright Reserved 22 增加自定义关键词 © 2011 Agilean Copyright Reserved 23 增加自定义关键词 © 2011 Agilean Copyright Reserved 24 增加自定义关键词 • F5可以搜索关键词 红色表明需要输入参数 © 2011 Agilean Copyright Reserved 25 在测试用例里面引用资源 • 测试用例用到的资源,需要在测试套里面直接引用 © 2011 Agilean Copyright Reserved 26 引用自定义关键词 • F5可以查找关键词 • 匹配的关键词会显示为蓝色 © 2011 Agilean Copyright Reserved 27 Agenda • 基本概念 • 安装 • 创建测试用例 • 执行测试 © 2011 Agilean Copyright Reserved 28 执行测试 © 2011 Agilean Copyright Reserved 29 按Tag执行 • 测试用例可以标记多个Tag • 可以按Tag来执行或跳过用例 © 2011 Agilean Copyright Reserved 30 测试日志 • 测试日志按树形组织 • 可自动提供错误步骤的屏幕截图 © 2011 Agilean Copyright Reserved 31 其他可用调试手段 • 设置调试信息级别 –Set Log Level | Trace • 拷屏 –Capture Page Screenshot | filename=None • 将页面内容加入Log –Log Location –Log Source | loglevel=INFO –Log Title • Log特定信息(Built In Library) • Log变量(Built In Library) © 2011 Agilean Copyright Reserved 32 测试报告 • 底色表示成功与失败 © 2011 Agilean Copyright Reserved 练习一 • 建立测试用例 • 查看测试报告 33 © 2011 Agilean Copyright Reserved 34 Agenda • 基本概念 • 安装 • 创建测试用例 • 执行测试 • 使用Selenium2Library © 2011 Agilean Copyright Reserved 35 内置关键词 • Selenium Library将WebDriver与Robot Framework连接起 来 • Selenium2Library提供了非常多的内置关键词 • 可以使用F5或以下链接来学习 © 2011 Agilean Copyright Reserved 浏览器操作 • Selenium2Lib提供了与浏览器交互的关键词: –Open Browser –Maximize Browser Window –Go To –Go Back –Reload Page –Close Window –Close Browser –Close All Browsers 36 © 2011 Agilean Copyright Reserved 37 常用关键词 • 点击 –Click Button | locator –Click Element | locator –Click Image | locator –Click Link | locator –Double Click Element | locator –有时在IE中,Click不起作用,可以用如下命令来替代 • Press Key | | \\13或\\10 © 2011 Agilean Copyright Reserved 38 定位元素 • Locator –可以id或name来用定位界面元素 –也可以使用XPath或Dom,但是,必须用XPath=或Dom=来开头 • 最好使用id来定位,强烈建议强制要求开发为所有需要交 互的界面元素设定id,所以,locator最好以 id=,name=,identifier= © 2011 Agilean Copyright Reserved 定位元素 • 也可以应用 Assign Id To Element关键词来为没有ID的元素 指定一个ID 39 © 2011 Agilean Copyright Reserved 定位元素 • 有时,需要先进入一个frame或iframe再定位一个元素,这 样效率更高,可以使用如下两个关键词 –进入一个frame或iframe • Select Frame | locator –回到最上层frame或iframe • Unselect Frame 40 © 2011 Agilean Copyright Reserved 41 常用关键词 • 输入 –Input Password | locator | text –Input Text| locator | text –有时会出现输入之后界面没有的问题,可以用如下命令来触发页面 更新 • Press Key | | \\13或\\10 © 2011 Agilean Copyright Reserved 42 常用关键词 • 按键 –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 © 2011 Agilean Copyright Reserved 43 定位元素 • 可以使用FireFox Firebug或IE8来辅助定位 © 2011 Agilean Copyright Reserved 44 更新例子 • 创建更多关键词 © 2011 Agilean Copyright Reserved 45 更新例子 • 扩展测试用例 © 2011 Agilean Copyright Reserved 46 检查结果 • 验证页面是否包含相应结果 –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 © 2011 Agilean Copyright Reserved 47 检查结果 • 验证页面是否包含相应结果 –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 © 2011 Agilean Copyright Reserved 48 检查结果 • 验证页面是否包含相应结果 –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 © 2011 Agilean Copyright Reserved 49 检查结果 • 验证页面是否包含相应结果 –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 © 2011 Agilean Copyright Reserved 50 等待页面加载 • 默认情况下, 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提供的, http://robotframework.googlecode.com/hg/doc/libraries/Built In.html?r=2.6.1 © 2011 Agilean Copyright Reserved 和其他界面元素交互 • Selenium2Lib提供了和其他界面元素交互的关键词: – Element • Focus 聚焦 • Simulate 模拟时间触发 • Open Context Menu 打开 – List • Select All From List • Select From List • Unselect From List – Checkbox • Select Checkbox • Unselect Checkbox – Radio Button • Select Radio Button – Form • Submit Form • Choose File (For File Upload) 51 © 2011 Agilean Copyright Reserved 练习二 • 更新测试用例 52 © 2011 Agilean Copyright Reserved 53 Agenda • 基本概念 • 安装 • 创建测试用例 • 执行测试 • 使用Selenium Library • 数据驱动的测试与测试用例的架构 © 2011 Agilean Copyright Reserved 54 敏捷测试 - 写好自动化测试用例的原则 • 要做到流程和数据的分离 –注意:界面元素id不算数据,不应分离 © 2011 Agilean Copyright Reserved 55 更新例子 • 增加一个新的测试用例 这样好吗? © 2011 Agilean Copyright Reserved 56 敏捷测试 - 写好自动化测试用例的原则 • 要做到流程和数据的分离 • 通过不断抽象,消除冗余 © 2011 Agilean Copyright Reserved 57 敏捷测试 - 写好自动化测试用例的原则 • 要做到流程和数据的分离 • 通过不断抽象,消除冗余 © 2011 Agilean Copyright Reserved 58 敏捷测试 - 写好自动化测试用例的原则 • 要做到流程和数据的分离 • 通过不断抽象,消除冗余 • 测试用例应尽量简单易读, 避免复杂逻辑 © 2011 Agilean Copyright Reserved 59 敏捷测试 - 写好自动化测试用例的原则 • 要做到流程和数据的分离 • 通过不断抽象,消除冗余 • 测试用例应尽量简单易读,避免复杂逻辑 问题:‚登录‛ Keyword应该在这里吗? © 2011 Agilean Copyright Reserved 60 敏捷测试 - 写好自动化测试用例的原则 • 要做到流程和数据的分离 • 通过不断抽象,消除冗余 • 测试用例应尽量简单易读,避免复杂逻辑 • 建立测试用例分层架构,并坚守 © 2011 Agilean Copyright Reserved 61 测试用例的层次架构(实例) 测试用例 = 测试流程模板 + 测试数据 测试流程模板 = 测试流程构件的排列 测试流程构件 = 测试流程步骤的排列 测试流程步骤 = 界面交互细节 © 2011 Agilean Copyright Reserved 练习三 • 分层测试用例架构 62 © 2011 Agilean Copyright Reserved 63 Agenda • 基本概念 • 安装 • 创建测试用例 • 执行测试 • 使用Selenium Library • 数据驱动的测试与测试用例的架构 • 使用变量 © 2011 Agilean Copyright Reserved 64 使用变量 • 使用变量来实现测试目标可变 © 2011 Agilean Copyright Reserved 65 使用变量 • 使用变量来实现测试目标可变 –运行时可以指定变量取值切换不同环境 © 2011 Agilean Copyright Reserved 66 使用变量 • 可以使用变量来获得界面返回值,用于验证 –需要注意关键词里面的返回值变量只在关键词之内有效, –可以通过如下关键词来提升变量的可见范围,但是最好只提升到 Test级别,因为测试用例最好是相互独立的 © 2011 Agilean Copyright Reserved 获取页面信息 • 相关关键词有: –Page • Get 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 67 © 2011 Agilean Copyright Reserved 获取页面信息 • 相关关键词有: –Table • Get Table Cell –List • Get List Items • Get Selected List Label • Get Selected List Labels • Get Selected List Value • Get Selected List Values 68 © 2011 Agilean Copyright Reserved 69 Agenda • 基本概念 • 安装 • 创建测试用例 • 执行测试 • 使用Selenium Library • 数据驱动的测试与测试用例的架构 • 使用变量 • 设置Timeout © 2011 Agilean Copyright Reserved 70 设置Timeout • Suite和Test都可以设定Timeout,这限定了测试用例的最 长执行时间,因此,需要预留合适的时间,否则,可能导 致测试不稳定 © 2011 Agilean Copyright Reserved 71 设置Timeout(需要被更新) • Timeout也可以通过如下Keyword来设置( –Get Selenium Timeout –Set Selenium Timeout • Selenium执行速度 –Get Selenium Speed –Set Selenium Speed © 2011 Agilean Copyright Reserved 72 敏捷测试 - 写好自动化测试用例的原则 • 要做到流程和数据的分离 • 通过不断抽象,消除冗余 • 测试用例应尽量简单易读,避免复杂逻辑 • 建立测试用例分层架构,并坚守 • 自动化测试用例必须非常健壮,避免误报 © 2011 Agilean Copyright Reserved 73 进阶问题 • 选择式输入与日期处理 © 2011 Agilean Copyright Reserved 74 选择式输入与日期处理 • 在界面当中,有许多信息使用选择方式来输入,如年龄, 日期,密码等等; • 如下面界面,当出发点击事件,就会弹出一个动态的div层, 就是看到的‚下拉框‛。 • 可以用如下方式直接赋值来进行选择: –input text //select[@id='registeredAgePeriod'] 03 © 2011 Agilean Copyright Reserved 75 选择式输入与日期处理 • 对于有些日期输入框,也可以直接调用JavaScript –注意这里window.一定要写不能省略 © 2011 Agilean Copyright Reserved 76 选择式输入与日期处理 • 很多时候输入的日期值,需要根据当前日期计算 • 可以利用BuildIn Library里面的Get Time来解决 © 2011 Agilean Copyright Reserved 日期格式处理 77 © 2011 Agilean Copyright Reserved 78 进阶问题 • 日期处理 • 等待AJAX返回结果 • 切换窗口 • Alert处理和模式对话框 © 2011 Agilean Copyright Reserved 通用等待技术 79 © 2011 Agilean Copyright Reserved 80 等待AJAX返回结果 • 定位AJAX会动态更新的页面内容 • 定义一个等待动态加载完成的关键词 © 2011 Agilean Copyright Reserved 81 等待AJAX返回结果 • 等待界面返回,可以利用Built In Library里面的Wait Until Keyword Succeeds关键词 © 2011 Agilean Copyright Reserved 82 进阶问题 • 日期处理 • 等待AJAX返回结果 • 切换窗口 • Alert处理和模式对话框 © 2011 Agilean Copyright Reserved 83 切换窗口 • 如果测试用例打开了多个窗口或多个Frame,可以用如下关 键词来进行切换: • 如果打开新窗口的时间不确定,可以结合Wait Until Keyword Succeeds关键词,以确保切换窗口成功 © 2011 Agilean Copyright Reserved 切换窗口 • 另外,可以使用如下关键词来获取所有当前打开窗口的信 息,方便调试 –Get Window Identifiers –Get Window Names –Get Window Titles 84 © 2011 Agilean Copyright Reserved 切换窗口(当前一个窗口自动关闭时) • 前一个窗口用window.open()打开一个新窗口,之后马上用 window.close()关闭自身 –这是可以在触发window.open的动作之前,执行如下动作: • Execute JavaScript | window.close = function() {}; 85 © 2011 Agilean Copyright Reserved 86 进阶问题 • JQuery支持 • Flex支持 • Firefox Profiles支持 • 日期处理 • 等待AJAX返回结果 • 切换窗口 • Alert处理和模式对话框 © 2011 Agilean Copyright Reserved 87 模式对话框的处理 • 在Selenium2/IE中,模式对话框就和一个普通窗口一样, 只需用Select Window结合Wait Until Keyword Succeeds 切换过去即可,在模式对话框关闭之后再用Select Window 结合Wait Until Keyword Succeeds切换回主窗口即可 © 2011 Agilean Copyright Reserved 88 Confirm的处理 • Selenium会修改页面JS代码,所以不会有实际的弹出窗口 • 可以调用如下关键词判断是否执行了弹出动作以及内容是 否符合预期 • 其实这里Confirm Action不会进行点击动作,而只是会去 获取需要确认的内容,但是如果不调用Confirm Action, 后面就会报错了; • 而Choose Cancel on Next Confirmation就是规定下一次 Confirm选择Cancel © 2011 Agilean Copyright Reserved 89 Alert的处理 • Alert的处理 © 2011 Agilean Copyright Reserved 90 Selenium Library进阶 • 日期处理 • 等待AJAX返回结果 • 切换窗口 • Alert处理和模式对话框 • 模拟Windows动作 © 2011 Agilean Copyright Reserved 91 模拟Windows动作 • Robot Framework还有一个AutoItLibrary, 提供了一些操作Windows界面的关键词,安 装方式如下: –安装Python Windows Extension(pywin32- 216.win32-py2.7.exe)(需要本机管理员权限) –之后,解压AutoItLibrary-1.1.zip到任意目录, 然后在目录下执行 • setup.py install • 注意: –在Win 7或Windows Server上 –以你的有管理员权限的用户登录 » 而不要直接用Administrator账号登录 –要以管理员身份打开命令行窗口 –再执行setup.py © 2011 Agilean Copyright Reserved 93 模拟Windows动作 • 如果用Administrator执行了setup.py install, 那么使用 其他用户使用AutoIt时,会报这个错误 – >>> Don't think we need to unregister the old one... – Traceback (most recent call last): – File "C:\Python27\Lib\site- packages\pythonwin\pywin\framework\scriptutils.py", line 325, in RunScript exec codeObject in __main__.__dict__ – File "C:\pathon2.7.1\AutoItLibrary-1.1\setup.py", line 63, in shutil.copyfile("3rdPartyTools/AutoIt/AutoItX3.dll", instFile) – File "C:\Python27\lib\shutil.py", line 81, in copyfile with open(src, 'rb') as fsrc: – IOError: [Errno 2] No such file or directory: '3rdPartyTools/AutoIt/AutoItX3.dll‘ • 这时需要删除AutoIt Library目录,同时用regedt32情况 注册表里面所有和AutoIt项目的信息 © 2011 Agilean Copyright Reserved 94 模拟Windows动作 • 使用时需要Import AutoItLibrary • 关键词列表请见 –http://robotframework- autoitlibrary.googlecode.com/svn/tags/robotframework- AutoItLibrary-1.0/doc/AutoItLibrary.html © 2011 Agilean Copyright Reserved 95 Selenium Library进阶 • 日期处理 • 等待AJAX返回结果 • 切换窗口 • Alert处理和模式对话框 • 模拟Windows动作 • String和Collection支持 © 2011 Agilean Copyright Reserved 96 • Robot Framework内置提供了String Library –Fetch From Left –Fetch From Right –Generate Random String –Get Line –Get Line Count –Get Lines Containing String –Get Lines Matching Pattern –Get Lines Matching Regexp –Get Substring String支持 –Replace String –Replace String Using –Should Be Lowercase –Should Be String –Should Be Titlecase –Should Be Uppercase –Should Not Be String –Split String –Split String From Right –Split To Lines © 2011 Agilean Copyright Reserved 97 Collection支持 • Append To List · Combine Lists · Convert To List · Copy Dictionary · Copy List · Count Values In List · Create Dictionary · Dictionaries Should Be Equal · Dictionary Should Contain Key · Dictionary Should Contain Sub Dictionary · Dictionary Should Contain Value · Dictionary Should Not Contain Key · Dictionary Should Not Contain Value · Get Dictionary Items · Get Dictionary Keys · Get Dictionary Values · Get From Dictionary · Get From List · Get Index From List · Get Slice From List · Insert Into List · Keep In Dictionary · List Should Contain Sub List · List Should Contain Value · List Should Not Contain Duplicates · List Should Not Contain Value · Lists Should Be Equal · Log Dictionary · Log List · Remove From Dictionary · Remove From List · Remove Values From List · Reverse List · Set List Value · Set To Dictionary · Sort List © 2011 Agilean Copyright Reserved 98 Selenium Library进阶 • 日期处理 • 等待AJAX返回结果 • 切换窗口 • Alert处理和模式对话框 • 模拟Windows动作 • String和Collection支持 • Cookie支持 © 2011 Agilean Copyright Reserved Cookies操作 • Selenium2Lib提供了如下关键词来操作Cookie: –Delete All Cookies –Delete Cookie –Get Cookie Value –Get Cookies 99 © 2011 Agilean Copyright Reserved 100 Selenium Library进阶 • 日期处理 • 等待AJAX返回结果 • 切换窗口 • Alert处理和模式对话框 • 模拟Windows动作 • String和Collection支持 • Cookie支持 • 鼠标动作 © 2011 Agilean Copyright Reserved 鼠标操作 • Selenium2Lib提供了如下关键词来操作鼠标: –Get Vertical Position –Get Horizontal Position –Mouse Down –Mouse Down On Image –Mouse Down On Link –Mouse Out –Mouse Over –Mouse Up 101 © 2011 Agilean Copyright Reserved 102 Selenium Library进阶 • 日期处理 • 等待AJAX返回结果 • 切换窗口 • Alert处理和模式对话框 • 模拟Windows动作 • String和Collection支持 • Cookie支持 • 鼠标动作 • 证书警告 © 2011 Agilean Copyright Reserved 处理证书警告 • 设置这个IE选项,就可以点击忽略证书警告了 • 如果需要,可以改变这个注册表值 103 © 2011 Agilean Copyright Reserved 104 Agenda • 如何Debug脚本? © 2011 Agilean Copyright Reserved 如何Debug脚本? • Set Log Level | Trace • 查看Log以便定位到出的问题 105 © 2011 Agilean Copyright Reserved 如何Debug脚本? • 利用Log –Log Source –Capture Page Screenshot • 实践表明,pybot在jenkins里和在RIDE下的执行结果可能 出现一些不一致,要用好Log发现问题 106 © 2011 Agilean Copyright Reserved 如何Debug脚本? • 可见性问题 –Selenium2要求交互的元素必须是可见的,其判定逻辑如下: • 对于Option或OptGroup,判断包含它的Select是否可见?; • 对于Area,判断包含它的Map是否可见? • 对于Map,判断MapImage是否可见? • hidden input不可见; • NoScript不可见; • hidden visibility不可见; • displayed=‘none’或任何祖先元素的displayed=‘none’, 则元素不可见; • 长宽为零,并且没有长宽不为零的子孙的元素不可见 107 © 2011 Agilean Copyright Reserved 如何Debug脚本? • 可见性问题 –需要特别注意这一条,因为IE有一个缺陷使得即便display=‚none‛ 的元素依然可见, http://www.positioniseverything.net/explorer/ienondisappear contentbugPIE/index.htm • display=‘none’或任何祖先元素的display=‘none’,则元 素不可见; 108 © 2011 Agilean Copyright Reserved 如何Debug脚本? • 解决定位问题 –Get Vertical Position –Get Horizontal Position 109 © 2011 Agilean Copyright Reserved 如何Debug脚本? • 测试出现异常时,有时需要手动杀掉IEDriverServer.exe • 另外需要杀掉僵尸IE进程 • 已经遇到了如下已知缺陷: 110 © 2011 Agilean Copyright Reserved 111 Agenda • 敏捷测试过程 © 2011 Agilean Copyright Reserved 112 Scrum Process Framework Product Owner Scrum Master Developers, Testers, .. + Manager/Lead Release Plan Meeting Release Arch Design Workshop Sprint Plan Meeting Sprint Review Sprint Retrospective © 2011 Agilean Copyright Reserved 113 迭代过程中的测试(A-TDD) © 2011 Agilean Copyright Reserved 114 Agenda • RFCK的使用 © 2011 Agilean Copyright Reserved RFCK的使用 115 © 2011 Agilean Copyright Reserved RFCK的使用 116 © 2011 Agilean Copyright Reserved RFCK的使用 117 © 2011 Agilean Copyright Reserved 118 其他进阶话题 • Remote Library • DB Library Q&A © 2011 Agilean Copyright Reserved 失败处理 • 提供了如下关键词进行错误处理 • Register Keyword To Run On Failure • 例如,可以根据执行结果自动调整Tag 120 © 2011 Agilean Copyright Reserved 121 • Call Method · Catenate · Comment · Convert To Binary · Convert To Bo olean · Convert To Hex · Convert To Integer · Convert To Number · Con vert To Octal · Convert To String · Create List · Evaluate · Exit For Loop · Fail · Fatal Error · Get Count · Get Length · Get Library In stance · Get Time · Get Variable Value · Get Variables ·· Import Va riables · Keyword Should Exist · Length Should Be ·· No Operation · Regexp Escape · Remove Tags · Repeat Keyword · Replace Variables ·R un Keyword · Run Keyword And Continue On Failure · Run Keyword And Expe ct Error · Run Keyword And Ignore Error · Run Keyword If · Run Keyword If All Critical Tests Passed · Run Keyword If All Tests Passed · Run Key word If Any Critical Tests Failed · Run Keyword If Any Tests Failed · Ru n Keyword If Test Failed · Run Keyword If Test Passed · Run Keyword If T imeout Occurred · Run Keyword Unless · Run Keywords · Set Global Vari able · Set Library Search Order · Set Log Level · Set Suite Variable · Set Tags · Set Test Message · Set Test Variable · Set Variable · Se t Variable If · Should Be Empty · Should Be Equal · Should Be Equal As Integers · Should Be Equal As Numbers · Should Be Equal As Strings ·S hould Be True · Should Contain · Should Contain X Times · Should End W ith · Should Match · Should Match Regexp · Should Not Be Empty · Shou ld Not Be Equal · Should Not Be Equal As Integers · Should Not Be Equal A s Numbers · Should Not Be Equal As Strings · Should Not Be True · Shoul d Not Contain · Should Not End With · Should Not Match · Should Not Mat ch Regexp · Should Not Start With · Should Start With · Variable Shoul d Exist · Variable Should Not Exist ·
还剩119页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 8 金币 [ 分享pdf获得金币 ] 3 人已下载

下载pdf

pdf贡献者

weizhuyu

贡献于2014-07-01

下载需要 8 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf