python+selenium+unittest+pageobject测试环境搭建(一)

首先先了解一下各部分

  • 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模式,创建一个对象来对应页面的一个应用。故我们可以为每个页面定义一个类,并为每个页面的属性和操作构           建模型。体现在对界面交互细节的封装,测试在更上层使用页面对象,在底层的属性或者操作的更改不会中断测试。减少代码         重复,提高测试代码的可读性和可维护性。

      代码设计分层

  1. 对象库层:主要是该页面可操作的对象的获取
  2. 逻辑层:是对该页面的对象进行操作
  3. 业务层:真正的case,调用逻辑层并传入数据
  • unittest:主要适用于做断言
  • PyUnit(unittest) 是 Python 自带的单元测试框架,用于编写和运行可重复的测试。PyUnit 是 xUnit 体系的一个成员,xUnit 是众多测试框架的总称,PyUnit 主要用于进行白盒测试和回归测试。
  • PyUnit 是一个简单、易用的测试框架,其具有如下特征:
  • 使用断言方法判断期望值和实际值的差异,返回 bool 值。
  • 测试驱动设备可使用共同的初始化变量或实例。
  • 测试包结构便于组织和集成运行。
  • unittest 要求单元测试类必须继承 unittest.TestCase,该类中的测试方法需要满足如下要求:
  • 测试方法应该没有返回值。
  • 测试方法不应该有任何参数。
  • 测试方法应以test 开头。
  • 具体学习api:http://c.biancheng.net/view/2679.html

你可能感兴趣的:(UI自动化测试)