36
Python+selenium 自 自自自自自自 自自自

Python+selenium 自动化测试入门

Embed Size (px)

DESCRIPTION

Python+selenium 自动化测试入门. 孔祥祝. Selenium 简介. Selenium 是一款基于 web 应用程序的开源测试工具。 Selenium 测试直接运行在浏览器中,就像真正的用户在操作一样。它支持 Firefox 、 ie 、 Mozilla 等众多浏览器。它同时直至 JAVA 、 C# 、 Ruby 、 Python 、 PHP 、 Perl 等众多的主流语言。. Selenium 简介 - 特点. 开源、轻量 运行在浏览器中 简单灵活、支持很多种语言 IED 提供录制功能. Selenium 简介. - PowerPoint PPT Presentation

Citation preview

Page 1: Python+selenium 自动化测试入门

Python+selenium 自动化测试入门

孔祥祝

Page 2: Python+selenium 自动化测试入门

Selenium 简介

Selenium 是一款基于 web 应用程序的开源测试工具。 Selenium 测试直接运行在浏览器中,就像真正的用户在操作一样。它支持 Firefox 、 ie 、 Mozilla 等众多浏览器。它同时直至 JAVA 、 C# 、 Ruby 、 Python 、 PHP 、 Perl 等众多的主流语言。

Page 3: Python+selenium 自动化测试入门

Selenium 简介 - 特点

开源、轻量 运行在浏览器中 简单灵活、支持很多种语言 IED 提供录制功能

Page 4: Python+selenium 自动化测试入门

Selenium 简介

Selenium Core :支持 DHTML 的测试案例(效果类似数据驱动测试),它是 Selenium IDE 和 Selenium RC 的引擎

Selenium IDE : FireFox 的一个插件,支持脚本录制。 Selenium RC : Selenium Remote Control 。后续的系列文章

我会主要针对 Selenium RC 展开介绍。 Selenium Grid :允许同时并行地、在不同的环境上运行多

个测试任务,极大地加快 Web 应用的功能测试。

Page 5: Python+selenium 自动化测试入门

Selenium 简介

Page 6: Python+selenium 自动化测试入门

Selenium IDE 的安装

官网的下载路径http://release.seleniumhq.org/selenium-ide/1.6.0/selenium-ide-1.6.0.xpi

安装:将这个文件拖入到 firefox 窗口

Page 7: Python+selenium 自动化测试入门

SeleniumIDE 的录制功能

如下图启动 Firefox 工具 selenium IDE

Page 8: Python+selenium 自动化测试入门

SeleniumIDE 的录制功能

点击右侧的红色按钮开始录制。需要注意的是启动selenium IDE 后工具默认的就是开始录制。

Page 9: Python+selenium 自动化测试入门

SeleniumIDE 的录制功能

打开百度输入” selenium ide” 点击查询,整个步骤录制后如下。

Page 10: Python+selenium 自动化测试入门

SeleniumIDE 的录制功能

可以点击回放一下。脚本回放成功为淡绿色,验证信息回放成功为深绿色

Page 11: Python+selenium 自动化测试入门

SeleniumIDE 的录制功能

工具默认将操作步骤记录为 html 格式,点击 optionsformat可以选择你要转化的语言。从这儿可以看出 selenium 的强大之处。

Page 12: Python+selenium 自动化测试入门

SeleniumIDE 的录制功能

转化之后再source 面板可以看到转化后的代码,如右图

Page 13: Python+selenium 自动化测试入门

SeleniumRC 的工作原理 -RC 的组成

Page 14: Python+selenium 自动化测试入门

Selenium server 的安装和启动

官网的下载 selenium-server-standalone-2.19.0.jar cmdjava -jar selenium-server-standalone-2.19.0.jar

需要 java sdk

Page 15: Python+selenium 自动化测试入门

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 下

Page 16: Python+selenium 自动化测试入门

录制 http://y.duowan.com/category/vip

保存为 rc python

Page 17: Python+selenium 自动化测试入门

Python 下运行

Page 18: Python+selenium 自动化测试入门

具体测试用例

定位元素结合 Xpath checker 和 firebug

Page 19: Python+selenium 自动化测试入门

Element Locators==test object Map?

RFT 将所有的页面元素编织成树形的地图,通过键值对来进行精确地定位

Selenium 则通过元素定位器来获取页面元素。

Page 20: Python+selenium 自动化测试入门

Element Locators

id = id id locators 指定 HTML 中唯一的 id 元素 name = name name locators 指定 HTML 中相同的 name 元素中的第一个

元素 identifier = id identifier locators 首先查找 HTML 中是否存在该 id 的元素,

若不存在,则查找第一个该 name 的元素

Page 21: Python+selenium 自动化测试入门

Element Locators

dom = JavaScriptExpression dom locator 用 JavaScript 表达式来定位 HTML 中的元素 , 注意必须要以 "document" 开头

例如 : dom=document.forms['myForm'].myDropdown dom=document.images[56]

Page 22: Python+selenium 自动化测试入门

Element Locators

xpath=xpathExpression xpath locator 用 XPath 表达式来定位 HTML 中的元素 , 必

须注意要以 "//" 开头 例如: xpath=//img[@alt='The image alt text'] xpath=//table[@id='table1']//tr[4]/td[2]

Page 23: Python+selenium 自动化测试入门

Element Locators

link=textPattern link locator 用 link 来选择 HTML 中的连接或锚元素 例如 : link=The link text

在没有 locator 前序的情况下如果以 "document." 开头,则默认是使用 dom locator ,如果是以 "//" 开头,则默认使用 xpath locator, 其余情况均认作 identifier locator

Page 24: Python+selenium 自动化测试入门

Element Locators-xpath

XPath 使用路径表达式在 XML 文档中进行导航 XPath 是一门在 XML 文档中查找信息的语言 XPath 包含一个标准函数库 XPath 是 XSLT 中的主要元素 XPath 是一个 W3C 标准

Page 25: Python+selenium 自动化测试入门

Element Locators-xpath

a) nodename :选取此节点的所有子节点b) / :从根节点选取 (绝对路径 )c) // :从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置

d) . :选取当前节点e) .. :选取当前节点的父节点f) @ :选取属性

Page 26: Python+selenium 自动化测试入门

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”> <free>no!</free> </use> <free>no</free> </tool>

Page 27: Python+selenium 自动化测试入门

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> <free>yes</free> <\tool></tools>

Page 28: Python+selenium 自动化测试入门

Element Locators-xpath

选出所有的 tools 所有的子元素 /tools/* 选出文件中的所有元素 //* 选出所有的 free 元素 //free 注意:这里查找的 free 元素包括 tool 和 use 的子元素

Page 29: Python+selenium 自动化测试入门

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]

Page 30: Python+selenium 自动化测试入门

Element Locators-xpath

选出所有含有 name属性的 tool //tool[@name] 选出 name属性为 selenium 的 tool //tool[@name=‘selenium’]

Page 31: Python+selenium 自动化测试入门

Firebug+xpath checker

启动 Firefox 工具附加组件

Page 32: Python+selenium 自动化测试入门

Firebug+xpath checker

启动附加组件后点击获取附件组件,输入 firebug 回车,选中 firebug 后点击天机制 Firefox 。同样的方法添加 xpath checker

Page 33: Python+selenium 自动化测试入门

Firebug+xpath checker

如右图打开firebug 或者直接点击 F12 打开 firebug

Page 34: Python+selenium 自动化测试入门

Firebug+xpath checker

如下图点击按钮后鼠标置于页面处,可迅速定位到页面元素对应的代码

Page 35: Python+selenium 自动化测试入门

Firebug+xpath checker

右键菜单中打开 View Xpath

Page 36: Python+selenium 自动化测试入门

Firebug+xpath checker

如右图所示可以根据 firebug 中的定位后的代码写出对应页面元素的 xpath ,然后在 xpath checker中进行检查,若xpath 正确则返回对应的页面元素