全网超细,自动化测试-数据管理/实施落地问题,跟着直接上高速...

news2024/11/16 5:55:16

目录:导读

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


前言

自动化测试——测试数据如何管理

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

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

1、业务场景

①比如在UI自动化测试中,需要测试某个电商网站的各个业务模块,但前提是要用户登录。

这个用来执行登录的测试账号数据往往是固定的,那么专门将一组username和password放在一个测试数据文件或者测试数据库中,这样就显得太笨重,耗时费力。

将其写入测试脚本或者写入配置文件,直接引用效率会更高。

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

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

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

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

2、数据类型

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

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

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

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

3、数据量级

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

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

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

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

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

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

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

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

4、使用频次

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

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

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

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

自动化测试——实施落地

1、当前面临的痛点是什么?

引入自动化测试是为了解决工作过程中遇到的问题或痛点,所以在引入之前第一个要考虑的是当前面临的痛点是什么。

比如:线上功能bug频发,人力资源时间不足导致团队加班太多,版本迭代快/多版本并行等,且这些痛点都已经严重影响到了团队的日常工作效率和氛围。

先将面临的问题和痛点列出来,按照影响范围和优先级排序,然后分析背后的原因。

2、痛点背后的原因有哪些?

线上功能bug频发,可能的原因有漏测/case覆盖率不足/需求变更快/发布流程不规范等原因。

人力或者时间不足,背后的原因可能有团队同学能力不足/团队效率不高/管理混乱/缺乏提效手段和工具。

版本迭代快多版本并行的情况,背后的原因就更复杂了,涉及到流程/管理/业务成熟度/企业所处阶段等多种因素。

3、有什么可以解决问题的方案?

分析出团队面临的痛点以及背后的原因,我的建议是将原因列出来进行归类,比如:

资源问题:人手不足/工时评估不合理;
流程问题:研发交付流程混乱,发布不可控;
管理问题:团队效率不高,管理混乱,职责不清;

技术建设问题:缺乏CI/CD工具&需求/代码/case/bug管理工具,团队同学缺乏相关经验;

4、自动化是不是最合适的解决方案?

问题分类和排优先级之后,就是case by case的分析有哪些解决方案了。假设某部分问题可以通过自动化测试来解决或者改善,那就可以着手进行下一步分析。

5、当前的情况是否适合开展自动化测试?

“自动化测试适用于重复度较高的工作,且不是一蹴而就即插即用就能解决问题的。需要相对稳定的业务需求迭代、比较成熟稳定的研发团队和一定的技术基础设施建设,以及较为规范的流程才能更好的落地,达到提效的目的”。

举个例子:
某创业公司,当前处于产品初创和快速迭代期,追求的是快速推出MVP产品推向市场,业务不稳定,人力资源紧张,技术基础设施很差,那这个时候是不适合做开展自动化测试的。

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

生命中最伟大的胜利,不是战胜别人,而是战胜自己。用汗水和努力书写辉煌,坚持奋斗,超越自我,成就那个无法想象的更好的自己!

无论风雨多么艰难,永远不要放弃追求梦想的勇气。奋斗是人生的底色,努力是成功的密码。坚定信念,坚持前行,你一定能够创造出辉煌的人生!

成功需要勇气、耐心和恒心,但最重要的是你的毅力。保持信心,坚持追求梦想的道路,哪怕前方有无数困难,你一定能够收获属于自己的美好未来!

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

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

相关文章

C++迭代器失效

在STL中,有些操作会导致迭代器失效,即之前获取的迭代器无法再安全地使用。这是因为这些操作可能会改变容器的结构,例如插入、删除元素等。 具体来说,以下情况下迭代器会失效: 1. 当插入或删除元素导致容器中的内存重新…

Go并发可视化解释 - sync.WaitGroup

场景 Avito是一名校车司机,他帮助4个Gopher孩子上学。每天,Avito在他们的社区等待孩子们。他不知道孩子们需要多长时间,但他确切地知道有4个孩子他需要等待。 1*aZnEggopv4Tsbyyj3e5JFg.png 当一个孩子准备好时,他/她会说&#xf…

跨境干货 | 如何搭建自己的独立站?

很多跨境电商在第三方平台经营许久后,会想摆脱第三方规则的限制建立起自己的品牌。 对于新手来说建立独立站是很有挑战的,建立独立站前首先我们需要了解一下什么是独立站?从字面意思来理解就是拥有属于自己的网站自己搭建跨境独立站&#xff…

【Python语言速回顾】——基础语法

目录 引入 一、PEP8代码规范和风格 二、变量和数据 1、变量 2、运算符 三、三种程序结构 1、分支结构 2、循环结构 四、组合数据类型 1、列表(list) 2、元组(tuple) 3、字典(dict) 5、集合&…

Python学习基础笔记七十七——json序列化

客户端和服务端之间需要交换数据才能完成各种功能。 假设 服务端程序都是用Python语言开发的话,那么 服务端从数据库中获取的最近的交易列表,可能就是像下面这样的一个Python列表对象: historyTransactions [{time : 20170101070311, #…

LoadRunner录制脚本+编写脚本

LoadRunner安装* 为什么选择LoadRunner 1)Jmeter没有录制功能 2)可以设计非常非常丰富的测试场景 3)LoadRunner能够产出非常丰富的测试报告 LoadRunner三大组件的关系 每个组件是干什么的 VUG:录制脚本,&#xff…

天梯赛:L1-005 考试座位号

每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试…

线程是如何进行创建的

对于任何一个进程来讲,即便我们没有主动去创建线程,进程也是默认有一个主线程的。线程是负责执行二进制指令的,它会根据项目执行计划书,一行一行执行下去。进程要比线程管的宽多了,除了执行指令之外,内存、…

局域网下多台windows电脑时间同步

windows时间同步 最近在项目中遇见了多台windows电脑的时间同步问题。在这个项目中,有五台电脑,五台电脑处于同一局域网下,其中有一台可以连接互联网(A电脑)。我需要将其他四台电脑(B、C、D、E电脑&#xf…

在Word中,图片显示不全

在今天交作业的时候,发现了一个非常SB的事情,把图片复制过去显示不完全: 使用文心一言查看搜索了一下,发现可能是以下几种原因: 图片所在行的行高设置不正确。可以重新设置行高,具体步骤包括打开图片显示…

【Java基础面试三十八】、请介绍Java的异常接口

文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。 面试官:请介绍Java的异常接口 …

LabVIEW中PID控制的的高级功能

LabVIEW中PID控制的的高级功能 比例-积分-微分(PID)控制占当今控制和自动化应用的90%以上,主要是因为它是一种有效且简单的解决方案。虽然PID算法最初用于线性、时不变系统,但现在已经发展到控制具有复杂动力学的系统。在现实世界…

git_笔记

git 学习视频 【【狂神说Java】Git最新教程通俗易懂】 https://www.bilibili.com/video/BV1FE411P7B3/?p10&share_sourcecopy_web&vd_source271b4386fd06dbbfd6504cf65bb85f31 git的下载与安装 git官网: https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%…

MATLAB关于线性优化和整数线性优化

1.线性优化 x linprog(f,A,b,Aeq,beq,ub.lb) A&#xff0c;b是不等式约束Ax<b中的矩阵A与向量b&#xff0c; Aeq&#xff0c;beq是等式约束中的矩阵Aeq与向量beq&#xff0c; ub&#xff0c;lb是决策变量上下界 2.混合整数线性优化函数 x intlinprog(f,intcon,A,b,Aeq,beq…

【数据结构】面试OJ题——时间复杂度

目录 一&#xff1a;旋转数组 思路&#xff1a; 二&#xff1a;消失的数字 思路&#xff1a; 一&#xff1a;旋转数组 189. 轮转数组 - 力扣&#xff08;LeetCode&#xff09; 给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负…

模板(进阶)

文章目录 1.非类型模板参数1.1 定义&#xff1a;1.2 应用&#xff1a; 2.模板特化&#xff08;特化必须原模版&#xff09;2.1类模板特化2.2 函数模板特化 3模板的分离编译3.1 什么是分离编译3.2模板不能实现分离编译的原因&#xff08;简&#xff09;&#xff1a;3.3解决方法实…

VBA技术资料MF72:利用函数判断文件及工作表存在

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。我的教程一共九套&#xff0c;分为初级、中级、高级三大部分。是对VBA的系统讲解&#xff0c;从简单的入门&#xff0c;到…

初始c++(2)

目录 目录&#xff1a; 1. 引用 2. 内联函数inline 3.auto关键字(大概的认识) 4.基于范围的for循环(c11) 5.nullptr(c11) 本章最重要的知识点其实是前两个(详细讲解),后面的大概只会介绍一下用法。 文章开始&#xff01;&#xff01;&#xff01;&#xff01; 1&#xff1a;引…

微信小程序授权登录介绍

目录 一. 小程序登录如何获取微信用户信息 二. 小程序微信授权登录示例 后台代码 小程序代码 效果展示 三. 微信emoji存储问题 一. 小程序登录如何获取微信用户信息 小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识&#xff0c;快速建立小程序内…

【ArcGIS模型构建器】01:模型构建器Model Builder介绍

文章目录 一、 空间建模概述1. 空间建模概述2. 空间建模步骤 二、Model Builder建模1. Model Builder基础2. Model Builder操作3. Model Builder高级进阶操作 一、 空间建模概述 1. 空间建模概述 空间建模的目的是解决与地理有关的问题&#xff0c;通常涉及多种空间分析操作的…