Web UI自动化框架搭建

本篇博文只从项目架构角度,提供一些建议供参考。不涉及具体代码编写。目前市场上主流的免费开源工具就是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,与页面类对应,放在项目同一层。

方法库

方法库主要放对应页面的元素操作方法,方法库对于构成最终的自动化测试脚本很重要,因为脚本里的一步步操作,基本要靠方法库来实现。

方法库里的方法,最好保持原子性,完成一些密不可分的基本操作。方法不应过长。过长的最好按照功能步骤,拆分开来。

除了页面对应的方法类库以外,每个项目,一般都会有自己的一些公用方法类库,比如,ExcelUtil类库,存放excel操作方法;BaseUtil类库,放一些更加公用基础的方法,生成唯一的时间戳字符串,字符串合并等。


层级结构组织

层级结构组织,其实就是将页面元素组织起来,构成页面。再通过合理的继承,让处于类关系图谱最底层的一个个的auto test case拥有合适的父类页面,父类方法库,以完成自身的测验步骤、测验点。

一般而言,将浏览器的启动,关闭等操作,放到root class里,这样所有的最底层的auto test case就可以仅关注于自身步骤,验证,不用重复编写测试前浏览器启动,测试结束后浏览器退出等操作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章