PO模式简介与示例

简介

PO模式(Page Object Model)是自动化测试项目开发实践的最佳设计模式之一。

它的主要用途是把一个具体的页面转换成编程语言当中的一个对象,页面特性转化成对象属性,页面操作转换成对象方法。

在自动化测试当中,主要用来实现对页面操作和测试,逻辑的一个分离,PO思想最开始来源于马丁富勒(marktin Flewer)在2004年发表的一篇文章。最初是叫作Window driver,后来selenium沿用这种思想,后来就改成了POM。

PO模式的核心思想是通过对界面元素的封装减少冗余代码,同时在后期维护中,若元素定位发生变化,只需要调整页面元素封装的代码,提高测试用例的可维护性、可读性。

优点

  • 代码可读性高,减少冗余代码;
  • 增加用例的可维护性,业务代码和测试代码被分开,降低耦合性维护成本低;
  • 增强复用性。

基本原则

方法意义

  • 用公共方法来代表UI所提供的功能
    如:首页的搜索功能,名站功能
  • 方法应该返回其他的page object或者返回用于断言的数据
    如,首页点击搜索框进入搜索页面
  • 相同的行为不同的结果,可以建模不同的方法
    如:登录行为可以拆分成登录成功(进入首页),或者登录失败(仍然停留在登录页面)
  • 不会在PO内创建断言

字段意义

  • 不要暴露页面内的元素给外部
    如:页面内的按钮的id不能被其他的case调用(变化的元素都控制在PO内部)
  • 不需要建模整个页面元素
    如:每个页面的元素不需要全部列出来,用到什么写什么

用例分层

基于 POM 的用例组织结构,良好的分层机制,让不同层去做不同类型的事情,让代码结构清晰,增加复用性。

一般而言,可以分以下几层:

  • page:完成对页面的封装
  • testcase:调用各类 page 完成业务流程并进行断言
  • driver:完成对 Web、Android、iOS、接口的驱动
  • data:配置文件和数据驱动
  • utils:其他便捷的功能封装,可选

demo

测试demo:雪球app
操作步骤:打开首页 --> 点击搜索框 --> 输入股票代码 --> 断言股票价格是否大于1快

原始测试脚本

from appium import webdriver

class TestDemo:
    def setup(self):
        caps = {
   
            'platformName': 'Android',
            'appPackage': 'com.xueqiu.android',
            'appActivity': '.view.WelcomeActivityAlias',
            'noReset&
  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值