Robot Framework+Selenium 自动化测试入门_虫师


博客园--虫师 http://fnng.cnblogs.com 1 Robot Framework + Selenium 自动化测试入门 --虫师 个人博客: http://fnng.cnblogs.com 更多测试课程与公开课: http://itest.info/ 博客园--虫师 http://fnng.cnblogs.com 2 目录 介绍.......................................................................................................................................................................2 Robot Framework 是什么?.......................................................................................................................2 Selenium 是什么?..................................................................................................................................... 2 一、Robot Framework Selenium 环境搭建.......................................................................................................4 二、创建第一个自动化脚本.............................................................................................................................. 5 1、创建测试项目 ..........................................................................6 2、创建测试套件 ...................................................................... 6 3、创建测试用例 ............................................................................ 7 4、导入 selenium2library 库 ...............................................................................7 5、编写用例 ......................................................................8 6、运行测试用例 ...................................................................... 9 三、Selenium 元素定位.................................................................................................................................... 11 1、id 和 name 定位 ........................................................................... 11 2、xpath 定位 ............................................................................................. 12 3、CSS 定位 ............................................................................14 四、Robot Framework Selenium API.............................................................................................................16 一、浏览器驱动........................................................................................................................................ 17 二、关闭浏览器........................................................................................................................................ 18 三、浏览器最大化.................................................................................................................................... 18 四、设置浏览器宽、高............................................................................................................................ 18 五、文本输入............................................................................................................................................ 19 六、点击元素............................................................................................................................................ 19 七、点击按钮............................................................................................................................................ 19 八、注释.....................................................................................................................................................19 九、固定时间休眠.................................................................................................................................... 20 十、等待元素出现在当前页面................................................................................................................ 20 十一、获取 title......................................................................................................................................... 20 十二、获取文本信息................................................................................................................................ 21 十三、获取元素属性值............................................................................................................................ 21 十四、cookie 处理.....................................................................................................................................21 十五、声明变量........................................................................................................................................ 22 十六、日志(输出)................................................................................................................................ 22 十七、获得浏览器窗口宽、高................................................................................................................ 23 十八、验证................................................................................................................................................ 23 十九、表单嵌套........................................................................................................................................ 24 二十、下拉框选择.................................................................................................................................... 24 二十一、If 分支语句.................................................................................................................................24 二十二、for 循环语句..............................................................................................................................25 五、Robot Framework 分层设计.....................................................................................................................26 1、创建用户关键字.................................................................................................................................. 28 2、添加调用关键字.................................................................................................................................. 31 博客园--虫师 http://fnng.cnblogs.com 3 介绍 Robot Framework 是什么? Robot Framework 的架构是一个通用的验收测试和验收测试驱动开发的自动化测试框架(ATDD)。 它具有易于使用的表格来组织测试过程和测试数据。 New Test Case open browser http://www.baidu.com input text id=kw robot framework click button id=su close browser 它使用关键字驱动的测试方法。 对于上面的例子来说,open browser 、input text、click button 和 close browser,都是“关键字”, 这些关键字由 robotframework-selenium2library 类库所提供。当然,我们也可以自定义关键字。 其检测能力可以通过测试库实现可以使用 Python 或 Java 的扩展,用户可以使用相同的语法,用于创 建测试用例创建新的更高层次的现有的关键词。 Robot Framework 的操作系统和应用独立框架。核心框架是使用 Python 和运行在 Jython(JVM)和 IronPython(.NET)。 Selenium 是什么? Selenium 是 web 自动化测试工具集,包括 IDE、Grid、RC(selenium 1.0)、WebDriver(selenium 2.0)等。 Selenium IDE 是 firefox 浏览器的一个插件。提供简单的脚本录制、编辑与回放功能。 Selenium Grid 是用来对测试脚步做分布式处理。现在已经集成到 selenium server 中了。 RC 和 WebDriver 更多应该把它看成一套规范,在这套规范里定义客户端脚步与浏览器交互的协议。 以及元素定位与操作的接口。 WebDriver API 是什么? 博客园--虫师 http://fnng.cnblogs.com 4 对于刚接触 selenium 自动化测试的同学来说不太容易理解 API 是什么,它到底和编程语言之是什么 关系。 Webdriver API(接口规范)说,我们要提供一下 id 的定位方法。 Ruby 的 webdriver 模块是这么实现的: require "selenium-webdriver" #导入 ruby 版的 selenium(webdriver) find_element(:id, "xx") #id 定位方法 C#的 webdriver 模块是这么实现的: using OpenQA.Selenium; using OpenQA.Selenium.Firefox; //导入 C#版的 selenium(webdriver) FindElement(By.Id("xx")) //id 定位方法 python 的 webdriver 模块是这么实现的: from selenium import webdriver #导入 python 版的 selenium(webdriver) find_element_by_id("xx") #id 定位方法 Java 的 webdriver 模块是这么实现的: import org.openqa.selenium.*; import org.openqa.selenium.firefox.FirefoxDriver; //导入 java 版的 selenium(webdriver) findElement(By.id("xx")) //id 定位方法 Robot Framework +selenium 因为 Robot Framework 对于底层过于封装,所以,更看不到语言层面的方法定义。所以,提供给我 们的方法如下: 1、导入 Robot Framework 版本的 selenium(webdriver) 2、使用 id 方法 Click element id=xx 博客园--虫师 http://fnng.cnblogs.com 5 需要说明的是 webdriver API 只提供了页面操作的相关规范,比如元素定位方法,浏览器操作,获取 web 页元素属性等。 一、Robot Framework Selenium 环境搭建 最近工具中用 Robot Framework 框架来做自动化,所以,花时间学习了一下。 =======所需环境=================== Python: https://www.python.org/ RF 框架是基于 python 的,所以一定要有 python 环境。 Robot framework : https://pypi.python.org/pypi/robotframework/2.8.5 这个不是解释了,RF 框架。虽然在做基于 UI 的自动化时,它展现出来的很像 QTP,我之前也以 为它和 QTP 差不多,仔细了解你会发展它能做的事情还是很多的。就像初学 selenium 者,会误以为 selenium 就是 selenium IDE。 wxPython : http://www.wxpython.org/download.php Wxpython 是 python 非常有名的一个 GUI 库,因为 RIDE 是基于这个库开发的,所以这个必须安 装。 Robot framework-ride https://pypi.python.org/pypi/robotframework-ride RIDE 就是一个图形界面的用于创建、组织、运行测试的软件。 博客园--虫师 http://fnng.cnblogs.com 6 Robot framework-selenium2library: https://pypi.python.org/pypi/robotframework-selenium2library/1.5.0 RF-seleniumlibrary 可以看做 RF 版的 selenium 库,selenium (webdriver)可以认为是一套基于 web 的规范(API),所以,RF、appium 等测试工具都可以基于这套 API 进行页面的定位与操作。 ---------------------- 可以通过 python 的 pip 工具包进行安装: >pip install robotframework-selenium2library 如果初次接触上面的东西的话,觉得装的东西有点多。如果之前有了解过 python 或 selenium 的话就 不会有这样的感觉。 在你安装好 RF-RIDE 之后,桌面就会生成一个 RIDE 图标。双击启动,界面如下: 二、创建第一个自动化脚本 下面我们就一步一步的创建第一条用例,至于细节不多解释,只是对 RF 框架写用例有个感性的认识。 博客园--虫师 http://fnng.cnblogs.com 7 1、创建测试项目 选择菜单栏 file----->new Project Name 输入项目名称。 Type 选择 Directory。 2、创建测试套件 右键点击“测试项目”选择 new Suite 选项 Name 输入项目名称。 Type 选择 File。 博客园--虫师 http://fnng.cnblogs.com 8 3、创建测试用例 右键点击“测试项目”选择 new Test Case 用例只需要输入用例 name ,点击 OK 即可。 4、导入 selenium2library 库 因为 RF 框架编写基于 web 的测试用例,所以,我们需要 selenium 的库支持。所以,我们在使用 的过程中需要加载 selenium2library 库。 博客园--虫师 http://fnng.cnblogs.com 9 在“测试套件”的 Edit 标签页,点击“Library”按钮,弹出输入框,Name 输入:Selenium2Library , 点击 OK 完。 如果导入的库显示为红色,表示导入的库不存在。如果是黑色则表示导入成功。 5、编写用例 下面就可以开始写我们的用例了,可是怎么写呢?我们可以通过按 F5 快捷键来查询脚本的关键 字。如果你接触过 QTP 或 selenium IDE 等自动化工具的话,应该会有一些思路。 如上图,自动化脚本从打开浏览器开发,如上图,我想打开一个浏览器,想的是“open”为关键字 进行搜索,结果找到了一个“Open Browser”的关键字,点击这个关键字,想显示它的用法和说明。 根据说明,我们来尝试创建这个打开浏览器的操作吧: 博客园--虫师 http://fnng.cnblogs.com 10 “Open Browser”变蓝了,说明它是一个合法的关键字,后面有一个方框是红色的,表示这个参数 不能缺省的。通过说明信息中,我发现它需要一个 url 地址是必填的,当然还需要指定 browser (默 认不填为 friefox) 更多关键的使用,请参考相关 API 文档。这里不过多介绍。按照上面的方法。创建百度搜索用例 如下: 6、运行测试用例 勾选当前需要运行的测试用例,点击工具栏运行按钮,如果只运行单个用例的话,也可以切换到 用例的 Run 标签页,点击“start”按钮。 博客园--虫师 http://fnng.cnblogs.com 11 运行结果: 运行信息显示会生成三个文件:Output.xml、Log.html、Report.html 我们重点查看 Log.html 和 Report.html ,Log.html 更关注脚本的执行过程的记录,Report.html 更关注 脚本的执行结果的展示。 赶快打开你的测试报告看看效果吧! 博客园--虫师 http://fnng.cnblogs.com 12 三、Selenium 元素定位 1、id 和 name 定位 假如把一个元素看作一个人的话,id 和 name 可以看作一个人的身份证号和姓名。当然,这些属性 值是否唯一要看前端工程师如何设计了。 百度搜索框和搜索按钮 …… …… …… 根据上面的例子,百度输入框可以取 id 或 name 进行定位。(前提是 id 和 name 的值在当页面上唯一) id = kw1 博客园--虫师 http://fnng.cnblogs.com 13 name = wd 在 Robot framework 中就是这样写的: Input Text id=kw1 robot framework 学习 input text name=wd robot framework 学习 Input text 用于输入框的关键字,“robot framework 学习”是要给输入框输入的内容。 百度按钮只 id 数据可以利用: id=su1 Click Button id=su1 Click Button 是按钮点击的关键字。 2、xpath 定位 假如,一个人没身份证号没名字怎么找呢?想想你是怎么找朋友吃饭的,他手机不通,电话不回 呢?直接上他家去呗,那你一定有他家住址,xx 市 xx 区 xx 路 xx 号。Xpath 就可以通过这种层级关 系找到元素。 来看看百度输入框在整个页面上的位置吧:
还剩33页未读

继续阅读

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

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

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

下载pdf

pdf贡献者

runnerhehe

贡献于2015-06-24

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