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

article/2025/10/14 12:30:10

前段时间,知识星球里有同学问到:自动化case越多,测试数据越多,数据的管理成本也越来越高,是否需要一个数据池来专门管理测试数据?这是一个好问题,也是很多测试同学在自动化测试实践中必须面对的一个问题。

近几年随着技术不断发展,新的工具、方法论和技术实践越来越多,自动化测试在具体工作中有了很多方法论和实践,这些实践的背后是什么原因在推动技术的发展,我觉得是个很值得复盘和回溯的事情。

这篇文章,我想聊聊自动化测试数据管理的方式,是如何迭代和不断演进的。

先看下面这张图,我将自动化测试成熟度演变分为如下几个阶段,关于如何管理数据,我会从下述几个阶段分开描述。
在这里插入图片描述
PS:上图不同阶段的标识,只是为了说明每个阶段的测试数据特性,而非这个阶段的具体技术实现方式和细节。

学习阶段

很多测试同学在刚开始学自动化测试的时候,基本都是脚本和测试数据写在一起,从实际工作应用的角度来说很不推荐。因为随着业务和技术的变化迭代,测试脚本和数据也要重新修改并执行,直接增加了自动化测试工作的维护成本,这样做有悖于自动化测试的本质(回归&提高效率)。

但对于新手或者初学者来说,将脚本+数据写在一起,它是可以快速实现和有直接反馈的一个demo。

初始阶段

自动化测试的数据管理第二个阶段,就是将测试数据写在配置文件里,通过键值对的方式去读取一些公用的数据,比如用户名密码、数据库连接配置、要访问的服务域名等。

这种做法大概在16年-17年是很常见的一种方式,也是很多刚开始尝试做自动化测试工作的同学常用的方式。当然那个时候在测试圈子里,所谓的PO模式、数据和脚本分离已经有了一定的讨论和实践。

不过这个阶段有个很有意思的点,很多公司为了自动化而自动化,专门招一个人来做自动化。求职市场也比较火爆,很多公司其实就是一个人做自动化测试,脚本数据都在本地保存和执行,这样做也无伤大雅。

作坊阶段

所谓的作坊阶段就是指测试团队有了一定规模,业务迭代速度和场景的复杂度有了一定提升,这个时候从需要有自动化开始转变为对效率的期待。很典型的一点就是这个时候所谓的版本管理和持续集成开始为测试同学注重起来,当然通俗来说就是SVN&Git和Jenkins开始在测试团队应用了起来,当然也仅限于使用。

还有一点就是部分测试同学开始意识到测试报告的重要性,大概18年左右,当时很多测试群和网上很多资料,都是关于HTMLTestRunner和Allure的各种魔改,以高大上和美观为主要追求。

当然,对于自动化测试需要的测试数据,大家也开始接受了数据和脚本分离,通过csv文件来存储测试数据。这样做的好处是测试场景变化后,只需要修改测试数据即可,提高了测试脚本的可维护性,也便于多人维护同一批测试数据。

团队阶段

到了第四阶段也就是团队阶段,测试团队的流程规范和技术体系开始逐步建立起来了,自动化测试也从独立的岗位变成了功能测试同学入厂标配。

为了便于测试数据的统一管理,也考虑到测试数据的持久化问题,大家开始引入数据库来进行测试数据存储,这样做进一步的降低了脚本和数据的耦合性,脚本就是不同的测试场景和case,数据作为公共部分被引入即可。

这个阶段还有个很有意思的点,测试平台的概念开始在各技术大会和技术沙龙上被提及,很多测试管理者甚至测试同学也在工作和不同场合中开始言必称开发平台。

成熟阶段

第五个阶段就是所谓的数据池或者造数工厂的概念了,所谓的造数工厂,其实就是通过直接调用应用程序的方法来产生数据,在自动化测试脚本或者服务联调、问题复现阶段直接引用。

这样做有几个特点:一是各种测试平台(不仅限于自动化测试平台)开始在企业内落地,二是催生了很多测试开发岗位,三是平台的适用范围开始由测试团队向其他技术团队扩散,也就是所谓的打通+赋能。

当然还有一些其他有意思的点,比如测试开始提倡全栈,各种招聘jd上要求懂前后端容器devops等各种东西,再比如测试圈子里开始讨论码代码能力到什么程度可以做测试开发,也是卷的不行。

追溯反思

综合上面几个阶段测试数据管理的方式以及近几年测试圈子或者说技术领域的一些现象,可以得到如下几个结论:

市场和企业对测试团队的要求越来越高;

手工测试开始逐渐向真正的工程师转变进化;

测试职能从功能验证开始转向质量保障和效率提升;

未来所谓的测试岗位几乎都会要求业务+技术既要还要;

当然,市场在不断变化,对于人的要求也在变得更丰富和具体,能跟随发展和市场要求的人,才能存活下来。

如果非要用几个关键字来概括上面的几个阶段的话,我认为这几个词可能会更合适:

市场期待——企业跟随——探索实践——效率提升——协同配合

最后感谢每一个认真阅读我文章的人,下面这个网盘链接也是我费了几个月时间整理的非常全面的,希望也能帮助到有需要的你!
在这里插入图片描述
这些资料,对于想转行做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……

如果你不想一个人野蛮生长,找不到系统的资料,问题得不到帮助,坚持几天便放弃的感受的话,可以点击下方小卡片加入我们群,大家可以一起讨论交流,里面会有各种软件测试资料和技术交流,同时我也把上面花几个月整理的资料放里边了,赶快加入吧。

敲字不易,如果此文章对你有帮助的话,点个赞收个藏来个关注,给作者一个鼓励。也方便你下次能够快速查找。

自学推荐B站视频:

零基础转行软件测试:38天自学完软件测试,拿到了字节的测试岗offer,堪称B站最好的视频!

自动化测试进阶:已上岸华为,涨薪20K,2022最适合自学的python自动化测试教程,自己花16800买的,无偿分享

在这里插入图片描述


http://chatgpt.dhexx.cn/article/CIMOB8XE.shtml

相关文章

自动化测试如何准备测试数据

事实上,大多数类型的测试都需要准备测试数据。 手动测试:需要准备一些基础数据,比如配置数据等; 自动化测试:基础需要准备,已有数据,动态运行时产生的数据需要准备; 性能测试:类似于自动化测试…

自动化测试实施流程

在上篇文章中,我们已经介绍过Selenium的一些基础知识,以及是否能够开展自动化测试的情形,在这篇文章中,我们将主要介绍自动化测试的实施流程。 1、自动化测试流程图 2、主要过程描述 2.1、自动化测试的切入点 开展自动化测试的…

自动化测试之获取mysql中的数据

各位小伙伴们,大家好,今天给大家带来的是关自动化测试之获取mysql数据库中的数据方面的干货,技术含金量超高,有测开方面发展的小伙伴可以好好看看。 实施自动化获取mysql数据库中的数据的前提知识有: 1. 精通软件测试…

性能自动化测试整体流程

目录 1. 性能环境搭建介绍 1.1 配置Jenkins 1.2 配置Maven, JDK 1.3 安装Jenkins插件 1.4 Jenkins角色权限管理 1.5 Jenkins配置发送邮件 1.6 配置JMeter 1.7 安装和配置Tomcat 2. 分布式接口压测的Job设置 2.1 Jenkins上配置Job 2.2 配置JMeter分布式压测环境 2.3…

自动化测试(一)

利用测试自动化工具,更轻松地编写测试套件,减轻人为干预并提高测试ROI回报率。 业务关键测试用例,重复测试用例,功能测试用例 web自动化测试工具 : QTP一个商业化的功能测试工具,收费,支持web…

自动化测试-使用python控制MYSQL数据库(pymysql)

当需要对大量的数据进行处理并写入/读取数据库时,直接使用Linux显然会显得力不从心,即使是图形化的Navicat Premium在处理大批量数据时也难以招架,只能通过SQL语句结合导入导出来实现一些事情,本文分享使用python语言中的pymysql包…

自动化测试基本流程

下图是自动化测试的基本流程图,以及每个阶段的任务负责人,输出等。 1、制定测试计划 在展开自动化测试之前,最好做个测试计划,明确测试对象、测试目的、测试的项目内容、测试的方法、测试的进度要求,并确保测试所需的…

最完整的自动化测试流程

今天笔者就要归纳总结下一整套测试流程,从无到有,实现零突破,包括如何编写测试用例,定时执行测试用例,查找最新生成的测试报告文件,自动发送最新测试报告邮件,一整套完整的测试流程。以后各位只…

图解《字典学习》

PPT&代码链接 csdn:https://download.csdn.net/download/u012037852/10899017 github:https://github.com/longfeizhou2016/Dictionary-learning

python学习 字典

22-9-15 1.格式:大括号{} eg: 2.创建字典: 6种常用方法: 3.增: 1.formkeys: eg: 2: 用此种方法,若键值存在,则修改其value,若不存在,则新…

[转]字典学习/稀疏编码

本文转自https://zhuanlan.zhihu.com/p/26015351 机器学习——字典学习/稀疏编码学习笔记 Esquirrel 2 个月前 以下资料是小编学习字典学习/稀疏编码时,整理的高质量的网络博客,供大家参考。欢迎留言交流,批评指正理解不足。 最Highlight的地…

【零散知识】字典学习(Dictionary Learning)

前言: { 之前的神经网络实践还卡在硬件上,不过目前已经打算先使用云设备,下次应该就会继续进行多目标识别的调试。这次就先写一点零散知识。 在专利[1]中我遇到了新的观点——字典学习(Dictionary Learning)。 } 正…

Python-字典学习

这次主要学习了字典学习的相关知识以及选择分支结构,根据课程编写了下图一些代码:

Python中的字典学习笔记

字典的格式:{"key":"value"} key表示数据的含义,value表示对应的数据的值字典是一种可变的数据类型,从python3.7开始,字典是有序的。 字典创建的方式 1、通过{},要使用key:value的格式&#xff0c…

『ML笔记』字典学习3(Dictionary Learning,KSVD)

文章目录 一、字典学习数学模型1.1、数学描述1.2、求解问题1.3、字典学习算法实现 字典学习也是一种数据降维的方法,这里我用到SVD的知识,对SVD不太理解的地方,可以看看这篇博客: 奇异值分解SVD 一、字典学习数学模型 字典学习的…

字典学习日记

字典的创建 在定义字典时,每个元素都包含了两部分:键(key)和值(value),并且在“键”和“值”之间使用英文冒号分隔,相邻两个元素使用英文逗号分离,所有的元素都放…

Dictionary Learning(字典学习、稀疏表示以及其他)

第一部分 字典学习以及稀疏表示的概要 字典学习(Dictionary Learning)和稀疏表示(Sparse Representation)在学术界的正式称谓应该是 稀疏字典学习(Sparse Dictionary Learning)。该算法理论包含两个阶段&am…

字典的学习笔记

列表 [] 单身什么是字典 {} 二人世界 python内置的数据结构之一,与列表一样是一个可变序列(可以增删改操作的) 以键值对的方式存储数据,字典是一个无序的序列 -> hash(key) 通过哈希函数来计算存储位置,key一定是不可变的字典的创建 使用花…

python学习之字典

目录 一、字典格式 二、操作 1、添加元素 2、修改value值 3、删除 4、遍历和查询 5、合并字典 三、小结 一、字典格式 特点:是以键值对的形式存储 结构:{键1:值,键2:值,键3:值} 字典…

『ML笔记』深入浅出字典学习1(Dictionary Learning)

目录 一、预备知识 二、字典学习以及稀疏表示的概要 2.1、我们为什么需要字典学习? 2.2、我们为什么需要稀疏表示? 三、下一节 参考文献 一、预备知识 稀疏向量:假设向量中的元素绝大部分为零元素,则称该向量是稀疏的。 …