首页 > 代码库 > Selenium学习笔记(1) - 自动化测试体系与原理

Selenium学习笔记(1) - 自动化测试体系与原理

技术体系

  • 基于代码的测试(Code-Based Testing)
  • 基于协议的测试(Protocol-Based Testing)
  • 基于界面的测试(GUI-Based Testing)

工作原理

  • 基于代码
      • 定义期望结果
      • 调用被测对象
      • 对比实际结果
      • 难点:1.前置条件或环境的准备;2.被测代码又大量的异常

      优点:1.容易实施;2.原理简单;3.不需要太复杂的编程能力
  • 基于协议
    • 并非直接调用代码,而是模拟用户发送数据包
    • 典型的接口测试,偏黑盒
    • 非常清楚协议的工作过程
    • 能够利用编程语言来操作协议
    • 经常用于安全性测试,可靠性测试,性能测试,功能测试
    • 多线程,基于协议的测试方法
  • 基于界面
    • 对象识别
      • 坐标定位:按键精灵
      • 图像识别:Sikuli IDE
      • 特征识别:最稳定的手段

软件测试分类

  • 根据项目流程分:单元测试-》集成测试-》系统测试-》验收测试
  • 白盒测试、黑盒测试、灰盒测试
  • 功能测试(逻辑功能测试,界面测试,易用性测试,安装测试,兼容性测试等)、性能测试(时间性能,空间性能)
  • 手工测试、自动化测试(功能自动化测试,性能自动化测试)
  • 冒烟测试、回归测试、随机测试、探索性测试和安全测试

分层的自动化测试

技术分享

  • 单元自动化测试(70%)
    • Java:Junit、TestNG
    • C#:NUnit
    • Python:unittest、pytest
  • 接口自动化测试(20%)
    • 内部接口   
      • 浏览器与服务器的接口。前端调用后端接口获得所需要的数据,通常通过HTTP协议实现前后端的数据传递
      • HTTP协议测试:HttpUnit、Postman
      • Webservice协议测试:SoapUI
    • 外部接口
      • 指调用的接口由第三方系统提供。例如第三方登录,第三方支付等。
  • UI 自动化测试(10%)
    • UI展示层:UFT、Watir、Robot Framework、Selenium等
    • 前端代码:QUnit,针对 JavaScript 的一个强大的单元测试框架

什么样的项目适合自动化测试

  • 软件需求变动不频繁
  • 项目周期较长
  • 自动化测试脚本可重复使用

自动化测试工具简介

  • 代码级
    • 单元测试框架:JUnit,GoogleTest,TestNG,PyUnit,CppUnit...
  • 协议级
    • 接口,性能,安全:SoapUI,JMeter,HP-LoadRunner,IBM-RPT,AppScan...

  • 界面级
    • HP-QTP,Selenium,IBM-RFT,Sikuli IDE,Robot Framework...

前端技术介绍

  • HTML
  • JavaScript
  • XML

前端工具介绍

  • FireBug
  • FirePath
  • Chrome开发人员工具 

 

Selenium学习笔记(1) - 自动化测试体系与原理