一、什么是自动化测试
自动化测试是指在没有任何人干扰的情况下,可以自动执行测试用例并获得测试结果的软件程序。
自动化测试在很大程度上节省了人力和时间,也没有或很少出现测试误差。一旦自动化测试用例编写好,也不会出现漏测的情况,而且可以无限次运行测试。自动化测试最大限度地减少了多余的手动测试工作
二、什么是框架
框架被认为是一套协议、规则、标准、和指南的组合,这些协议、规则、标准、指南可以作为一个整体纳入或遵循,以便利用框架提供的脚手架的好处。说白了它的作用就是可以帮我们更快更好的完成一件事。
三、自动化测试框架
自动化测试框架是为自动化测试脚本提供执行环境的脚手架。它可以帮助用户高效的开发测试脚本、执行测试脚本和展示测试结果。它是专门为自动化我们的测试工作而创建的系统。
框架应该独立于应用程序,也就是说它可以和任何应用程序一起使用,而不考虑应用程序载测试中的复杂性。它应该是可扩展和可维护的。
自动化测试框架的优势:
1. 代码的可复用性
2. 覆盖范围大
3. 低成本维护
4. 极少的人工干预
5. 方便、可观的报告
自动化测试框架的组成部分:
四、自动化测试框架的类型
· 基于模块的测试框架
· 库架构测试框架
· 数据驱动测试框架
· 关键字驱动测试框架
· 混合测试框架
· 行为驱动测试框架
1)基于模块的测试框架
这种框架将整个“测试中的应用程序”分为许多逻辑和独立的模块。对每个模块,创建一个独立的测试脚本,这些脚本结合在一起时,会构建成更大的测试脚本,代表多个模块,这些模块被抽象层隔开,这样在应用程序的各个部分所做的更改不会对该模块产生影响。
优点:
- 框架引入模块化,更容易、高效的维护
- 模块化使得框架的可扩展性强
- 修改模块后,只需要修改相应部分的脚本即可
缺点:
- 在为每个模块实现测试脚本的同时,测试数据已经嵌入到测试脚本中,这导致使用不同的测试数据进行测试时需要在测试脚本中进行操作
2)库架构测试框架
库体系结构测试框架是建立在基于模块的测试框架之上,但比后者有一些额外的优势。它没有将测试的应用程序划分为测试脚本,而是划分为函数。因此,为测试中的应用程序创建一个由公共函数组成的公共库,当需要时,可以从测试脚本中调用这些库。
它的基本原理就是确定通用的步骤,并将这些步骤分组到公共库下的函数中,在需要的时候在测试脚本中调用这些函数。
比如,一个登录的步骤,可以把它组合成一个函数,并保存到一个库中,登录时可以直接从库中调用这个函数,而不需要重新再编写代码。
优点:
- 跟基于模块的框架一样,也具有易于维护和可扩展性
- 测试脚本中可以使用通用的函数,使得它具有很高的复用性
缺点:
- 像基于模块的框架一样,测试数据嵌入测试脚本中,改变数据需要修改脚本
- 随着越来越多的库的引入,可能会使框架越来越复杂
3)数据驱动测试框架
数据驱动测试框架将测试脚本逻辑和测试数据彼此分离。可以把测试数据单独存储起来,存储数据的可以是 xml文件、excel文件、文本文件、csv文件、ODBC数据库等。一般都是以 key-value 格式存储,方便获取使用。
优点:
- 大大减少了覆盖所有测试场景组合所需的脚本总数
- 测试数据的修改不会影响测试脚本
- 增加了灵活性和可维护性
- 通过更改测试数据,可以实现单个测试流程测试多个场景
缺点:
- 过程比较复杂,可能需要定制测试数据源格式和读取机制
- 需要熟练掌握开发测试脚本的编程语言
- 只有具有相同执行步骤集的相似测试用例才能组合成多组数据。不同的执行步骤集需要不同的测试用例。
4)关键字驱动框架
关键字驱动测试框架是对数据驱动测试框架的扩展,从某种意义上说,它不仅将测试数据从脚本中分离出来,它还将数据测试脚本的特定代码集保存到外部数据文件中。这些代码集被称为关键字,每个关键字都一种操作。关键字和测试数据都是独立于该框架。
优点:
- 除了具有数据驱动测试框架的优点以外,与数据驱动测试框架不同的是,它不要求用户具有脚本知识。
- 单个关键字可用于多个测试脚本
缺点:
- 需要懂得关键字的创建机制,从而可以自己开发关键字
- 随着越来越多的关键字引入,可能会使框架逐渐变得复杂
- 测试用例变得更长且复杂,从而影响测试用例的可维护性
5)混合测试框架
混合测试框架就是上述(模块化,数据驱动和关键字驱动)多中类型框架的组合。就是利用各种类型框架的优点,组合起来的混合型测试框架。
在这种框架中,通过将测试用例结合到模块化测试框架中,从模块化脚本中开发测试用例。每个测试用例都使用一个驱动程序脚本,该脚本使用数据驱动框架中的数据文件和关键字驱动框架中的操作文件。
优点:
- 可以集各种类型测试框架的优点于一身
- 模块化且易于维护
- 更少的代码可以处理更多的测试用例
- 一个测试用例可以用多组数据执行
缺点:
- 会比其他类型的测试框架更为复杂一些,例如阅读、维护等
6)行为驱动测试框架
行为驱动测试框架可以让开发人员、测试人员等以易于阅读和理解的格式实现功能验证的自动化。可通过自然语言来描述测试功能,测试场景,测试步骤,测试结果等
优点:
- 对开发人员和测试人员友好,非常易懂
- 不一定要求用户熟悉编程语言