自动化测试为什么要用PageObject?

(19) 2024-02-28 12:12

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说自动化测试为什么要用PageObject?,希望能够帮助你!!!。

自动化测试为什么要用PageObject?_https://bianchenghao6.com/blog__第1张

奇技指南:UI自动化的一个通病,就是在做UI自动化时,当页面发生变化,该页面的所有操作逻辑都要进行修改。PageObject就是为解决这个问题而生的!本次来看看使用PageObject的好处。

本文首发于Qtest之道,已授权转载。

UI自动化的通病,在做UI自动化时,当页面发生变化,该页面的所有操作逻辑都要进行修改。比如需要定位一个元素,进行点击操作,你可能会这样写:

自动化测试为什么要用PageObject?_https://bianchenghao6.com/blog__第2张

而你又有很多地方用到了这个元素,当哪天这个元素发生了变化,你又不得不去修改关于这个元素的所有地方。之所以这样,是因为页面元素和页面操作逻辑没有进行有效分离。

PageObject:

为了解决上述问题,PageObject应运而生。

何为PageObject?PageObject是指UI界面上用于与用户进行交互的对象。可以是整个页面,也可以是页面上的元素。该模式将面向过程转变为面向对象(页面对象),将测试对象及单个的测试步骤封装在每个Page对象中,以page为单位进行管理。可以使代码复用,降低维护成本,提高程序可读性和编写效率。其思想就是分层,把页面元素和操作分开,当页面发变化,只需要修改底层查找元素的方法即可。如下图:

自动化测试为什么要用PageObject?_https://bianchenghao6.com/blog__第3张

po的好处就出来了,方便后期代码维护、减少代码冗余。

自动化测试为什么要用PageObject?_https://bianchenghao6.com/blog__第4张

PO模式封装:

appium层 //放关于appium初始化,销毁等基础类

pages层 //放各个页面查找元素类

operation层 //放各个页面元素的操作逻辑类

test层 //放各个页面的相关case类

自动化测试为什么要用PageObject?_https://bianchenghao6.com/blog__第5张

使用PageObject后,页面元素查找,页面元素操作,业务逻辑,测试脚本全部解耦,当页面发生变化时,只需要修改pages层即可。

pages层代码:

自动化测试为什么要用PageObject?_https://bianchenghao6.com/blog__第6张

operation层代码:

自动化测试为什么要用PageObject?_https://bianchenghao6.com/blog__第7张

test层代码:

自动化测试为什么要用PageObject?_https://bianchenghao6.com/blog__第8张

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

上一篇

已是最后文章

下一篇

已是最新文章

发表回复