首先先了解一下各部分
- Python:编程语言这个就不说了
- selenium:
-
1.什么是selenium
Selenium是基于WEB应用的验收测试工具集合,直接运行在浏览器中,通过一系列命令来模拟用户操作,Selenium可以将这些命令转化成实际的HTTP请求在浏览器中运行 。
2.selenium家族族谱
从2004年至今,selenium经历了3个版本,即Selenium1.0,Selenium2.0,Selenium3.0
2.1 Selenium1.0
简单的公式:Selenium 1.0 = Selenium IDE + Selenium Grid + Selenium RC
Selenium IDE:是嵌入到Firefox浏览器中的一个插件,实现简单的浏览器操作的录制与回放功能。
Selenium Grid:selenium分布式
Selenium RC:Selenium1.0的核心,Selenium RC 支持多种不同语言编写的自动化测试脚本,在浏览器中运行JavaScript应用,使用浏览器内置的JavaScript 翻译器来翻译和执行selenese命令(selenese 是selenium命令集合)。通过Selenium RC的服务器作为代理服务器去访问应用,从而达到测试的目的。
2.2 Selenium 2.0
Selenium2.0 = Selenium1.0 + WebDriver
Selenium 2.0的核心为WebDriver,WebDriver的工作原理是:
WebDriver是通过原生浏览器支持或者浏览器扩展来直接控制浏览器。WebDriver针对各个浏览器而开发,除了Firefox浏览器 之外,使用其他浏览器都需要浏览器驱动,与浏览器紧密集成,因此支持创建更高级的测试,避免了JavaScript安全模型导致的限 制。除了来自浏览器厂商的支持之外,WebDriver还利用操作系统级的调用,模拟用户输入。
2.3Selenium 3.0
selenium3.0在2.0的基础上增加了对win10系统的Edge浏览器和Mac系统Safari浏览器的支持,并且在启动Firefox浏览器时也必 须使用浏览器驱动geckodriver.去掉了Selenium RC,因此selenium 3.0的学习核心也是WebDriver.
3. Selenium学习路线---从元素定位开始
需要熟悉webdriver API ,API就是selenium 所定义一方法,用于定位,操作页面上的各种元素。
- Page Object:POM:Page Object Model(页面对象模型)
模式是使用Selenium的广大同行最为公认的一种设计模式。在设计测试时,把元素和方法按照页面抽象出来,分离成一定的 对象,然后再进行组织。
Page Object模式,创建一个对象来对应页面的一个应用。故我们可以为每个页面定义一个类,并为每个页面的属性和操作构 建模型。体现在对界面交互细节的封装,测试在更上层使用页面对象,在底层的属性或者操作的更改不会中断测试。减少代码 重复,提高测试代码的可读性和可维护性。
代码设计分层
- 对象库层:主要是该页面可操作的对象的获取
- 逻辑层:是对该页面的对象进行操作
- 业务层:真正的case,调用逻辑层并传入数据
- unittest:主要适用于做断言
- PyUnit(unittest) 是 Python 自带的单元测试框架,用于编写和运行可重复的测试。PyUnit 是 xUnit 体系的一个成员,xUnit 是众多测试框架的总称,PyUnit 主要用于进行白盒测试和回归测试。
- PyUnit 是一个简单、易用的测试框架,其具有如下特征:
- 使用断言方法判断期望值和实际值的差异,返回 bool 值。
- 测试驱动设备可使用共同的初始化变量或实例。
- 测试包结构便于组织和集成运行。
- unittest 要求单元测试类必须继承 unittest.TestCase,该类中的测试方法需要满足如下要求:
- 测试方法应该没有返回值。
- 测试方法不应该有任何参数。
- 测试方法应以test 开头。
- 具体学习api:http://c.biancheng.net/view/2679.html