一文详解!自动化测试如何管理测试数据

news/2025/1/12 15:53:26/

目录

前言

脚本与数据捆绑

配置文件

测试文件

数据库管理

数据平台

综述


前言

测试数据管理是自动化测试中非常重要的一环,它涉及到数据的创建、存储、维护和管理。

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

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

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

脚本与数据捆绑

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

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

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

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

配置文件

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

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

例如:

  • 在接口自动化测试中,域名相对来说都是固定的,只是不同接口的请求路径(如:/register、/login)不一样,那么就可以把域名(如:https://caituotuo.top)写入配置文件,测试过程中只需要将实例化的域名与请求路径进行拼接即可(如:https://caituotuo.top/register),从而节省维护成本,一定程度上提高测试效率。
  • 在UI自动化测试中,要测试某个网站各个模块的业务,前提是用户登录,此时这个用来登录的测试账号往往都是固定的,因此就可以将这组用户名和密码写入配置文件中直接引用。比起用专门的文件或数据库来管理这组数据来说,写在配置文件中更加高效方便。
  • 数据库配置信息,包括:host、port、username、password、charset等。

测试文件

测试框架中的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文件格式。

数据库管理

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

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

数据平台

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

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

综述

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

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

 作为一位过来人也是希望大家少走一些弯路,在这里我给大家分享一些自动化测试前进之路的必须品,希望能对你带来帮助。(WEB自动化测试、app自动化测试、接口自动化测试、持续集成、自动化测试开发、大厂面试真题、简历模板等等),相信能使你更好的进步!

留【自动化测试】即可【自动化测试交流】:574737577(备注ccc)icon-default.png?t=N5K3http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=ZzkQcmAe85ckaBPtQUptkVckU2U5XpZL&authKey=xMGxie22qtDJbjrdboxCpO7ZJxkuPAviYs6GiRb2B5T9YhJjlUGuFZSfoxQfWlyy&noverify=0&group_code=574737577

 

 

 


http://www.ppmy.cn/news/666568.html

相关文章

商品价格监控场景,API接口监控品牌方价格

电商市场的兴起,让很多人看到了电商发展的前景,纷纷开始涉足电商。但由于门槛低、利润高,一些卖家开始打起了低价促销的主意。很多品牌方在面对这些现象时都非常苦恼,随着这类乱价现象的逐年加剧,许多品牌厂商都选择做…

爱走了,我离开

我选择了离开你,你没有回答,也许你默认了,也许你真的离我远去了 彩阳全线路安全保护多功能调温型双人电热毯6255a*兰 ,也许你无所谓了,脑子里幻想着许多也许…… 感觉自己真没用,昨日离开时的洒脱全部烟消云…

操作系统导论笔记 1: 虚拟化

categories: [forJobs] tags: Interview OS 写在前面 这部分内容可以成为资源虚拟化, 主要包括 CPU 虚拟化(CPU 调度策略) 和 内存虚拟化(虚拟内存, 分段分页技术, 缓存策略等), 从一些很容易思考的点引入, 一点一点来分析不同策略的优劣和权衡, 十分引人入胜. 引入 正在运…

Apache Doris (八) :Doris分布式部署(五) Broker部署及Doris集群启动脚本

目录 1.Broker部署及扩缩容 1.1 BROKER 部署 1.2 BROKER 扩缩容 2. Apache Doris集群启停脚本 进入正文之前,欢迎订阅专题、对博文点赞、评论、收藏,关注IT贫道,获取高质量博客内容! 1.Broker部署及扩缩容 Broker 是 Doris 集…

我在深圳的工作历程

题记 毕业已经有两年多了,也又到了学弟学妹们找工作的季节,一直没有时间来写一下自己工作两年多来的经历,而这种经历,算是自己对自己以前所走过的路的一种回味,也算是给学弟学妹们一份参考的经验。当然,经…

深圳多所学校试点电子书包 作业当堂批改

http://www.sznews.com/news/content/2012-12/10/content_7481793.htm 深圳多所学校试点电子书包 作业当堂批改 http://www.sznews.com 2012-12-10 08:50 来源: 深圳特区报 有 1 人参与评论 【字号:大 中 小】 深圳多所学校试点“电子书包” 课堂作…

Android 权限的一个类型系统模型

作者 | 陈泓旭 整理 | 编程语言 Lab 陈泓旭 华为可信实验室高级工程师,南洋理工大学博士。研究领域是程序分析、软件安全、编程理论等。 视频回顾: Android 权限的一个类型系统模型 本文主要和大家分享一下我读博期间做的和类型系统相关一篇文章&#xf…

两句话写的很好

只要你经商,就会有钱赚。 备注: 1.有这个想法,主要来源于最近倒卖几块电路板,赚了几百快钱,发现钱来得太容易了,我只是在网上和人聊聊天而已,虽然我不是陪聊,但是他们给我送钱了。 2.经商…