基于Python Selenium - Unittest框架的PO设计模式详解

这篇具有很好参考价值的文章主要介绍了基于Python Selenium - Unittest框架的PO设计模式详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

接下来我们步入正文,这篇文章从以下几个内容讲述:

1、什么是PO设计模式(Page Object Model)
2、为什么要使用PO设计模式
3、使用PO设计模式要点
4、PO设计模式实例

1、什么是PO设计模式 (Page Object Model)

一种在测试自动化中变得流行的设计模式,使得自动化测试脚本的减少代码重复、更易读、减少维护成本。

一般PO设计模式有三层

第一层:

  • 对 Selenium 进行二次封装,定义一个所有页面都继承的 BasePage ,
  • 封装 Selenium 基本方法 例如:元素定位,元素等待,导航页面 ,
  • 不需要全部封装,用到多少方法就封装多少方法。

第二层:

  • 页面元素进行分离,每个元素只定位一次,隔离定位,如果页面改变,只需要改变相应的元素定位;
  • 业务逻辑分离 或 操作元素动作分离

第三层:

  • 使用单元测试框架对业务逻辑进行测试

2、为什么要使用PO设计模式

  • 页面频繁变化,(页面html结构等变化)导致页面UI元素频繁变动,元素定位改变
  • 传统线性自动化(面向过程开发),用例中需要反复的定位同一个元素
  • 每当页面发生变化的时候,需要在用例中寻找变动的部分,工作量大,容易产生遗漏,不容易维护

3、使用PO设计模式要点

  • 不要在page页面对象外做元素定位
  • 不在page页面对象里面写断言,除非是页面是否成功加载断言
  • 需要多少个元素就定位多少个,不需要对整个页面的元素进行定位
  • 当你的用例设计页面跳转时,例如登陆操作,登陆完成后跳转首页,当页面发生“跳转”
    ,封装的业务逻辑需要返回(return)对应的页面对象的实例
  • BasePage封装Selenium 基础方法,不需要全部封装,用到多少方法就封装多少方法

4、 PO设计模式实例

以TAPD作为项目例子,用PO设计模式实现登陆:
 

原文地址:https://mp.weixin.qq.com/s?__biz=MzkyNDI1NTAzNg

用例:

标题:登陆成功  
前置条件:打开TAPD登录页 https://www.tapd.cn/cloud_logins/login  
操作步骤:  
1. 输入用户名(手机或邮箱):XXXXXX  
2. 输入密码:XXXXXX
3. 点击登陆按钮  

预期结果:    
3. 页面跳转至“工作台-我的待办”

项目目录:

基于Python Selenium - Unittest框架的PO设计模式详解

base_page.py

基于Python Selenium - Unittest框架的PO设计模式详解 

login_page.py

基于Python Selenium - Unittest框架的PO设计模式详解

基于Python Selenium - Unittest框架的PO设计模式详解 

worktable_to_do_page.py

基于Python Selenium - Unittest框架的PO设计模式详解

test_login.py

基于Python Selenium - Unittest框架的PO设计模式详解

这个Demo很简单,主要意图是帮助理解PO设计模式的思想,如果需要代码,可以加入我们一起探讨。

基于Python Selenium - Unittest框架的PO设计模式详解文章来源地址https://www.toymoban.com/news/detail-416603.html

到了这里,关于基于Python Selenium - Unittest框架的PO设计模式详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • po+selenium+unittest自动化测试项目实战

    1、新建一个包名:common(用于存放基本函数封装) (1)在common包下新建一个base.py文件,作用:页面操作封装。base.py文件代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64

    2024年01月17日
    浏览(51)
  • 让自动化测试秒杀繁琐操作?试试PO模式设计框架

    目录:导读 引言 po模式 优势:  目录解释: 页面对象设计模式: base基础层: page对象层:  test:测试层 data数据层:  common层:  untils:  config层: run层: report: 结语 你是否曾经因为每次更新功能都要重新写一堆自动化测试代码而感到疲惫不堪? 或者因为页面元素的频繁变

    2024年02月02日
    浏览(52)
  • selenium系列--改进脚本为unittest框架--框架设计

    POM能让我们的测试代码变得可读性更好,高可维护性,高复用性, 可多人共同维护开发脚本,利于团队协作 如何设计 POM可以使代码看起来更整洁,那么我们先另外创建一个py文件。这里面主要放一些方法之类的东西,比如:定位、输入内容,点击等 from time import sleep from se

    2024年04月28日
    浏览(43)
  • Appium+Python+PO 设计模式

    目录 前言: 什么是 PageObject? 关于报告的输出 总结 Appium是一个用于自动化移动应用程序测试的开源工具,Python是一种简单易学且功能强大的编程语言,PO(Page Object)设计模式是一种在自动化测试中常用的设计模式。 属于 selenium 的一种设计模式,套用在 appium 身上了(实践表

    2024年02月17日
    浏览(34)
  • webUI自动化之基本框架搭建(python + selenium + unittest)

    该文档描述一次基于python的webUI自动化框架搭建过程及简单的使用。 框架构成: python + selenium + unittest IDEA工具:pycharm(社区版即可) Python3.9 Webdriver.exe文件下载好,将该文件放在本地python的lib文件夹下,并将其配置到环境变量(实际上放到python的任意文件夹下都可以,但必

    2024年02月02日
    浏览(46)
  • webUI自动化之基本框架搭建(python + selenium + unittest)_python ui自动框架

    3 from selenium.webdriver.common.by import By 4 5 driver = webdriver.Chrome() 6 driver.get(r’https://xxx’) # 打开浏览器并访问该链接,这里的链接不便展示哈 7 driver.maximize_window() 8 9 # 定位元素并操作 10 driver.find_element(By.NAME, ‘username’).send_keys(‘luoyang’) 11 driver.find_element(By.NAME, ‘password’).send

    2024年04月17日
    浏览(53)
  • selenium——unittest框架

    在进行selenium IDE脚本录制导出的脚本中,我们发现其中多了很多代码,这些代码正是unittest测试框架。unittest 是web界面的功能测试框架,白盒测试测试框架是Junit。unittest 单元测试提供了创建测试用例、测试套件以及批量执行的方案。unittest 在安装python 以后就直接自带了,调

    2024年02月03日
    浏览(32)
  • Pytest应用PO设计模式

    本篇内容主要涉及在软件测试中实现PO设计模式的应用 包含PO思想、PO原则、PO使用方法,最后会写一个实际模板供大家参考。 ​ PO(PageObject),在UI页面测试时,通常会存在大量的页面元素和各种点击操作,而我们在工作中也会碰到页面元素变化的情况,这样在常规测试项目中

    2024年01月18日
    浏览(35)
  • Selenium基础 —unittest单元测试框架

    目录 (一)unittest基本简介 (二)unittest基本概念 1、unittest核心的四个概念 2、如何创建一个测试类 3、test fixture常用的四个方法 4、unittest编写测试方法(用例)规范 5、执行测试脚本 6、入门示例 7、结果说明 (三)断言方法 1、断言介绍 2、常用的断言方法 3、断言示例 (四)

    2023年04月08日
    浏览(38)
  • 【WEB自动化测试】-PO设计模式

    如用例多了,那么登陆的代码就需要在每个模块化中都加入,所以考虑公共部分提取出来,做成一个公共的工具类。习惯命名为utils.py。 定义获取驱动对象的工具类 封装\\\"获取弹出框的提示信息\\\" PO是Page Object的缩写,PO模式是自动化测试项目开发实践的最佳设计模式之一。核心

    2024年02月16日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包