线性测试框架
线性测试框架(Liner Automation Framework),基于录制回放型的框架,如Web自动化测试中的UFT(QTP)、Selenium IDE、Katalon Studio、LoadRunner、Badboy、Postman、Appium、HttpRunner等
- 优点:上手容易,甚至无需编码,用例产出快。
- 缺点:数据耦合性高,模块复用度低,抗变动能力较弱。
- 适用:稳定小型项目,或需要快速产出大量用例的场景。
基于模块、库结构测试框架
基于模块的测试框架(Modular Based Testing Framework),对被测产品各个模块的操作进行封装,用例调用模块进行操作,如Page Object Module模式。
库结构测试框架(Library Architecture Testing Framework)在模块型框架的基础上扩展了跨模块的业务操作,即常见的业务场景,使常用的业务流程可以被复用。
- 优点:简化用例操作(直接调用模块封装方法,操作应用),易扩展(编写新的模块),后期维护成本较低(通过修复模块操作来修复失效方法);
- 缺点:框架前期工作量较高(需要编写大量的模块),数据耦合在用例中,未做分离。
- 适用:海量用例的大型项目,特别是需要考虑后期维护成本的项目;
数据驱动型框架
数据驱动型测试框架(Data-Driven Testing Framework),将数据和测试用例分离,使用文本、CSV、Excel、JSON、YAML或来自于数据的数据来批量测试某个场景,如HttpRunner。
- 优点:使用者(执行者)无须编码,仅需按格式提供数据;针对同一场景快速产出大量用例;
- 缺点:每个场景需要单独开发,所有的数据的场景要求一致;
- 适用:高频场景,正向场景(异常场景的处理流程各有不同)。
关键字驱动型框架
关键字驱动型测试框架(Keyword Driven Testing Framework),以表格或其他形式编写用例,将文本格式的特定关键字转为函数进行执行的框架,如Robot Framework。
表10.1 关键字驱动框架测试用例
Test Cases | ||
---|---|---|
测试百度搜索 | ||
Open Browser | https://www.baidu.com/ | chrome |
Input Element | id=kw | 临渊 |
Click Element | id=su | |
Close Browser |
- 优点:使用者编写用例上手容易,关键字(函数)可以复用;
- 缺点:关键字开发需要一定的工作量,数据处理灵活性不如直接使用代码灵活。
- 适用:Web、App等界面自动化。
行为驱动开发型框架
行为驱动开发型框架(Behavior Driven Development Framework),简称BDD。BDD是ATDD验收测试驱动开发的一种升级版,根据明确的预期行为(一组场景)来进行开发和测试。
如一个后台登录功能,可以描述如下:
Feature: 登录功能
Scenario: 正常登录
Given 用户名 admin 密码 123456
When 打开后台页面
And 输入用户名
And 输入密码
And 点击登录按钮
Then 页面中应不包含 您输入的帐号信息不正确
Scenario: 账号为空登录
Given 用户名为空 密码 123456
When 打开后台页面
And 输入用户名
And 输入密码
And 点击登录按钮
Then 页面中应包含 您输入的帐号信息不正确
这种预期行为使用一种特定的规范格式进行描述,旨在消除需求从客户,到产品经理,再到开发/测试时的信息失真问题。
- 优点:场景明确、上手简单;
- 缺点:每个场景步骤需要使用脚本实现,步骤和场景复用度低。
- 适用:面向客户的产品,Web、App等界面自动化。
混合型框架
混合型框架(Hybrid Testing Framework),混合使用各种模式搭建的框架。
- 优点:融合了各种框架的优点、灵活型较高。
- 缺点:搭建测试框架的工作量较大。
- 适用:被测场景种类较多,需要各种灵活的模式。