自动化框架搭建——PO模式与数据驱动

PO模式

1、介绍

        PO是Page Object的缩写,PO模式是自动化测试项目开发实践的最佳设计模式之一。核心思想是通过对界面元素的封装减少冗余代码,同时在后期维护中,若元素定位发生变化, 只需要调整页面元素封装的代码,提高测试用例的可维护性、可读性。

        PO模式可以把一个页面分为三层,对象库层、操作层、业务层:

  • 对象库层:封装定位元素的方法
  • 操作层:封装对元素的操作
  • 业务层:将一个或多个操作组合起来完成一个业务功能。比如登录:需要输入帐号、密码、点 击登录三个操作

2、PO模式的好处

  • 减少代码冗余
  • 业务代码和测试代码被分开、降低耦合性
  • 维护成本低

3、学习思路:

  • V1:不使用任何设计模式和单元测试框架
  • V2:使用UnitTest管理用例
  • V3:使用方法封装的思想,对代码进行优化
  • V4:采用PO模式的分层思想对代码进行拆分
  • V5:对PO分层之后的代码继续优化
  • V6:PO模式深入封装,把共同操作提取封装到父类中,子类直接调用父类的方法

4、存在问题:

V1:无法批量运行、代码高度冗余

V2:业务脚本和页面对象没有分开、代码冗余

V3:代码冗余


数据驱动

1、概念

数据驱动:是以数据来驱动整个测试用例的执行,也就是测试数据决定测试结果。

2、特点

  • 数据驱动本身不是一个工业级标准的概念,因此在不同的公司都会有不同的解释
  • 可以把数据驱动理解为一种模式或者一种思想
  • 数据驱动技术可以将用户把关注点放在对测试数据的构建和维护上,而不是直接维护脚本,可以利用同样的过程对不同的数据输入进行测试
  • 数据驱动的实现要依赖参数化的技术

3、传入数据的方式

  • 直接定义在测试脚本中(简单直观、但数据和代码未实现分离,不方便后期维护)
  • 从文件中读取数据,如JSON、excel、xml、txt等格式文件(重点)
  • 从数据库中读取数据
  • 直接调用接口获取数据源
  • 本地封装一些生成数据的方法

4、传入数据的操作(以JSON为例)

4.1 JSON介绍

        JSON的全称是”JavaScript Object Notation”,是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式。

4.2 JSON特点

  • JSON是纯文本
  • JSON具有良好的自我描述性,便于阅读和编写
  • JSON具有清晰的层级结构
  • 有效地提升网络传输效率

4.3 JSON语法规则

  • 大括号保存对象
  • 中括号保存数组
  • 对象数组可以相互嵌套
  • 数据采用键值对表示
  • 多个数据由逗号分隔

4.4 JSON的值

  • 数字(整数或浮点数)
  • 字符串(在双引号中)
  • 逻辑值(true false
  • 数组(在中括号中)
  • 对象(在大括号中)
  • null

4.5 JSON操作

import json    # 导入依赖包

1、python字典转换为JSON字符串

JSON字符串 = json.dumps(字典)

2、JSON字符串转换为python字典

字典 = json.loads(JSON字符串)

3、读取JSON文件

with open('JOSN文件名','r',encoding = 'utf-8') as f:
    data = json.load(f)    # 返回的数据类型为字典或列表

4、写入JSON文件

with open('JOSN文件名','w',encoding = 'utf-8') as f:
    json.dump(data,f)    # data为字典或列表

你可能感兴趣的:(python,软件测试,自动化,python,学习)