Python 自动化测试设计模式

898 阅读5分钟

「这是我参与2022首次更文挑战的第25天,活动详情查看:2022首次更文挑战

前言

Python 是面向对象的高级语言,一切都是对象。随着我们对python语言的熟悉,学到的知识点也越来越多,从一开始几行代码堆积成几千几万行代码。如何管理好这些代码的,不仅RD面对的,对于自动化测试都需要去思考和解决的。

哪有没有一些经验可以借鉴的?

以前的大牛们,已经前提前替我们想到了,这个概念叫做“设计模式”。

设计模式与Python中方法、库使用方式不同外,也不是一段特定的代码,它是一套解决实际需求的解决方案。

通常一个好的设计模式由意图、动机、结构及代码相互组成的。

Python常见的设计模式概述一文中,我们了解当下流行的有23种设计模式,主要有3大类:

  • 创建型模式:如常见的工厂模式、单例模式
  • 结构型模式:如常见的装饰器
  • 行为模式:如观察者、访问者

以上主要适用在软件功能开发上,哪针对自动化测试的模式有没有呢?

答案是有的,不过在测试领域中,针对自动化测试用例的模式叫做自动化测试框架。

目前行业里,自动化测试框架类型主要有关键字驱动、数据驱动、PO模式三类,它们之间可以互相组合使用。

本期,我们来学习关于自动化测试常见的设计模式(框架)的学习,Let's go~~

1. 自动化测试框架概念

随着时代高速发展,面对市场强大的竞争,研发的产品需要快速完成研发和测试。面对质量和快速的交付双重压力下,我们需要让代码替代人工完成日益多CASE检查,自动化测试框架孕育而生。

自动化测试框架是一套包含测试case、测试结果、测试方法等一些实现对测试软件进行测试的解决方法。

对于一个刚刚起步的测试团队,选择一款自动化测试框架,它们帮我们提前定义好概念和CASE编写方法等集合,能在项目中产生收益。

完成一个测试框架如图所示:

image.png

2. 关键字驱动

  • 什么是关键字驱动?

    键字驱动,又称为表格驱动,是一种独立于应用程序的自动化框架。

    关键字驱动框架下将测试用例分为四个部分:

    • Test Step:测试步骤
    • Test Object: 测试步骤对象
    • Action:测试对象执行的动作
    • Test Data:测试对象需要的数据

    如图,以下是关键字驱动大概的流程图

    image.png

参考资料:www.cnblogs.com/yyht-xgy/p/…

  • 关键字驱动特点

    关键字驱动的核心思想是把编码从测试用例和测试步骤分离出,对于不会编码的测试人也会编写自动化脚本

    • 测试人员可参与:框架建立完成后,手工测试和非技术人员都可以编写个性化自动化脚本
    • 易维护:开发人员只需要维护关键字开发,系统更新等工作,不用涉及到具体的测试
    • 组件复用:关键字驱动模块化,提供代码框架的复用性
  • 关键字驱动应用

    • 可以对行业里流行的selenium、APPium、uiautomator库进行二次封装成关键字
    • 以关键字驱动的框架:Robotframework

3. 数据驱动

  • 什么是数据驱动?

    数据驱动主要解决测试海量数据,而测试步骤固定的场景而产生的设计模式。

    数据驱动是相同的测试脚本使用不同的测试数据执行,测试数据和测试行为完全分离。

    数据驱动框架主要分为两部分:

    • 测试步骤:通常结合关键字驱动来执行

    • 测试数据:通常存储在数据库或者Excel表格中

  • 数据驱动特点

    • 代码和数据分离
    • 通常与关键字驱动结合组成自动化流程

4. PO模式

  • 什么是PO模式?

    PO 是 Page Object 缩写。PO模式是一种常见的设计模式。

    • PO模式把待测页面当成一个页面对象
    • 一个页面对象包含元素对象的定位和元素操作方法
    • 将页面对象和真实的网站页面一一映射起来

    image.png

    PO 模式一般包名四层架构:

    • page_locator:页面对象的元素定位

    • page_object: 页面对象操作方法

    • test_case:测试用例

    • bage_page: 封装页面中的公共的方法

    OP模式页面返回的原则:

    1、返回SELF,应为操作完成页面停留在现在的页面

    2、返回其他模块的对象,因为操作完成后页面跳转到其他的页面当中

    3、返回元素定位信息或者元素属性

  • PO模式特点

    • 易维护:业务层和d功能层实现隔离
    • 复用性高:对关键库进行封装和提取公共方法
    • 代码可读性强:将不同内容进行不同封装,整体代码阅读性提升
    • 代码耦合度低
  • PO模式应用

    • PO模式通常应用在WEB-UI自动化测试应用上

5. 混合模式

我们前面介绍的设计模式,可以结合实际需求和不同模式的优缺点结合使用,搭建个性化自动化框架。

目前流行自动化框架所用到的库有:

  • web测试:selenium、watir、Robotframework
  • app测试:Appium
  • 桌面程序:QTP、AutoRunner
  • 安卓程序:UIautomator

参考链接:www.cnblogs.com/txu2k8/p/15…

总结

本期,我们对常见的测试框架相关结构和特点进行了解和学习。

以上是本期内容,欢迎大佬们点赞评论,下期见~~~