8年老鸟,自动化测试经验,测试数据管理分析总结,一篇打通...

目录:导读

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


前言

问题:把测试数据放配置文件读取和放文件通过函数调用读取有什么区别?

自动化测试过程中,现在大多都默认测试脚本与测试数据分离的设计,这样做的好处是:降低维护成本,迁移成本以及提高效率。

因此测试数据放在哪里,如何管理,不能一概而论。个人觉得应该从以下几方面来考虑:

1、业务场景

1)比如在UI自动化测试中,需要测试某个电商网站的各个业务模块,但前提是要用户登录。这个用来执行登录的测试账号数据往往是固定的,那么专门将

一组username和password放在一个测试数据文件或者测试数据库中,这样就显得太笨重,耗时费力。将其写入测试脚本或者写入配置文件,直接引用效率会更高。

2)同样,测试电商网站,账号体系分为普通账号,会员账号,会员还分很多等级,有时候为了测试会员中心不同的账号展示的信息是否不同,就需要使用不同的

等级的账号登录,这种场景下,可以将测试数据放在测试文件里(比如excel、csv),通过参数化的方式来循环读取,执行后续操作。

3)在API自动化测试中,比如针对restful风格的接口,它的域名相对来说都是固定的,只是不同接口的path不同,那么也可以将域名写入配置文件,

测试过程中只需要将实例化的域名和path进行拼接即可,这样也省却了在测试数据文件中维护的成本,一定程度上提升了测试效率。

2、数据类型

测试数据也分不同类型,大概分为以下几种类型:

base-data:即基础数据,比如电商网站的商品信息、SKU,比如物流公司的仓储管理等,这类数据往往基数比较大,可以视为持久层,储存在DB中;

test-data:测试数据,根据业务场景不同,数据无论量级还是变更频次也不同,基于测试脚本与数据分离的概念,可放在专门的测试文件中,比如excel、csv;

ephemeral-data:临时数据,即使用一次的数据,这种类型的数据可以用临时文件存储(比如dat、csv等)格式,然后进行参数化读取,或者直接写入脚本中;

3、数据量级

1)还是电商网站的某个场景,需要先执行登录,登录的账号比如是专门配置的一个测试账号,相对固定,那么将测试账号写入测试脚本也无可厚非。

不过我本人不喜欢将测试数据直接写入脚本,这种情况我会写入配置文件,然后实例化调用,这种情况就需要根据个人习惯来设计,没有固定的套路;

2)数据量级在几十——几百上千之间,这种时候,可以写入excel文件进行存储管理,但是excel的局限在于其本身目前最大支持65500+行的数据存储,

而且只支持单事务,如果需要多线程读取,就会变成瓶颈。

3)csv文件,结构简单、通用,可以和excel进行转换,可以减少存储文件size,且具备简单的安全性,可以在一定程度上替代excel成为数据存储文件。

我本人目前在大多数场景下也是使用csv类型的文件进行测试数据存储管理;

4)当测试数据超过一定量级,比如性能测试中,如果要执行并发测试或者稳定性测试,那么所需测试数据量级就很大,这时使用excel或者csv就会变得很不方便。

无论是从维护的成本还是便捷性考虑,都应该选择利用DB或其他高效的管理方式来存储和管理测试数据;

4、使用频次

测试数据的重用频次不同,也需要选择不同的存储方式,比如:

1)once:只使用一次的测试数据,那么只需要写入临时文件,用完作废或者删除即可;

2)often:即经常使用的测试数据,应根据数据量级,使用场景,数据类型选择合适的存储管理方式;

3)alway:可以理解为base-data或者持久数据,这种类型的数据因为其本身更新频次很低,或者数据量级较大,一般存储在DB中是比较好的一种管理方案。

综上所述,测试数据的存储和管理,没有固定的套路,需要结合业务场景,使用频次,数据类型和数据量级来综合考虑,设计合理高效的方案,才是正确的方式!

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

在漫长的人生道路上,坚持不懈的奋斗是通向成功的唯一途径,只有付出才能收获,只有拼搏才能超越自我,让努力成为你追逐梦想的翅膀!

困难并非终点,而是通往成功的必经之路。在面对挑战时,坚持信念,迈出勇敢的步伐,每一次的奋斗都将让你更接近梦想的彼岸。

在人生的舞台上,奋斗是最美妙的旋律,只要坚持梦想,付出努力,勇往直前,即使路途艰辛,也能绽放出属于自己的华丽。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nginx解析域名到指定端口

一、配置文件路径 在大多数Linux系统上,Nginx的配置文件通常位于/etc/nginx目录下。主要的配置文件是nginx.conf,而针对每个站点的配置文件通常存储在/etc/nginx/conf.d/目录或/etc/nginx/sites-available/目录下。 以下是一些常见的Nginx配置文件和目…

Linux学习记录——사십삼 高级IO(4)--- Epoll型服务器

文章目录 1、理解Epoll和对应接口2、实现 1、理解Epoll和对应接口 poll依然需要OS去遍历所有fd。一个进程去多个特定的文件中等待,只要有一个就绪,就使用select/poll系统调用,让操作系统把所有文件遍历一遍,哪些就绪就加上哪些fd…

ssm基于VUE.js的在线教育系统论文

摘 要 随着学习压力越来越大,课外参加补习班的学生越来越多。现在大多数学生采用请家教、自学、报名补习班的方式进行课外的额外学习。请家教费用昂贵,自学效率低,碰到自己不会的知识不能及时得到解达,报名补习班需要时间、地点的…

Uncaught TypeError: Cannot read properties of undefined (reading ‘remove‘)

在Vue 3中,你可能会遇到“Uncaught TypeError: Cannot read properties of undefined (reading remove)”这样的错误,这通常是因为在组件销毁时,尝试访问已经被销毁的元素或事件监听器。 为了解决这个问题,你可以在组件销毁之前&…

x-cmd pkg | trash-cli - 类 Unix 系统的命令行垃圾桶

目录 简介首次用户技术特点竞品和相关作品进一步阅读 简介 trash-cli 是类 Unix 系统的命令行垃圾桶,用于移动文件到回收站,同时会记录文件的原地址和删除日期。 该工具使用与 GNOME、KDE ​​和 XFCE 等桌面环境相同的垃圾桶,所以即使是非 …

Linux网络---DNS域名解析服务

引言:DNS域名解析服务主要讲解了4个实验 DNS正向解析实验DNS反向解析实验DNS主从服务器实验DNS分离解析实验 一、DNS基础 1、DNS简介 DNS域名系统 (Domain Name System 缩写为:DNS)是因特网的一项核心服务,它作为可…

PVE虚拟机配置文件恢复

一、pve 创建的虚拟机的配置文件位置 在宿主机的 /etc/pve/qemu-server,这里有创建虚拟机的相关硬件信息。 rootpve1:/etc/pve/qemu-server# pwd /etc/pve/qemu-server二、故障现象 在命令行执行qm list不显示虚拟机,查看 宿主机的 /etc/pve/qemu-ser…

Codeforces Round 913 (Div. 3)E 不进位各数位和与打表

Problem - E - Codeforces digsum(a)digsum(b)digsum(c)digsum(n) 要点一: 当左边和发生进位,比如56 11,那么数位和会变小。其实下一位就是相加后对9取余,各数位和必定变小的。 要点二: 然后就是组合情况了&#x…

2024.1.14

今天英语考试了,我复习了很久(也就每天晚上看一个多小时),但我是万万没有想到啊,居然这么简单,感觉就听力和作文像大学题,其他和初中题差不多,这下有经验了,下次考试不复…

Echarts可视化-数据请求-代码实现和思路

需求:为前端可视化图表提供数据支持。 实现: 时间戳获取优化(细化到秒) 根据时间获取数据(SQL编写) 前端需求数据返回(数据VO) 内容 Apache ECharts 营业额统计 用户统计 订单…

搜维尔科技:【简报】元宇宙数字人赛道,《全息影像技术应用》!

期待着看展的主角来到今天要参观的全息影像展,平时就喜欢看展的她对于所谓的全息影像非常好奇,于是她带着期待的心情进入展内。进入展内的主角看到的是与之前完全不同的画展,每幅画看起来就像真的一样,充满好奇的她在展览的各处游…

【ONE·MySQL || 复合查询】

总言 主要内容:主要介绍一些复杂的查询,涉及多表查询、交叉连接、内连接、外连接、子查询、合并查询等。       文章目录 总言1、基本查询回顾1.0、博文说明1.1、一些例题1.1.1、查询工资高于500或岗位为MANAGER的雇员,同时还要满足他们的…

Java中的封装性及构造方法

一、封装性 面向对象包括三大特征: 封装 继承 多态 封装的好处: 1.封装之后,对于那个事物来说,看不到这个事物比较复杂的那一面,只能看到该事物简单的那一面。 复杂性封装,对外提供简单的操作入口。 2.封…

Python爬虫|使用urllib获取百度首页源码

在这个博客中,我们将一起探索百度首页的源码,深入了解从URL请求到页面呈现的全过程。我们将使用Python的urllib.request库来模拟浏览器发送请求,并解码响应中的页面源码。通过分析源码,我们将揭示网页的结构、内容和背后的工作原理…

【Redis】AOF 源码

在上篇, 我们已经从使用 / 机制 / AOF 过程中涉及的辅助功能等方面简单了解了 Redis AOF。 这篇将从源码的形式, 进行深入的了解。 1 Redis 整个 AOF 主要功能 Redis 的 AOF 功能概括起来就 2 个功能 AOF 同步: 将客户端发送的变更命令, 保存到 AOF 文件中AOF 重写: 随着 Red…

在关系模式中,如何求闭包?

闭包: 1、包含本身,以及属性子集中能推导出来的部分 2、子集的组合能推导出单一子集或组合,若闭包中只含有组合中的单一子集(非组合),则无法推导出单一子集或组合 这么说可能有些含糊,直接上例题: 1、有关…

Halcon滤波器derivate_gauss 算子

Halcon滤波器derivate_gauss 算子 derivate gauss 算子不仅可以提取图像边缘,还有以下功能。 (1)平滑图像。 (2)边缘检测:提取图像的边缘。 (3)角点检测:检测图像上的角…

电脑重置网络后连不上网了怎么办

一般电脑重置网络后都会自动重新下载好网络配置,但是不免会出现一些意外,接下来就我遇到的重置后无法联网的解决方案 做一个分享: 1、按下“winR”打开运行输入 services.msc 。 2、找到 WLAN AutoConfig 和 Wired AutoConfig 服务&#xff…

如何安装Python

Python是一种流行的编程语言,拥有广泛的应用领域。为了开始使用Python,首先需要在计算机上安装Python解释器。在本文中,我们将介绍如何安装Python以及一些常见的安装步骤。 1. 下载Python 首先,你需要前往Python官方网站&#xf…

第 9 章 哈希表

文章目录 9.1 哈希表(散列)-Google 上机题9.2 哈希表的基本介绍9.3 google 公司的一个上机题: 9.1 哈希表(散列)-Google 上机题 看一个实际需求,google 公司的一个上机题:有一个公司,当有新的员工来报道时,要求将该员工的信息加入(id,性别,年龄,住址…),当输入该员…