Python+selenium自动化测试入门 孔祥祝
Selenium简介 Selenium是一款基于web应用程序的开源测试工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。它支持Firefox、ie、Mozilla等众多浏览器。它同时直至JAVA、C#、Ruby、Python、PHP、Perl等众多的主流语言。
Selenium简介-特点 开源、轻量 运行在浏览器中 简单灵活、支持很多种语言 IED提供录制功能
Selenium简介 Selenium Core:支持DHTML 的测试案例(效果类似数据驱动测试),它是Selenium IDE 和Selenium RC的引擎 Selenium IDE:FireFox 的一个插件,支持脚本录制。 Selenium RC:Selenium Remote Control。后续的系列文章我会主要针对Selenium RC 展开介绍。 Selenium Grid:允许同时并行地、在不同的环境上运行多个测试任务,极大地加快Web 应用的功能测试。
Selenium简介
Selenium IDE的安装 官网的下载路径http://release.seleniumhq.org/selenium-ide/1.6.0/selenium-ide-1.6.0.xpi 安装:将这个文件拖入到firefox窗口
SeleniumIDE的录制功能 如下图启动Firefox工具selenium IDE
SeleniumIDE的录制功能 点击右侧的红色按钮开始录制。需要注意的是启动selenium IDE后工具默认的就是开始录制。
SeleniumIDE的录制功能 打开百度输入”selenium ide”点击查询,整个步骤录制后如下。
SeleniumIDE的录制功能 可以点击回放一下。脚本回放成功为淡绿色,验证信息回放成功为深绿色
SeleniumIDE的录制功能 工具默认将操作步骤记录为html格式,点击optionsformat可以选择你要转化的语言。从这儿可以看出selenium的强大之处。
SeleniumIDE的录制功能 转化之后再source面板可以看到转化后的代码,如右图
SeleniumRC的工作原理-RC的组成
Selenium server的安装和启动 官网的下载selenium-server-standalone-2.19.0.jar cmdjava -jar selenium-server-standalone-2.19.0.jar 需要java sdk
Python自动化 安装python2.7 将selenium-2.19.1.tar.gz(http://pypi.python.org/packages/source/s/selenium/selenium-2.19.1.tar.gz#md5=fc856390a87800c463c7e2d3800e3112)的selenium目录拷到C:\Python27\Lib\site-packages下
录制http://y.duowan.com/category/vip 保存为rc python
Python下运行
具体测试用例 定位元素 结合 Xpath checker 和 firebug
Element Locators==test object Map? RFT将所有的页面元素编织成树形的地图,通过键值对来进行精确地定位 Selenium则通过元素定位器来获取页面元素。
Element Locators id = id id locators 指定HTML中唯一的id元素 name = name name locators指定HTML中相同的name元素中的第一个元素 identifier = id identifier locators首先查找HTML中是否存在该id的元素,若不存在,则查找第一个该name的元素
Element Locators dom = JavaScriptExpression dom locator 用JavaScript 表达式来定位HTML 中的元素,注意必须要以"document"开头 例如: dom=document.forms['myForm'].myDropdown dom=document.images[56]
Element Locators xpath=xpathExpression xpath locator 用XPath 表达式来定位HTML 中的元素,必须注意要以"//"开头 例如: xpath=//img[@alt='The image alt text'] xpath=//table[@id='table1']//tr[4]/td[2]
Element Locators link=textPattern link locator 用link 来选择HTML 中的连接或锚元素 例如: link=The link text 在没有locator 前序的情况下如果以"document."开头,则默认是使用dom locator,如果是以"//"开头,则默认使用xpath locator,其余情况均认作identifier locator
Element Locators-xpath XPath 使用路径表达式在 XML 文档中进行导航 XPath 是一门在 XML 文档中查找信息的语言 XPath 包含一个标准函数库 XPath 是 XSLT 中的主要元素 XPath 是一个 W3C 标准
Element Locators-xpath nodename :选取此节点的所有子节点 / :从根节点选取(绝对路径) // :从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置 . :选取当前节点 .. :选取当前节点的父节点 @ :选取属性
Element Locators-xpath <?xml version="1.0" encoding="ISO-8859-1"?> <tools> <tool name=“RFT”> <use name=“function test”> <free>no!</free> </use> <free>no</free> </tool> <tool name=“loadrunner”> <use name=“performance test”>
Element Locators-xpath <tool name=“selenium”> <use name=“function tester”> <free>yes!</free> </use> <free>yes</free> </tool> <tool id=“jmeter”> <use name=“performance test”></use> <\tool> </tools>
Element Locators-xpath 选出所有的tools所有的子元素 /tools/* 选出文件中的所有元素 //* 选出所有的free元素 //free 注意:这里查找的free元素包括tool和use的子元素
Element Locators-xpath 选出tool下的free元素 //tools/tool/free 选出tools下的第一个tool元素 //tools/tool[1] 选出tools下的最后一个tool元素 //tools/tool[last()] 选出free为no的所有的tool元素 //tools/tool[free=no]
Element Locators-xpath 选出所有含有name属性的tool //tool[@name] 选出name属性为selenium的tool //tool[@name=‘selenium’]
Firebug+xpath checker 启动Firefox工具附加组件
Firebug+xpath checker 启动附加组件后点击获取附件组件,输入firebug回车,选中firebug后点击天机制Firefox。同样的方法添加xpath checker
Firebug+xpath checker 如右图打开firebug或者直接点击F12打开firebug
Firebug+xpath checker 如下图点击按钮后鼠标置于页面处,可迅速定位到页面元素对应的代码
Firebug+xpath checker 右键菜单中打开View Xpath
Firebug+xpath checker 如右图所示可以根据firebug中的定位后的代码写出对应页面元素的xpath,然后在xpath checker中进行检查,若xpath正确则返回对应的页面元素