软件测试52讲笔记--13 效率为王:脚本与数据的解耦 + Page Object模型

这是我购买的”极客时间”上的一套课程的笔记,总共52讲,定期对其中的内容做一笔记,巩固学习内容。

13 效率为王:脚本与数据的解耦 + Page Object模型

测试脚本和数据的解耦

在测试脚本中硬编码测试数据,脚本灵活性将会非常低。
数据驱动测试的基本概念:把测试数据和测试脚本分离,然后把测试输入数据单独放在一个文件中。

  1. 数据驱动实现了测试脚本和数据的解耦
  2. 数据驱动的数据文件中可以包含测试输入数据、测试验证结果数据,甚至可以包含测试逻辑分支的控制变量。
  3. 该思想不仅适用于GUI测试,还可以用于API测试、接口测试、单元测试等。

页面对象模型

早期GUI自动化测试,脚本由一系列的页面控件的顺序操作而成,像操作级别的流水账,可读性较差,很难看出脚本更高层的业务测试流程,通用步骤会大量重复出现。
因此,要利用模块化设计思想。
但是这样,还是没有完全解决问题,并且又引入了新的问题。因此,下面介绍了页面对象模型。
**页面对象模型的核心理念:以页面(web page或者native app page)为单位来封装页面上的控件以及控件的部分操作。测试用例更确切地说是操作函数,基于页面封装对象来完成具体的界面操作,最经典的模式是:XXXPage.YYYComponent.ZZZOperation.
基于这个思路,作者也给出了login函数的相关伪代码,作为参考。
通过这样的代码结构,可以清楚地看到是在什么页面执行什么操作,代码的可读性以及可维护性大幅度提高。
【心得】这部分内容,如果没有进行实践,可能很难理解。包括我曾经做过的项目,其实也没有完全使用作者提到的观点,而是使用了另外的方式,实践下来觉得也比较好用。所以理论和实践的紧密结合,才是最关键的。

本文原创首发在我的个人博客https://mmcatt.github.io,同步搬运到简书等平台。