PO(page Object),又称POM,即页面对象模型

作用:把测试页面和测试脚本进行分离,就是把页面封装成类,供测试脚本进行调用

PO模式是selenium自动化中最佳的设计模式之一,

POM一般分为四层:项目=n个页面=base层+pageobject层(页面1,页面2,页面3,。。。。页面n)

第一层:base层  描述每个页面相同的属性及行为

第二层: pageobject层,每个的独有特征及独有的行为

第三层: tesecase层,用例层,描述项目业务流程

第四层:testdata,数据层

优点:

提高代码的可取性

减少代码的重复性

提高代码的可维护性,特别是针对UI界面频繁的页面

缺点:

造成项目结构比较复杂,因为是根据流程进行了模块化处理

PO页面元素封装步骤

1.对应页面创建页面PO代码文件,命名规则:页面功能_page.py,例如首页:index_page.py

2.定义三个类:对象层(xxxPage)/操作层(xxxHandle)/业务层(xxxTask)

3.对象层:

  1. init方法中获取浏览器对象
  2. 自定义方法:封装元素定位方法
  3. 封装元素定位方法需要添加返回值!

4.操作层:

  1. init方法中获取对象层对象,根据类名写对象变量名
  2. 自定义方法封装元素操作方法

5.业务层:

  1. init方法获取操作层对象,根据类名写对象变量名
  2. 自定义方法:封装测试业务逻辑

6.在测试用例文件中,实例化业务层对象,调用测试业务方法,执行测试

UI自动化--PO模式相关推荐

  1. we自动化po模式_Web自动化测试—PO设计模式(一)

    前言 很多的测试同学懂得使用selenium进行Web自动化测试, 但是不知道如何去写一个测试框架,或者说是一个容易维护的web自动化项目. 一.写一个最基本的web自动化测试框架需要会什么? 1. ...

  2. 微信小程序UI自动化实践:python+minium+PO模式(超详细教程附源码供下载)

    文章目录 前言 一.minium介绍 二.安装环境 1. 安装minium doc 2. 安装minium 3. 启动小程序 三.准备知识 1. 启动 2. 配置 3. 命令行运行 4. 元素定位 5 ...

  3. 提升之路--从0开始学web自动化(7)--ui自动化框架搭建PO模式

    ui自动化测试在整个测试过程中占据的地位 在一个项目的测试中手工测试(60%)/自动化测试(40%),不同公司的定义不同.总体是手工占大部分 而自动化测试中,接口自动化占据70% ui自动化测试优先实 ...

  4. 【Web UI自动化测试】Web UI自动化测试之PO篇(全网最全)

    本文大纲截图: 1.PO模式基本介绍[文末免费分享自动化测试学习资源] 概念:PO是Page Object的缩写,PO模式是自动化测试项目开发实践的最佳设计模式之一. 作用:通过对界面元素的封装减少冗 ...

  5. PO设计模式在 UI 自动化中的实践

    PO的思想最早是2013年由IT大佬Martin Flower提出的: https://martinfowler.com/bliki/PageObject.html 没错,就是他 - 没错,就是他 - ...

  6. 阿里软件测试工程师手把手教学:自动化脚本中的设计模式-PO模式详解

    请点击输入图片描述(最多18字) 当我们以脚本的形式编写了大量的自动化测试代码后,很容易发现代码可读性太差了.任何一个测试脚本几乎毫无扩展能力或者说扩展起来只能修改边边角角.一旦被测系统的UI层发生变 ...

  7. Appium PO模式UI自动化测试框架——设计与实践

    阅读目录 1. 目的 2. 意义 3. 设计理念 4. PO模式 5. 框架设计 5.1 目录结构 5.2 实现步骤 5.3 具体实现 5.3.1 base部分 5.3.2 po部分 5.3.3 te ...

  8. UI自动化框架 基于selenium+pytest和PO分层思想

    最近在编写UI自动化框架,现在将一些碎片化东西进行梳理,便于记忆 同时,为了方便于各个模块的独立管理,以及秉承高复用,低耦合的思想,这里是根据PO模型编写,同时将所有的模块进行了独立,页面和元素,以及 ...

  9. UI 自动化测试框架:PO 模式+数据驱动

    1. PO 设计模式简介 什么是 PO 模式? PO(PageObject)设计模式将某个页面的所有元素对象定位和对元素对象的操作封装成一个 Page 类,并以页面为单位来写测试用例,实现页面对象和测 ...

最新文章

  1. node --- [express] cookie/session 机制与 中间件的使用(路由守卫)
  2. 2020科目一考试口诀_二级建造师考试科目有哪些2020
  3. Javaweb MVC设计模式、Modle发展史、项目分层和三层架构
  4. Android 平台下Cordova 调用Activity插件开发
  5. nodejs中的模块的理解
  6. c语言 sprintf_s 参数 通配符,Rust教程(翻译).doc
  7. python入门指南-Python 入门指南
  8. 《HBase权威指南》学习总结
  9. 服务器版dll修复工具,DLL修复工具哪个好?五款修复能力强推荐
  10. FileInputStreamFileOutputStream 和 BufferedInputStreamBufferedOutputStrem的性能测试小案例
  11. h3c 云服务器操作系统,产品技术-H3C CloudOS云操作系统电信版-新华三集团-H3C
  12. linux 卸载dnw命令,《转载》linux下利用dnw烧写文件,dnw安装与配置
  13. 磨金石教育学剪辑是正规的教育机构吗?小白学剪辑怎么样?有什么学习方法?
  14. 【C语言练习——打印空心上三角及其变形】
  15. 以昂扬的斗志,书写青春的热血
  16. 优秀员工是公司最大的财富
  17. linux服务器怎么做快照,云服务器怎么创建快照
  18. 基于Nginx实现访问控制,连接限制离
  19. 手机学python_手机学python的app
  20. 极验验证码逆向(二)

热门文章

  1. python部署到iis_IIS 部署 Python 环境
  2. php面向对象编写计算器,使用面向对象的图形计算器
  3. python程序员是怎么给宝宝取名字的
  4. 重排(reflow) 重绘(repaint)
  5. 集训二报告:简易电子秤1
  6. 高级IDE工具:Elipse的使用
  7. 百度网站抓取诊断自动提交工具
  8. Android QQ空间说说回复功能简介
  9. Amazon EC2创建快照计划任务
  10. 正大国际期货主账户:美债实际利率三季度或重回升势