测试开发 – 十年磨一剑(五)UI自动化测试框架与分层结构

一、UI自动化测试框架

Selenium是自动化工具,工具,工具!面试的时候不想再听到谁说用的测试框架是Selenium。

构成框架的组件,最起码应该具备以下的功能,才能够称为一个完整的自动化测试框架:

1. 日志

Java常用的日志工具有Log4j 、Slf4j 、Logback。

2. Report

博主用过ReportNG,或者将数据Statistics的数据写入excel文件、生成图表,需自主实现。

3. Source、Common

自主实现。

4. TestCase、TestData、TestSuite

多用TestNG管理Case和Suite。TestNG提供了@DataProvider注解,它可以管理一定量的数据代入测试用例依次执行,是数据驱动的雏形。@DataProvider注解的数据需要代码实现,如要读取csv、excel、txt等文件,则需要自主实现,有很多文章写这个,自行搜索查看便是。

5. Statistics

大部分测试框架不包含此部分,需要测试人员手动统计分析,可记录自动化测试用例执行结果数据,分析,自主实现。

6. Continuous

一般是借助其他工具如Jenkins自主实现。

二、UI自动化测试框架的分层结构

测试框架的实现,各有各的特色,适合产品或者公司的自动化测试框架,就是好的测试框架。这里只说一下常见的UI自动化测试框架的分层结构:基础层,对象层,操作层,用例层。

1. 基础层

这一层封装Selenium或其它工具的相关操作和一些工具类。

2. 对象层

先说一个概念,PO:PO模式,全称Page Object模式,是Selenium中的一种测试设计模式,主要是将每一个页面设计为一个Class,其中包含页面中需要测试的元素(按钮,输入框,标题 等),这样在写测试脚本时,可以通过调用页面类来获取页面元素。当页面某个元素id或者位置变化时,这时不用更改测试脚本,只用改下对应的页面类就行了。
这一层用来保存页面对象,这一层大大提高了测试框架的复用性和可维护性,在测试框架中起到核心作用,实现方法各不相同。

3. 操作层

这一层基于对象层的页面对象,实现页面上的相关操作,大部分都是基础操作,供用例层反复使用,降低维护成本。特殊操作多数只是用一次或者少次,在个别用例中单独实现即可。

4. 用例层

这一层是实际的测试脚本,为保持代码美观、可读性高,尽量多备注,并且不出现基础层代码如定位元素等等。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年11月10日
下一篇 2021年11月10日

相关推荐