5、设计自动化测试工程的架构
在规划好了自动化测试工程后,我们就需要设计自动化测试工程的架构了。说起架构感觉有点儿玄乎,不太明白,其实我们可以换个说法:就是如何管理你的自动化测试用例?
自动化测试维护成本是相当高的,被测试对象的任何变动都有可能影响到我们的自动化测试用例。而使用场景也不同,如测试环境回归测试,仿真环境回归测试,线上场景回归测试和监控需求等,都要求我们提前需要对测试工程进行有效的设计。方便我们维护测试用例,灵活使用测试用例。
为了达到这个目的,我们对我们的自动化测试工程进行如下的架构设计:
(1)公用函数层,CommonFunction:这一层相当于一个package,用来存放所有测试用例都用到的公用方法,公用类,数据操作等。
(2)测试用例层,TestCases:本层存放具体的测试用例,通过调用公用函数,读取测试数据来完成相应的自动化测试用例。而每个具体的测试用例文件中,没有相应的测试数据及操作,只是具体的用例流程。
(3)测试数据层,TestData:存放具体测试用例用到的测试数据,每个测试数据文件对应一个测试用例文件,在测试用例中进行区分。测试用例文件和测试数据文件同名,同一类测试数据可以放到一个文件中。
(4)测试用例集,TestSuites:不同的测试用例的使用场景不同,我们可以根据需要来组织不同的测试用例集,产生测试报告等操作。
经过上面的四层划分后,我们的测试工程如图5.1所示:
5.1 四层架构的自动化测试工程
四层架构的优点:
(1)减少代码量。引入了通用函数层,我们可以提取出所有公共操作,然后再写具体的测试用例的时候,我们只需要调用公共函数组合用例就可以了。前期需要补充公用函数 ,后期用例只需要调用即可。
(2)便于维护。自动化测试用例的维护一般都是测试数据的维护,操作步骤的维护。而在我们这个架构下,维护测试数据只需要修改testdata层中的文件;维护操作步骤,只需要修改testCases中的函数调试,清晰明了。
(3)使用灵活。通过在testsuites层创建不同的测试用例集文件,我们可以灵活地组织我们的测试用例。在不同的场景下,调用不同的测试用例集。
(4)便于团队开发。大家可以在同一的架构下开发不同业务线的测试用例,可以统一使用公用函数,但前提是大家一定要统一编码规范,添加详细的注释。