一、什么是PO模式
全称:page object model 简称:POM/PO
PO模式最核心的思想是分层,实现松耦合!实现脚本重复使用,实现脚本易维护性!
![af1fe9500d5a5425ae8d5b886cd718dd.png](https://i-blog.csdnimg.cn/blog_migrate/bc98579bad913e7fb69896e5032c2f56.png)
主要分三层:
1.基础层BasePage:封装一些最基础的selenium的原生的api方法,元素定位,框架跳转等。
2.PO层:元素定位、获得元素对象,页面动作
3.测试用例层:业务逻辑,数据驱动!
三者的关系:PO层继承继承层,测试用例层调用PO层!
二、什么是自动化测试框架
![c7f7cfef4442fe3e2bf7c6aeed46f301.png](https://i-blog.csdnimg.cn/blog_migrate/6f1a77f7f9d10c67936b14b2ff716aa3.jpeg)
说到自动化框架,我相信很多人应该都听过这个词,但是不知其到底是个什么东西,为什么要用自动化框架。有很多人堆自动化框架都是懵懵懂懂,就跟谈恋爱一样,朦胧美!
一个好的自动化测试框架是可以让不那么懂技术的人也可以写自动化测试脚本的,
一个好的自动化测试框架可以减少自动化测试中脚本管理和维护当中的人力物力和财力。
其实自动化框架的一个最大的意义在于可重用性。因为在框架里,你可以实现很多的通用功能来简化整个脚本的开发过程。并且生成美观的测试报告。
三、非PO模式和PO模式优缺点对比
![046d79fb4eb8351a3727e61d31019af0.png](https://i-blog.csdnimg.cn/blog_migrate/3d1b2c52e3ca19dbf9435404977a187a.png)
![a356d9fb6987f0053cc6b079a8763cdf.png](https://i-blog.csdnimg.cn/blog_migrate/2aaf8681ece5a998a0048879590a57c9.png)
四、如何从0到1搭建PO模型
![240f0cd03e09e4bd4cdbe1b2a8842ef3.png](https://i-blog.csdnimg.cn/blog_migrate/ad0d12f2b3f56375580105dd2ccbf8cd.png)
非PO模式举个栗子:有如下百度搜索脚本:
import
如何把上述栗子改成PO模式呢?
1、基础层BasePage
from
2、PO层:封装百度页面元素定位,元素对象以及页面操作
from
3、测试用例层:业务逻辑和数据驱动
from
从上面的PO案例:让我们更加了解清晰PO的优点在于:
1.POM把页面元素定位和业务操作流程分开。实现松耦合。2.UI元素的改变不需要修改业务逻辑代码。只需要找到对应的PO页修改定位即可,数据代码分离3.PO能使我们的测试代码提高代码的可读性,高复用性,可维护性。
五、自动化测试框架和PO的关系
![bee23590d70a170467fa79e9e19d5250.png](https://i-blog.csdnimg.cn/blog_migrate/d712952bb18aa48bea2afcb170b2dfa6.jpeg)
自动化框架=po+各种封装(日志处理封装,全局配置文件的封装,数据库连接的封装,excel操作封装,数据驱动封装等)
其实想要胜任UI自动化测试岗位还需要掌握以下内容:
1.python或java
2.selenium的API
3.unittest/pytest单元测试框架
4.htmltestrunner/allure测试报告
5.数据驱动dtt(excel,yaml,mysql)或pytest中的fixtrue
6.关键字驱动:公共类,方法封装,随机数,数据库连接,全局登录
7.全局配置文件处理
8.日志处理
9.断言
10.第三方库
11.git和github或码云集成开发!
12.jenkins持续集成
这些内容在我的知乎当中基本都有涉猎,大家需要什么就去搜索什么吧!
六、总结
全文笔者耗时两小时,纯手打,纯干货,如果您觉得对您有帮助,请点赞,收藏,分享三连!您的支持是笔者最大的动力!
如果你觉得此文对你有帮助,如果你对此文有任何疑问,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣请拉到最上面关注笔者的名字!
一箭三雕:如果你觉得本文对你有帮助,请关注,赞同,分享三连!谢谢!
作者出处:逍遥子:自动化测试po模式是什么?自动化测试po分层如何实现?-附详细源码
转载声明:欢迎转载,但未经作者同意请保留此段声明,并在文章明显位置给出原文链接。