自动化测试如何管理测试数据

简介: 彻底搞懂自动化测试中测试数据的管理

转载请注明出处❤️

作者:测试蔡坨坨

原文链接:caituotuo.top/67fb1f11.html


前言

你好,我是测试蔡坨坨。

在之前的自动化测试框架相关文章中,无论是接口自动化还是UI自动化,都谈及data模块和config模块,也就是测试数据和配置文件。

PS:自动化测试框架可参考往期文章「五分钟搞懂 POM 设计模式」「五分钟学会接口自动化测试框架

随着自动化用例的不断增加,需要维护的测试数据也会越来越多,维护成本越来越高,如何有效管理测试数据也是自动化测试实践中一个值得探讨的问题。并且随着技术的发展和工具的不断革新,方法论和实践经验的积累,自动化测试中测试数据的管理方式也在不断迭代和演进。

本篇,就来聊一聊自动化测试过程中数据的管理。

脚本与数据捆绑

在学习自动化测试初期,基本上使用的都是线性脚本,也就是将测试数据与测试脚本捆绑在一起。

这也是每个初学者都会经历的阶段,这样做的好处就是可以快速实现一个demo,更好地帮助初学者从手工测试进阶到自动化测试,例如UI自动化就是模拟人在浏览器上的操作,打开浏览器、定位元素、操作元素、模拟页面动作、断言结果等一系列操作,线性脚本正好与这一系列操作对应,有助于初学者更好地理解,从而得到一个正反馈。

但是,在实际应用中,不推荐这种方式。

因为,刚开始少数的测试用例维护起来可能很容易,但随着时间迁移、产品迭代、测试套件的增长,脚本也会越来越臃肿,可维护性差且工作量大,有悖于自动化测试提高工作效率的本质。

配置文件

以键值对的方式将一些公用数据写入配置文件中,并使用相关API来读取配置信息,配置文件的格式可以是yaml、json、xml、properties、ini、toml等。

这里的配置文件主要用于管理一些公用的、使用频率较高、数据量级较小的测试数据。

例如:

测试文件

测试框架中的data模块,使用专门的文件来管理测试数据,实现数据与脚本的分离,降低维护成本,提高可移植性,文件格式可以是yaml、json、xml、excel、csv等。

这里的测试文件与上面所说的配置文件略有不同,配置文件主要用于存放整个项目需要用到的配置项,如URL、数据库信息等,而这里的测试文件更多的是与测试用例相对应,适用于相同的操作有不同的输入得到不同或相同的结果。

例如:

  • 要测试登录功能,需要用到不同的账号和密码,不同的组合都需要做登录场景的测试,正常的排列组合下可能会产生多个用例,对于这种情况,就可以将多组账号数据存放在测试文件中,再通过参数化的方式循环读取(如:利用TestNG的@DataProvider注解Excel数据源文件实现数据驱动),并执行后续操作。
  • 根据业务场景的不同,数据的量级和使用频率也不一样,基于数据和脚本分离的思想,将测试数据存放在专门的测试文件中。
  • 大量的测试数据,几百上千条测试数据,对于测试数据量级很大的场景也可以将数据写入Excel、CSV等文件中进行存储管理。

不同数据格式文件对比:

文件格式 优点 缺点
Excel 生成数据方便 二进制文件不利于版本管理;一张工作表最多有256列,65536行;只支持单事务,如需多线程读取会有瓶颈
CSV 结构简单,可用Excel编辑,可与Excel进行转换 文件格式方便版本管理,不容易描述复杂的层级结构
YAML 格式完备,可读性好,可以注释 格式简单
XML 格式完备 冗长复杂
JSON 格式完备,可读性良好 不能编写注释,格式死板

综上所述,YAML和JSON对于数据结构的支持和书写程度较好,但是YAML写法更加简洁且可以添加注释,因此最推荐的就是位于C位的YAML文件格式。

PS:关于YAML的用法可参考往期文章「八分钟学会 YAML 数据驱动

数据库管理

为了便于测试数据的统一管理,以及考虑到数据持久化的问题,可以将测试数据存储在数据库中,并使用数据库管理系统(如:MySQL、SqlServer、Oracle等)来管理和维护数据,测试脚本可以使用SQL查询语句来检索数据,进一步降低了脚本和数据的耦合性。

例如:对于一些基础数据,如电商网站的商品信息,此类数据往往基数较大,且本身更新频率较低,可将其存储放到数据库中做持久化。

数据平台

通过专门的数据池和造数工厂来生产和管理测试数据。所谓造数工厂就是通过调用应用程序的方法来产生数据,这些应用程序一般是专门的测试平台。通过此类造数据平台,可以帮助测试人员有效地管理测试数据,帮助测试人员创建、编辑、删除和查找测试数据。同时,测试人员可以根据测试数据的特定属性,如日期范围、类型等,对测试数据进行分类和组织。

这种方式对测试人员的技能要求较高,需要具备前端、后端、运维等相关知识。

综述

总之,管理测试数据是自动化测试过程中非常重要的一部分。

测试人员应该选择最合适的方式来管理测试数据,并确保测试数据的准确性、可靠性和保密性等。

相关文章
|
1月前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
104 10
|
1天前
|
分布式计算 Shell MaxCompute
odps测试表及大量数据构建测试
odps测试表及大量数据构建测试
|
10天前
|
数据采集 人工智能 自然语言处理
Midscene.js:AI 驱动的 UI 自动化测试框架,支持自然语言交互,生成可视化报告
Midscene.js 是一款基于 AI 技术的 UI 自动化测试框架,通过自然语言交互简化测试流程,支持动作执行、数据查询和页面断言,提供可视化报告,适用于多种应用场景。
103 1
Midscene.js:AI 驱动的 UI 自动化测试框架,支持自然语言交互,生成可视化报告
|
10天前
|
存储 人工智能 人机交互
PC Agent:开源 AI 电脑智能体,自动收集人机交互数据,模拟认知过程实现办公自动化
PC Agent 是上海交通大学与 GAIR 实验室联合推出的智能 AI 系统,能够模拟人类认知过程,自动化执行复杂的数字任务,如组织研究材料、起草报告等,展现了卓越的数据效率和实际应用潜力。
84 1
PC Agent:开源 AI 电脑智能体,自动收集人机交互数据,模拟认知过程实现办公自动化
|
1天前
|
存储 测试技术 API
pytest接口自动化测试框架搭建
通过上述步骤,我们成功搭建了一个基于 `pytest`的接口自动化测试框架。这个框架具备良好的扩展性和可维护性,能够高效地管理和执行API测试。通过封装HTTP请求逻辑、使用 `conftest.py`定义共享资源和前置条件,并利用 `pytest.ini`进行配置管理,可以大幅提高测试的自动化程度和执行效率。希望本文能为您的测试工作提供实用的指导和帮助。
31 15
|
6天前
|
开发框架 .NET Java
C#集合数据去重的5种方式及其性能对比测试分析
C#集合数据去重的5种方式及其性能对比测试分析
27 11
|
8天前
|
开发框架 .NET Java
C#集合数据去重的5种方式及其性能对比测试分析
C#集合数据去重的5种方式及其性能对比测试分析
38 10
|
2月前
|
数据采集
使用 Puppeteer 绕过 Captcha:实现商家数据自动化采集
本文介绍了如何使用Puppeteer结合代理IP和用户伪装技术,轻松绕过大众点评的Captcha验证,实现商家信息的高效采集。通过配置Puppeteer、设置代理和用户伪装参数、模拟人类操作等步骤,成功提取了目标页面的数据。该方法不仅提高了爬虫的稳定性和隐蔽性,还为市场研究和商业分析提供了有力支持。注意,数据采集需遵守法律法规及网站政策。
使用 Puppeteer 绕过 Captcha:实现商家数据自动化采集
|
2月前
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
123 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
1月前
|
前端开发 JavaScript 测试技术
前端自动化测试
前端自动化测试是通过使用工具和脚本自动执行测试用例的过程,旨在提高测试效率、减少人为错误,并确保Web应用的功能在不同环境和设备上的一致性与稳定性。