本篇博文只从项目架构角度,提供一些建议供参考。不涉及具体代码编写。目前市场上主流的免费开源工具就是Selenium。大家可以根据自己项目技术栈,选择合适的语言+外加Unit Test框架,来构建自己的Web UI自动化项目。比如:Java+Selenium+JUnit/TestNG,Python+Selenium+UnitTest等。
整体而言,Web UI自动化框架主要包含以下三部分:
1. 页面元素定义
2. 方法库
3. 层级结构组织
有了这三部分,一个框架基本就搭起来了。再在层级结构最底层,添加自动化测试用例,让它继承自合理的父页面,并能调用合适的方法库,完成脚本运行和验证即可。
页面元素定义
关于如何做好页面元素定义,我在之前的博客里有过一些建议:如何让Web UI自动化测试更加稳定
这里还想在补充几点:
- 一般来说,一个页面对应一个类。这个类里包含了这个页面的各个控件元素。每个元素,以类的属性成员方式存在,且这个属性不能被子类更改(在Java里,可以定义成private属性,然后提供public/protected get方法。C#简单些,定义成public属性,然后仅提供get方法)
- 页面类里应只包含控件元素定义,不要掺杂方法。页面对应的方法应新起一个方法库类,名字可以叫做xXPageFuncLib,与页面类对应,放在项目同一层。