Python自动化测试

226 阅读4分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 5 月更文挑战」的第1天,查看详情

1. 自动化测试基础

1.分层的自动化测试

image.png

  • 测试金字塔

    测试金字塔的概念是由敏捷大师Mike Cohn首次提出,他的基本观点是:我们应该有更多低级别的单元测试,而不仅仅是通过用户界面运行端到端的高层测试

  • 传统的自动化测试

    基于产品UI层的自动化测试,它是将黑盒功能测试转化为由程序或工具执行的一种自动化测试

  • 分层自动化测试

    倡导的是从黑盒(UI)单层到黑盒和白盒多层的自动化测试,从全面黑盒自动化测试到对系统的不同层次进行的自动化测试

  • 单元自动化测试

  • 对软件中的最小可测试单元进行检查和验证

  • 到底是让测试人员做单元测试还是让开发人员做单元测试呢?

    接口自动化测试

  • 模块接口测试: 主要测试模块之间的调用与返回。它主要强调一个可实现完整功能的类、方法或函数的调用测试。适合开发人员去做

  • 协议接口测试: 主要测试对网络传输协议的调用,如HTTP/SOAP等,一般应用在前端和后端开发之间,以及不同项目之间。既可以由开发人员去做,也可以由测试人员去做

  • UI自动化测试

  • 以实现手工测试用例为主,可降低系统功能回归测试的成本(人力成本和时间成本),UI自动化测试由部分功能测试用例提炼而来,更适合测试人员去做

2.适合自动化测试的项目

  • 适合自动化测试的项目应具备以下几点
  1. 任务测试明确,不会频繁变量
  2. 每日构建后的测试验证
  3. 比较频繁的回归测试
  4. 软件系统界面稳定,变动少
  5. 需要在多平台上运行的相同测试实例、组合遍历型的测试,以及大量的重复任务
  6. 软件维护周期长
  7. 项目进度压力不太大
  8. 被测软件系统开发较为规范,能够保证系统的可测试性
  9. 具备大量的自动化测试平台
  10. 测试人员具备较强的编程能力

3.如何学习UI自动化测试

  • 编程语言

  • 编程语言是基础,自动化测试的项目离不开扎实的编程基础

  • Selenium/appium API

  • Selenium/appium支持多种编程语言(Java,Python,C#,JavaScript)等。Selenium和appiumAPI提供了操作Web/App的类和方法。我们只需要使用这些方法即可操作Web页面上的元素或App上面的控件

  • 单元测试框架

  • 如何定义一条测试用例、如何组织和运行测试用例,以及如何统计测试用例的运行结果,都是由单元测试框架实现的。

4.Selenium简介

image.png Selenium的三大版本

  • Selenium2.0=Selenium1.0+WebDriver
    SeleniumRC与WebDriver的工作方式有着本质的区别
  • SeleniumRC是在浏览器中运行JavaScript应用,使用浏览器内置的JavaScript翻译器来翻译和执行Selenium的命令集合
  • WebDriver通过原生浏览器支持或者浏览器扩展直接控制浏览器。WebDriver是针对各个浏览器而开发的,取代了嵌入被测Web应用中心的JavaScript。WebDriver还可以利用操作系统的调用,模拟用户输入

Selenium3.0=Selenium2.0-Selenium RC

1)Selenium3.0只支持Java8以上版本

2)Selenium3.0中的Firefox浏览器驱动独立了

3)mac OS操作系统集成了Safari的浏览器驱动

4)只支持IE9.0以上版本

5.appium简介

appium简介

  • 当前移动平台上主流的自动化测试工具之一
  • appium=application+Selenium
  • appium是一个开源的自动化测试工具,支持ios和Android平台上的原生应用、Web应用及混合应用

原生应用

是指那些用ios或者Android SDK开发的应用

Web应用

是指可以使用移动浏览器访问的应用

混合应用

是指用原生代码封装网页视图,原生代码和Web内容交互的应用