YAML /Excel /CSV?自动化测试测试数据管理应用,测试老鸟总结...


前言

自动化测试无论是接口自动化还是UI自动化,都应有封装data模块和config模块,也就是测试数据和配置文件。

Python自动化测试:https://www.bilibili.com/video/BV16G411x76E/

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

脚本与数据捆绑

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

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

但是,在实际应用中,是不会用这种方式的。

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

配置文件

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

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

例如:
1、在接口自动化测试中,域名相对来说都是固定的,只是不同接口的请求路径(如:/register、/login)不一样,那么就可以把域名(如:https://xxxxxxx.com)写入配置文件,测试过程中只需要将实例化的域名与请求路径进行拼接即可(从而节省维护成本,一定程度上提高测试效率。

2、在UI自动化测试中,要测试某个网站各个模块的业务,前提是用户登录,此时这个用来登录的测试账号往往都是固定的,因此就可以将这组用户名和密码写入配置文件中直接引用。比起用专门的文件或数据库来管理这组数据来说,写在配置文件中更加高效方便。

3、数据库配置信息,包括: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写法更加简洁且可以添加注释,因此最推荐的是YAML文件格式。

数据库管理

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

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

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

每个人都有无限的潜能,只要肯去发掘和挑战。不断奋斗,追求卓越,才能成就伟大的事业和自己的人生。相信自己,勇往直前,路会一步步铺开。

只有不断奋斗,才能让梦想成真。遇到挫折和困难时,不要气馁,相信自己的能力,坚持不懈地追求目标,必将收获成功的喜悦。

生命在于不断地挑战自己,无论你遇到什么困难和挫折,都不要轻易放弃。相信自己的能力和潜力,坚持追求梦想,才能够在人生之路上赢得属于自己的那份荣耀。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值