做红包网站,网页设计个人网站怎么做,我要自学网做网站,网站后台搭建教程前言
在之前的自动化测试框架相关文章中#xff0c;无论是接口自动化还是UI自动化#xff0c;都谈及data模块和config模块#xff0c;也就是测试数据和配置文件。
随着自动化用例的不断增加#xff0c;需要维护的测试数据也会越来越多#xff0c;维护成本越来越高#…前言
在之前的自动化测试框架相关文章中无论是接口自动化还是UI自动化都谈及data模块和config模块也就是测试数据和配置文件。
随着自动化用例的不断增加需要维护的测试数据也会越来越多维护成本越来越高如何有效管理测试数据也是自动化测试实践中一个值得探讨的问题。并且随着技术的发展和工具的不断革新方法论和实践经验的积累自动化测试中测试数据的管理方式也在不断迭代和演进。
本篇就来聊一聊自动化测试过程中数据的管理。
脚本与数据捆绑
在学习自动化测试初期基本上使用的都是线性脚本也就是将测试数据与测试脚本捆绑在一起。
这也是每个初学者都会经历的阶段这样做的好处就是可以快速实现一个demo更好地帮助初学者从手工测试进阶到自动化测试例如UI自动化就是模拟人在浏览器上的操作打开浏览器、定位元素、操作元素、模拟页面动作、断言结果等一系列操作线性脚本正好与这一系列操作对应有助于初学者更好地理解从而得到一个正反馈。
但是在实际应用中不推荐这种方式。
因为刚开始少数的测试用例维护起来可能很容易但随着时间迁移、产品迭代、测试套件的增长脚本也会越来越臃肿可维护性差且工作量大有悖于自动化测试提高工作效率的本质。
配置文件
以键值对的方式将一些公用数据写入配置文件中并使用相关API来读取配置信息配置文件的格式可以是yaml、json、xml、properties、ini、toml等。
这里的配置文件主要用于管理一些公用的、使用频率较高、数据量级较小的测试数据。
例如
在接口自动化测试中域名相对来说都是固定的只是不同接口的请求路径如/register、/login不一样那么就可以把域名如https://caituotuo.top写入配置文件测试过程中只需要将实例化的域名与请求路径进行拼接即可在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查询语句来检索数据进一步降低了脚本和数据的耦合性。
例如对于一些基础数据如电商网站的商品信息此类数据往往基数较大且本身更新频率较低可将其存储放到数据库中做持久化。
数据平台
通过专门的数据池和造数工厂来生产和管理测试数据。所谓造数工厂就是通过调用应用程序的方法来产生数据这些应用程序一般是专门的测试平台。通过此类造数据平台可以帮助测试人员有效地管理测试数据帮助测试人员创建、编辑、删除和查找测试数据。同时测试人员可以根据测试数据的特定属性如日期范围、类型等对测试数据进行分类和组织。
这种方式对测试人员的技能要求较高需要具备前端、后端、运维等相关知识。
综述
总之管理测试数据是自动化测试过程中非常重要的一部分。
测试人员应该选择最合适的方式来管理测试数据并确保测试数据的准确性、可靠性和保密性等。 总结
感谢每一个认真阅读我文章的人
作为一位过来人也是希望大家少走一些弯路如果你不想再体验一次学习时找不到资料没人解答问题坚持几天便放弃的感受的话在这里我给大家分享一些自动化测试的学习资源希望能给你前进的路上带来帮助。 软件测试面试文档
我们学习必然是为了找到高薪的工作下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料并且有字节大佬给出了权威的解答刷完这一套面试资料相信大家都能找到满意的工作。 视频文档获取方式 这份文档和视频资料对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴我走过了最艰难的路程希望也能帮助到你以上均可以分享点下方小卡片即可自行领取。