「这是我参与2022首次更文挑战的第25天,活动详情查看:2022首次更文挑战」
前言
Python 是面向对象的高级语言,一切都是对象。随着我们对python语言的熟悉,学到的知识点也越来越多,从一开始几行代码堆积成几千几万行代码。如何管理好这些代码的,不仅RD面对的,对于自动化测试都需要去思考和解决的。
哪有没有一些经验可以借鉴的?
以前的大牛们,已经前提前替我们想到了,这个概念叫做“设计模式”。
设计模式与Python中方法、库使用方式不同外,也不是一段特定的代码,它是一套解决实际需求的解决方案。
通常一个好的设计模式由意图、动机、结构及代码相互组成的。
在Python常见的设计模式概述一文中,我们了解当下流行的有23种设计模式,主要有3大类:
- 创建型模式:如常见的工厂模式、单例模式
- 结构型模式:如常见的装饰器
- 行为模式:如观察者、访问者
以上主要适用在软件功能开发上,哪针对自动化测试的模式有没有呢?
答案是有的,不过在测试领域中,针对自动化测试用例的模式叫做自动化测试框架。
目前行业里,自动化测试框架类型主要有关键字驱动、数据驱动、PO模式三类,它们之间可以互相组合使用。
本期,我们来学习关于自动化测试常见的设计模式(框架)的学习,Let's go~~
1. 自动化测试框架概念
随着时代高速发展,面对市场强大的竞争,研发的产品需要快速完成研发和测试。面对质量和快速的交付双重压力下,我们需要让代码替代人工完成日益多CASE检查,自动化测试框架孕育而生。
自动化测试框架是一套包含测试case、测试结果、测试方法等一些实现对测试软件进行测试的解决方法。
对于一个刚刚起步的测试团队,选择一款自动化测试框架,它们帮我们提前定义好概念和CASE编写方法等集合,能在项目中产生收益。
完成一个测试框架如图所示:
2. 关键字驱动
-
什么是关键字驱动?
键字驱动,又称为表格驱动,是一种独立于应用程序的自动化框架。
关键字驱动框架下将测试用例分为四个部分:
- Test Step:测试步骤
- Test Object: 测试步骤对象
- Action:测试对象执行的动作
- Test Data:测试对象需要的数据
如图,以下是关键字驱动大概的流程图
参考资料:www.cnblogs.com/yyht-xgy/p/…
-
关键字驱动特点
关键字驱动的核心思想是把编码从测试用例和测试步骤分离出,对于不会编码的测试人也会编写自动化脚本
- 测试人员可参与:框架建立完成后,手工测试和非技术人员都可以编写个性化自动化脚本
- 易维护:开发人员只需要维护关键字开发,系统更新等工作,不用涉及到具体的测试
- 组件复用:关键字驱动模块化,提供代码框架的复用性
-
关键字驱动应用
- 可以对行业里流行的selenium、APPium、uiautomator库进行二次封装成关键字
- 以关键字驱动的框架:Robotframework
3. 数据驱动
-
什么是数据驱动?
数据驱动主要解决测试海量数据,而测试步骤固定的场景而产生的设计模式。
数据驱动是相同的测试脚本使用不同的测试数据执行,测试数据和测试行为完全分离。
数据驱动框架主要分为两部分:
-
测试步骤:通常结合关键字驱动来执行
-
测试数据:通常存储在数据库或者Excel表格中
-
-
数据驱动特点
- 代码和数据分离
- 通常与关键字驱动结合组成自动化流程
4. PO模式
-
什么是PO模式?
PO 是 Page Object 缩写。PO模式是一种常见的设计模式。
- PO模式把待测页面当成一个页面对象
- 一个页面对象包含元素对象的定位和元素操作方法
- 将页面对象和真实的网站页面一一映射起来
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…
总结
本期,我们对常见的测试框架相关结构和特点进行了解和学习。
以上是本期内容,欢迎大佬们点赞评论,下期见~~~