一、什么是PO模式

全称:page object model 简称:POM/PO

PO模式最核心的思想是分层,实现松耦合!实现脚本重复使用,实现脚本易维护性!

主要分三层:

1.基础层BasePage:封装一些最基础的selenium的原生的api方法,元素定位,框架跳转等。

2.PO层:元素定位、获得元素对象,页面动作

3.测试用例层:业务逻辑,数据驱动!

三者的关系:PO层继承继承层,测试用例层调用PO层!

二、什么是自动化测试框架

说到自动化框架,我相信很多人应该都听过这个词,但是不知其到底是个什么东西,为什么要用自动化框架。有很多人堆自动化框架都是懵懵懂懂,就跟谈恋爱一样,朦胧美!

一个好的自动化测试框架是可以让不那么懂技术的人也可以写自动化测试脚本的,

一个好的自动化测试框架可以减少自动化测试中脚本管理和维护当中的人力物力和财力。

其实自动化框架的一个最大的意义在于可重用性。因为在框架里,你可以实现很多的通用功能来简化整个脚本的开发过程。并且生成美观的测试报告。

三、非PO模式和PO模式优缺点对比

四、如何从0到1搭建PO模型

非PO模式举个栗子:有如下百度搜索脚本:

import 

如何把上述栗子改成PO模式呢?

1、基础层BasePage

from 

2、PO层:封装百度页面元素定位,元素对象以及页面操作

from 

3、测试用例层:业务逻辑和数据驱动

from 

从上面的PO案例:让我们更加了解清晰PO的优点在于:

1.POM把页面元素定位和业务操作流程分开。实现松耦合。2.UI元素的改变不需要修改业务逻辑代码。只需要找到对应的PO页修改定位即可,数据代码分离3.PO能使我们的测试代码提高代码的可读性,高复用性,可维护性。

五、自动化测试框架和PO的关系

自动化框架=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分层如何实现?-附详细源码
转载声明:欢迎转载,但未经作者同意请保留此段声明,并在文章明显位置给出原文链接。

自动化测试如何保持登录状态_自动化测试po模式是什么?自动化测试po分层如何实现?-附详细源码...相关推荐

  1. 自动化测试po模式是什么?自动化测试po分层如何实现?-附详细源码

    目录:导读 一.什么是PO模式 二.什么是自动化测试框架 三.非PO模式和PO模式优缺点对比 四.如何从0到1搭建PO模型 五.自动化测试框架和PO的关系 六.总结 一.什么是PO模式 全称:page ...

  2. beautifulsoup解析动态页面div未展开_实战|Python轻松实现动态网页爬虫(附详细源码)...

    用浅显易懂的语言分享爬虫.数据分析及可视化等干货,希望人人都能学到新知识.项目背景事情是这样的,前几天我公众号写了篇爬虫入门的实战文章,叫做<实战|手把手教你用Python爬虫(附详细源码)&g ...

  3. 自动化测试po模式是什么?自动化测试po分层如何实现?(附详细源码)

    一.什么是PO模式 全称:page object model  简称:POM/PO PO模式最核心的思想是分层,实现松耦合!实现脚本重复使用,实现脚本易维护性! 主要分三层: 1.基础层BasePag ...

  4. python爬虫技术源码_实战|手把手教你用Python爬虫(附详细源码)

    大家好,我是J哥,专注原创,致力于用浅显易懂的语言分享爬虫.数据分析及可视化等干货,希望人人都能学到新知识.最近J哥做了个爬虫小项目,感觉还挺适合新手入门的,于是迫不及待想分享给大家. 什么是爬虫? ...

  5. java出租车源码_一文教你用java实现出租车计价器设计(附下载源码)

    导读:在我国,出租车行业是八十年代初兴起的一项新兴行业,随着出租车的产生,计价器也就应运而生.但当时在全国没有一家企业能够生产,因而那个时期的计价器是由台湾引进.台湾是计价器的主要生产场地,目前全世界 ...

  6. python 自动化微信小程序_干货 | 微信小程序自动化测试最佳实践(附 Python 源码)...

    原标题:干货 | 微信小程序自动化测试最佳实践(附 Python 源码) 本文为霍格沃兹测试学院测试大咖公开课<微信小程序自动化测试>图文整理精华版. 随着微信小程序的功能和生态日益完善, ...

  7. 微信小程序之授权登录(附完整源码)

    个人博客上已经同步更新了文章,有目录索引,阅读起来比较方便,欢迎大家移步个人博客上读阅~ 个人博客地址:http://zwd596257180.gitee.io/blog/2019/04/15/wec ...

  8. 怎么样设置关闭网页再次登录网页是正常登录状态_学籍系统出现“该账号已登录,不能重复登录”怎么办?...

    学籍系统因保密需要,限定一台电脑只能同时登录一个账号,所以大家在退出学籍系统时,不要直接关闭网页窗口退出系统,这样学籍系统实际仍然在登录状态,当我们重新登录系统时,就会出现提示"该账号已登录 ...

  9. 微信 小程序 python 渲染_干货 | 微信小程序自动化测试最佳实践(附 Python 源码)...

    本文为霍格沃兹测试学院测试大咖公开课<微信小程序自动化测试>图文整理精华版,进阶学习文末加群! 随着微信小程序的功能和生态日益完善,很多公司的产品业务形态逐渐从 App 延升到微信小程序. ...

最新文章

  1. 半木夏低风险交易记录二
  2. PhantomJS快速入门教程(转)
  3. web安全---XSS利用平台BLUE-LOTUS安装与使用
  4. 判断两个数组中是否存在相同的数字
  5. C++ vector越界的问题
  6. JAVA笔记:double四舍五入并保留两位小数的方法
  7. 对Spring的一些理解
  8. 在Java编程中,为什么char类型数组可以直接用数组名打印,而其他类型数组打印结果而是地址值。
  9. 一张图了解大数据概念,大数据应用场景总结
  10. java随机答题器_Advanced Random Auto Clicker免费版下载-多合一随机自动答题器 v4.21 免费版 - 安下载...
  11. D5渲染器电脑硬件配置Vol.1——操作系统丨显卡
  12. 初识文件管理、文件的逻辑结构
  13. SQL列转行及行转列
  14. 无偏性、有效性、一致性
  15. 前端开发中需要用到的变换矩阵(2D游戏适用)
  16. 让更多的人知道如何用C#操作斑马条码打印机
  17. Emlog程序广告插件
  18. 文件及文件夹操作- File类、Directory 类、FileInfo 类、DirectoryInfo 类
  19. matlab的phim,matlab-LSQCURVEFIT函数的使用问题
  20. 计算机鼠标不动了,鼠标不动了怎么办,教您鼠标不动了怎么办

热门文章

  1. HTML 5--Grouping and Nesting Styles
  2. php yii框架使用MongoDb
  3. 2015年主流的页面导航菜单设计
  4. iOS8设置应用图标红点的权限问题
  5. 通过HTML5 Visibility API检测页面活动状态
  6. 素数/质数的判断(C++)
  7. Dell PowerEdge R610 iDRAC6 远程控制卡设置手册
  8. Oracle常见操作和命令
  9. 1 ELK安装部署并监控nginx
  10. 使用fail2ban防止暴力破解ssh及vsftpd密码