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

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

自动化测试无论是接口自动化还是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性能测试

请添加图片描述

九、总结(尾部小惊喜)

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/12594.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT实战100例 - (02) 自动出PPT它不香么?

文章目录 ChatGPT实战100例 - (02) 自动出PPT它不香么?一、需求与思路1. 需求:出个PPT,5分钟后要用2. 思路:生成markdown然后转化 二、生成markdown语法的思维导图1. 问题2. 回答 三、把markdown文本转换成PPT ChatGPT实战100例 -…

MIMO-OFDM无线通信技术(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 本代码为MIMO-OFDM无线通信技术及MATLAB实现。分为十章,供大家学习。 📚2 运行结果 主函数部分代码&a…

Mysql安装详细教程

数据库相关概念 而目前主流的关系型数据库管理系统的市场占有率排名如下: Oracle:大型的收费数据库,Oracle公司产品,价格昂贵。 MySQL:开源免费的中小型数据库,后来Sun公司收购了MySQL,而Oracle…

逆向-还原代码之(*point)[4]和char *point[4] (Interl 64)

// source code #include <stdio.h> #include <string.h> #include <stdlib.h> /* * char (*point)[4] // 数组指针。 a[3][4] // 先申明二维数组,用它来指向这个二维数组 * char *point[4] // 指针数组。 a[4][5] // 一连串的指针…

知识点学习登记备份信息

知识点记录 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8ovilnIi-1681441105895)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20211228090433836.png)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上…

全景丨0基础学习VR全景制作,平台篇第五章:开场封面功能

大家好欢迎观看蛙色平台使用教程 开场封面功能&#xff0c;现已支持开场图片和开场视频两种呈现方式&#xff0c; 分别针对PC端和移动设备访问分别设置呈现图片、视频内容&#xff0c;满足市场主流需求。 开场图片 传达主旨 1、全局-开场封面-图片 2、分别对PC端和移动设备访…

【加载plist文件展示单组数据 Objective-C语言】

一、接下来,我们要为大家演示如何通过加载plist文件,使用UITableView展示单组数据, 1.最后运行起来的效果,是一个什么效果呢,是这样一个效果: 2.这个里面,这就是一个单元格吧, 这就是一个单元格, 这个单元格里面,包括一个图片框、一个TextLabel、一个DetailLabel、…

[CVPR 2020] Regularizing Class-Wise Predictions via Self-Knowledge Distillation

Contents IntroductionClass-wise self-knowledge distillation (CS-KD)Class-wise regularizationEffects of class-wise regularization ExperimentsClassification accuracy References Introduction 为了缓解模型过拟合&#xff0c;作者提出 Class-wise self-knowledge di…

3.rabbitmq-集群

1.修改3台的主机名称,也可以不改 vi /etc/hostname 2.配置各个节点的host文件,让各节点都能识别对方 vi /etc/hosts 192.168.3.132 host-rabbitmq 192.168.3.133 host-rabbitmq2 192.168.3.134 host-rabbitmq3 3.以确保各个节点的cookie文件使用的同一个值 在node1上执行远程命…

PostgreSQL技术内幕(七)索引扫描

索引概述 数据库索引&#xff0c;是将一个表的某些字段的数据进行重新组织的数据库对象。通过使用索引&#xff0c;可以大大加速数据库的一些操作&#xff0c;其背后的思想也很简单朴素&#xff1a;空间换时间。 数据库中的索引&#xff0c;可以类比为一本书的目录&#xff0…

远程代码执行渗透与防御

远程代码执行渗透与防御 1.简介2.PHP RCE常见函数3.靶场练习4.防御姿势 1.简介 远程代码执行漏洞又叫命令注入漏洞 命令注入是一种攻击&#xff0c;其目标是通过易受攻击的应用程序在主机操作系统上执行任意命令。 当应用程序将不安全的用户提供的数据&#xff08;表单、cook…

如何在Java中创建临时文件?

在Java程序中&#xff0c;有时需要创建临时文件来暂存数据或者执行某些操作。Java提供了许多方式来创建临时文件。在本教程中&#xff0c;我们将介绍如何使用Java标准库来创建临时文件。 一、使用File.createTempFile()方法 Java标准库中的File类提供了createTempFile()方法来…

条款08: 别让异常逃离析构函数

文章目录 背景知识析构函数 背景知识 下面是一段测试代码&#xff1a; class Test { public:Test(int para){m_num para;};void test_throw(){throw(3);};~Test() {cout<<"delete Test"<<m_num<<endl;//test_throw();};int m_num; }; int main(…

无线耳机哪个音质比较好?四百内音质最好的无线耳机排行

蓝牙耳机常常作为手机的伴生产品而出现在人们的日常生活当中&#xff0c;其使用场景也越来越广泛。而随着蓝牙技术的发展&#xff0c;蓝牙耳机在音质上的表现也越来越好。下面&#xff0c;我来给大家推荐几款四百内音质最好的无线耳机&#xff0c;一起来看看吧。 一、南卡小音舱…

Java多线程基础面试总结(三)

线程的生命周期和状态 Java 线程在运行的生命周期中的指定时刻只可能处于下面 6 种不同状态的其中一个状态&#xff1a; NEW&#xff1a;初始状态&#xff0c;线程被创建出来&#xff0c;但是还没有调用start()方法。RUNABLE&#xff1a;运行中状态&#xff0c;调用了start()…

什么是 AUTOSAR C++14?

总目录链接>> AutoSAR入门和实战系列总目录 总目录链接>> AutoSAR BSW高阶配置系列总目录 文章目录 什么是 AUTOSAR C14&#xff1f;AUTOSAR C14 规则和偏差静态分析工具可以完全支持自动 什么是 AUTOSAR C14&#xff1f; 它是 C 版本 14 (ISO/IEC 14882:2014…

layui框架学习(23:代码文本修饰模块)

Layui中的代码文本修饰模块layui.code主要用于修饰代码区域或文本行&#xff0c;其基本用法是使用预设类layui-code标识包含代码或文本的元素&#xff0c;然后调用layui.code函数渲染样式。Layui官网教程及示例中主要使用pre元素包含带修饰的代码或文本&#xff08;pre元素可定…

Qt在安卓手机输出‘hello,world‘

我也想实现这样的功能。 最开始的参考文章&#xff1a; (2条消息) Qt android 开发环境搭建_逝水流年丶轻染尘的博客-CSDN博客 方案1&#xff1a;(失败) 我之前已经下载过 Qt5.14.2了&#xff0c;所以我想直接添加组件 中间过程参考&#xff1a; (2条消息) Qt更新组件出现&…

Kubernetes 多集群管理工具Rancher 使用介绍

目录 一、Rancher 简介 2.1 Run Kubernetes Everywhere 2.2 满足 IT 需求规范 2.3 赋能 DevOps 开发团队 2.4 Rancher API Server 的功能 2.4.1授权和角色权限控制 2.4.2使用 Kubernetes 的功能 2.4.3 配置云端基础信息 2.4.4 查看集群信息 2.5 编辑下游集群 二、Ra…

在线免费把Markdown格式文件转换为PDF格式

用CSDN的MarkDown编辑器在线转换 CSDN的MarkDown编辑器说实话还是挺好用的。 导出PDF操作步骤&#xff0c;图文配合看&#xff1a; 在MD编辑模式下写好MarkDown文章或者直接把要转换的MarkDown贴进来&#xff1b; 使用预览模式&#xff0c;然后在预览文件上右键选择打印&…