码迷,mamicode.com
首页 > 其他好文 > 详细

selenium(10)-PageObject模式的解释

时间:2020-06-21 00:12:16      阅读:71      评论:0      收藏:0      [点我收藏+]

标签:维护   格式   网站页面   str   创建   数据   优势   按钮   密码   

【前言】

  • 在UI自动化测试中,PO是目前最为主流,也是公认最佳的设计模式
  • UI自动化测试最初是通过关键字驱动+数据驱动的形式来实现,然后升级到PO模式
  • 下面就谈谈这2种模式关键字驱动+数据驱动   和 PO模式分别是什么样的

 

关键字驱动+数据驱动

什么是关键字驱动

  • 简单而言,就是将Selenium常用功能进行二次封装
  • 譬如:把查找元素、点击、输入等原生方法进行封装
  • 特点:可以让不懂代码的测试人员也能做自动化测试,彻底地实现测试步骤、测试数据和程序的分离

 

什么是数据驱动

  • 固定的程序,固定的测试步骤,使用不同的数据进行测试【需要多组数据来测试】
  • 将代码和数据进行分离,单纯由数据组成文件,再由文件来驱动关键字,最终实现整个自动化的流程

 

什么是关键字驱动+数据驱动

  • 读取数据,将固定格式的数据进行拼接【读取数据】
  • 拼接后的内容作为关键字所需要的参数,进行传入【传入数据】
  • 调用关键字,将执行结果和预期结果进行对比,从而获取单条测试用例执行是否通过的结果【执行关键字,断言结果】

关键字驱动+数据驱动是一种设计模式哦! 

 

PO模式

什么是PO模式

  • PO模式是page object model的缩写,是一种设计模式
  • 把待测页面当成一个页面对象,一般包含了元素对象的定位和元素操作方法,将页面对象和真实的网站页面一 一映射起来
  • 比如一个登录页面,使用PO模式后,操作的步骤如下:
    1. 会先创建一个class,该class就是登录页面对象类
    2. 类的属性:用户名输入框,密码输入框,登录按钮的webElenent
    3. 类的方法:各种元素操作的方法
    4. 方法里面会调用对象库层的二次封装Selenium的方法
    5. 测试层从页面操作层调用操作方法,写成测试用例,这种模式可以做到定位元素与测试用例分离
    • 所以这样的设计理念就是PO模式

 

PO模式的分层

po模式一般可以分为三层

  • 对象库层:二次封装Selenium的方法
  • 页面操作层(也称:逻辑层):封装页面的元素对象和元素操作
  • 测试层(也称:业务层,放case的地方):多个页面操作完成一个业务测试,一般结合测试框架(unittest、pytest)来测试

po模式也可以分为四层

  • 对象库层:二次封装Selenium的方法
  • 页面层:封装页面的元素对象
  • 操作层:封装页面的元素操作
  • 测试层:多个页面操作完成一个业务测试

 

PO模式原理

  • 升级到PO模式之后,首先将Selenium常用的功能,结合实际业务需要进行二次封装;封装的内容是完全贴合实际业务来实现的【封装Selenium】
  • 将元素对象和元素操作进行整合【元素对象整合】
  • 将对象库和测试代码分离,实现数据与代码分离【数据与代码分离】

 

PO模式给代码带来的优势

  • 代码冗余明显降低:二次封装Selenium方法和提取公共方法,提高代码复用性
  • 代码的阅读性明显提升:因为三层分级,将不同内容进行不同的封装,整体代码阅读性提升
  • 代码维护性明显提升:UI测试中,页面若经常变动,代码的维护量随之增多;因为三层分级,我们只需要修改页面对象的代码,如元素对象或者操作对象的方法,不用修改测试用例的代码,也不影响测试用例的正常执行
  • 降低代码耦合性

selenium(10)-PageObject模式的解释

标签:维护   格式   网站页面   str   创建   数据   优势   按钮   密码   

原文地址:https://www.cnblogs.com/xinhua19/p/13170984.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!