正好给东航做分层自动化测试培训,分层的概念大家一般都有,但是真正怎么做分层的想清楚的不多。
首先先要先明确每一层的目的:
1.单元,验证代码逻辑
2.接口,验证接口输入输出
3.系统,验证业务逻辑
现在针对分层都有成熟的框架:
1.单元级别,包含静态的sonar或者findbug体系,动态上有xunit系列,配合jacoco就可以完成代码覆盖率的有效统计
2.接口,主要基于协议,例如http,dubbo,工具一般jmeter,postman等
3.系统,主要基于界面,常见selenium,appium等
仅仅了解了这些其实还不够的,分层的关键在于每一层用例的粒度细度,单元是否能够包含系统用例的输入,而系统用例是否能够确保覆盖所有的代码,这个时候On-The-Fly就比较有用了。
在完成了基本的驱动设计后,接着就是Mock与数据初始化的问题,这里写几个小tips:
- 在分层测试中单元桩和接口桩是非常常用的,其开发和维护的代价也不小。
- 在很多单元或者接口测试中都会涉及到前后数据依赖的问题,尽量减少对前文依赖的情况,可以通过直接初始化数据的方式来解决部分模块依赖的情况。
- 在完成数据初始化后,提供对数据回滚的支持。