【Python自动化测试】——自动化测试基础
自动化测试基础
- 1.分层的自动化测试
- 2.适合自动化测试的项目
- 3.如何学习UI自动化测试
- 4.Selenium简介
- 5.appium简介
1.分层的自动化测试
测试金字塔
测试金字塔测试金字塔的概念是由敏捷大师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
和appium API
提供了操作Web/App
的类和方法。我们只需要使用这些方法即可操作Web
页面上的元系或App
上面的控件。
单元测试框架
如何定义一条测试用例、如何组织和运行测试用例,以及如何统计测试用例的运行结果,都是由单元测试框架实现的。
4.Selenium简介
Selenium三大版本
Selenium1.0
Selenium1.0
也被称为Selenium RC(Remote Control)
,它使用基于JavaScript注入的方式来实现自动化测试。具体而言,Selenium1.0会向被测试的Web
页面中注入JavaScript
代码,通过这些代码来控制浏览器的行为。不过,这种方式存在一些缺点,比如容易受到页面结构变化的影响,并且稳定性欠佳,目前该版本已经被官方正式弃用。
Selenium2.0
Selenium2.0
是Selenium
和WebDrive
r两个项目的合并,即Selenium1.0 + WebDriver = Selenium2.0
,所以Selenium2.0又名WebDriver
。WebDriver曾经是Selenium的竞争对手,它能弥补Selenium1.0的一些不足。该版本提供了对各种浏览器的自动化操作接口,与不同浏览器之间的兼容性较好,具有较强的稳定性和可靠性。
Selenium3.0
Selenium3.0
是现在比较先进且广泛使用的版本。这一系列是较为成熟和稳定的版本之一,在功能和稳定性上相对完善,对各类浏览器的支持较好,同时还提供了丰富的API和工具集。不过由于其较老的架构设计,可能存在一些性能方面的问题,需要进行优化和调整。
(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内容交互的应用。