如何设计自动化测试脚本
企业中如何设计自动化测试脚本呢?今天我们就来为大家分享一些干货.
一.线性设计
线性脚本设计方式是以脚本的方式体现测试用例, 是一种非结构化的编码方式, 多数采用录制+回放的方式, 测试工程师通过录制+回访的访问对被测系统进行自动化测试. 录制的脚本会产生某些冗余的代码内容或函数及脚本.
线性设计的特点:
1.1 测试用例已脚本方式编写
1.2 脚本开发成本较低
1.3 对测试人员编码的无经验要求
1.4 不需要提前对测试框架进行设计与开发
1.5 测试过程中的数据是写死在脚本中的. 会出现冗余
1.6 脚本的维护比较困难, 成本非常高
1.7 测试人员各自为主, 缺少复用
二.结构化设计
结构化设计是以函数/方法的形式进行编写, 主要是通过循环来控制测试流程及测试脚本, 如使用for循环、while循环、if...else...等循环或分支语句实现对函数的不同条件的判断及场景的调用.
结构化设计的特点:
2.1 测试用例在脚本中通过函数的方式体现
2.2 测试脚本编码能力较线性脚本有更高的要求
2.3 需要测试人员具备良好的代码设计能力与编码能力
2.4 测试数据依然在脚本中写死
2.5 相对较为稳定, 所需要的维护成本较线性脚本相对较低
三.共享化设计
共享化设计是将脚本中公共的函数/内容在整个测试过程中进行共享, 方便其它脚本的调用, 减少了代码的冗余. 让被测系统实现组件化的互相调用.
共享化设计的特点:
3.1 测试用例在脚本中编写,同时需要便于其它脚本的调用
3.2 开发成本较低, 减少了大量的冗余脚本内容
3.3 对测试人员的代码设计能力有较高要求
3.4 由于需要组件化进行设计, 对测试人员的编码能力要求较高
3.5 脚本的维护和成本较低
四.数据驱动设计
数据驱动设计是将测试数据与测试脚本进行分离,以外部数据文件的方式进行测试数据管理, 减少耦合, 在测试过程中需要对测试数据进行修改时, 仅需修改外部数据文件中的内容即可,测试脚本中的代码内容不做改动, 从而减少频繁修改代码产生的问题
数据驱动设计的特点:
4.1 测试用例的脚本与测试数据分离, 需要测试数据时进行I/O读取
4.2 参数化数据读取与写入相对来说, 对测试人员的编码能力进一步提高
4.3 测试数据独立进行保存与维护
4.4 测试脚本的维护成本较低
4.5 一般推荐在需要测试正反向测试时使用
4.6 测试数据能够复用, 进一步减少了代码的冗余情况
五.关键字驱动设计
关键字驱动是将所有需要执行的业务操作中的公共的操作独立进行封装, 所有业务调用公共的操作方式, 而对于程序的控制也以函数的方式进行驱动, 即公共操作, 程序控制, 测试数据都通过外部数据文件进行管理和读写, 关键字驱动的基础的数据驱动.
关键字驱动设计的特点:
5.1 关键字驱动对于测试人员的编码能力要求非常高, 需要大量的编码经验积累
5.2 关键字驱动中测试用例是以外部数据文件的方式进行组织的
5.3 对于整体测试框架的设计能力要求较高
5.4 能够极大的降低其它测试人员的编码能力要求
5.5 整体框架的维护成本非常低
5.6 支持多个项目复用, 同一套框架可以不断复用在其它的项目中