全栈自动化测试技术笔记(二):准备工作的切入点

news2024/11/26 16:50:04

自动化测试技术笔记(二):准备工作的切入点

上篇整理的技术笔记,聊了自动化测试的前期调研工作如何开展,最后一部分也提到了工作的优先级区分。

这篇文章,接上篇文章的内容,来聊聊自动化测试前期的准备工作,需要考虑哪些方面。

测试环境选择和搭建

自动化测试运行环境,不外乎测试环境(SIT)、验收环境(UAT)、灰度环境(PRE)和生产环境(PROD)。

在不同的环境运行的目的、效果、优势和不足也各不相同,下面是不同环境的区分对比结果。

环境名称

优势

不足

测试环境(SIT)

节省环境资源,代码版本比较新,可及时验证,复用性强

服务不稳定,测试数据容易混淆,测试结果准确性不高,需要人工二次校验

验收环境(UAT)

服务相对稳定,环境复用性强,代码版本相对较新

测试数据容易混淆

灰度环境(PRE)

环境稳定,服务齐全,可以更好的进行业务流程的自动化测试

测试数据容易混淆,需要单独的维护和管理测试数据

生产环境(PROD)

环境稳定,服务齐全,主要用来做线上主流程巡检,防资损

需要单独维护测试数据和账号,且需要配置白名单过滤,防止污染生产数据

不同环境对自动化测试开展的便利性和制约性不同,建议根据自动化测试的成熟度、要解决的问题来选择不同的环境。

当然,如果选择搭建单独的自动化测试环境,就要考虑环境资源申请、域名、代码仓库权限、维护成本等因素。

还有个很容易忽视的点就是服务器操作系统类型和版本,举个我当时遇到的例子:

要做web的UI自动化测试,工具选择了selenium,我们常用的浏览器是chrome,用户使用环境是windows,自动化测试要求快速无感执行,

就需要考虑Linux环境下基于chrome浏览器的case执行(chromium),还要考虑Linux操作系统对chrome的适配问题(centos和uhuntu,以及centos的版本选择6.5还是7.2),甚至还要考虑浏览器驱动的适配问题。

测试框架选型和设计

近几年成熟稳定的开源自动化测试工具和框架可选择的比较多了,但具体问题具体分析,测试框架的选型和设计同样是很重要的事情。在选择测试框架或者工具时,一般需要考虑如下几方面:

  1. 自动化测试类型:UI/API/UNIT,UI自动化要考虑web和移动端的区别,单元测试要考虑被测系统的开发语言;
  2. 框架自身的生态:框架支持的编程语言、社区活跃度、文档是否齐全、业内落地案例、测试同学自身的技术栈;
  3. 框架的学习成本:不能只考虑选择个人熟悉的,还要考虑后续的多人协同,团队其他同学的学习上手难度;
  4. 框架的维护成本:后期case多了或业务场景变更后,case的维护成本以及框架本身是否提供了更好的封装模块;

测试脚本和数据管理

测试脚本和测试数据管理,需要结合自动化测试的执行环境一起来看。

一般来说,测试脚本为了便于统一管理和多人协作维护,现在都是采用Git+gitlab的方式,做好版本管理和分支规范即可。

而测试数据的管理,相对来说比较复杂,可选的方式也不同。下面是常见的几种测试数据管理方式对比:

测试数据管理方式

优势

不足

Excel参数文件形式

数据维护方便,简单快捷

不利于多人协作,数据量大了之后数据维护更新成本高

配置文件形式

适合热点数据/通用信息管理,如账号密码等

无法适用于复杂场景和大规模的数据管理

数据库统一管理

便于数据隔离,统一管理

一般是配合单独的自动化环境一起维护

测试范围和校验粒度

标题所述的两点,其实是同一种问题。

测试范围的筛选,需要结合投入的资源,项目紧急程度来综合评估,一般测试范围的覆盖优先级,可以遵循这个顺序:核心业务——高频业务——问题较多的业务。

覆盖率的考量,可以遵循这个顺序:核心场景——核心业务流程——异常场景,如此覆盖后,再考虑逆向流程。

测试用例的粒度,可以参照功能测试用例的区分,从 P0 &冒烟case到 P1 再到 P2,以此类推。

当然,如果遇到比较复杂和亢长的流程,可以考虑拆分为多个测试用例,在同一个任务里按上下游关系去执行。

粒度的设定和拆分,在不同阶段有不同的划分。刚开始落地时,可以由粗到细,先实现再考虑不断优化。

持续集成和测试报告

自动化测试,如果无法做到持续集成快速验证,那就不能称之为自动化。

要做到将自动化测试,我个人认为有如下几个标识来判断:

  1. 执行的频次和效率:比如1天可以执行100个功能case,那自动化最起码要在10分钟甚至1分钟内完成;
  2. 执行结果自动校验:功能测试可以人工来判断测试是否通过,自动化测试的通过率&成功率需要达到一定的成功率(比如90%以上),且失败的case可以重试验证,或者失败的结果和日志及时通知给相关人员;
  3. 无人值守自动运行:这点其实很多方法可以实现,比如定时任务,条件触发。当然做到这点还算不上自动化,必须考虑到如果出现重大问题还需要及时的发现和告警通知;
  4. 是否融入交付流水线:交付流水线即我们今天常说的CICD或者devops流水线,常见的场景有服务打包编译后的自动化单元测试,服务自动发布后的接口自动化和UI自动化测试,以及服务上线前和上线后的自动化冒烟和回归测试,甚至还可以加入线上的日常自动化巡检。

外部调用和多人协作

以电商业务为例,支付需要调用三方,短信通知需要调用短信服务商,发货物流需要调用三方,但实际工作中三方提供的环境往往不满足我们的测试需要,这个时候就需要一定的手段来解决这个问题。常见的手段如下:

  1. 挡板&mock(最常用的手段);
  2. 流量染色+影子库(实现成本较大,技术复杂性较高);
  3. 和三方协商一致后配置专门的白名单或者渠道(很难协商);

至于多人协作问题,其实涉及很多方面,比如:

  1. 测试数据专人统一维护,还是按需维护,提供专门的工具或者流程规范约束;
  2. 测试用例和测试脚本的维护,各管各的还是提供统一的规范demo,专人检查或者定时review;
  3. 测试范围的边界如何界定,重合部分如何区分职责;

以上就是自动化测试落地前的准备工作,内容来源于我之前做自动化测试工作时的一些笔记内容,稍加提炼和修改。

下一篇我会聊聊自动化测试落地方案以及落地过程中常见的问题以及解决思路。

 总结:
现阶段很多人都在说软件测试太内卷了,工作太难找了,竞争太激烈了。那么如何在这样的现状下使得自己更具有竞争力呢?笔者认为大家需要迅速学习软件测试的硬技能,提升自己的业务能力,早日摆脱初中级测试的Title,虽然测试人员众多,但是高级的软件测试人员还是很稀缺,有很多人挂着高级测试的头衔却还在干着初中级测试的活。在掌握这些硬技能的同时,软技能的培养同样重要,沟通能力、自主学习能力越来越被企业看重。

如果不想被这个时代淘汰,就要做好持续学习的准备。下方给大家准备了全套的软件测试,自动化测试全套教程。

【需要的可以点击下方官方推广小卡片扫码备注000免费领取】

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

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

相关文章

插件 sortablejs:HTML元素可拖动排序

插件 sortablejs 用于可重新排序拖放列表的JavaScript库&#xff1b;关键链接&#xff1a;npm 地址 Github 地址 安装 npm i sortablejs引入 import Sortable from "sortablejs"HTML <ul id"items"><li>item 1</li><li>item …

Sentinel降级和热点Key限流

目录 一、降级规则 &#xff08;一&#xff09;官网 &#xff08;二&#xff09;基本介绍 &#xff08;三&#xff09;降级策略实战 二、热点key限流 &#xff08;一&#xff09;基本介绍 &#xff08;二&#xff09;官网 &#xff08;三&#xff09;测试 &#xff08…

谷粒学苑第二章前端框架-2.2前端框架开发过程

一、前端框架开发过程 第一步&#xff1a;添加路由 src/router模块用来管理路由。 第二步&#xff1a;点击某个路由&#xff0c;显示路由对应页面内容 component: () > import(/views/table/index), 表示路由对应的页面&#xff0c;是views/table/index.vue页面 第三步&a…

vue的生命周期函数不能使用箭头函数

如果使用过react和vue&#xff0c;应该发现过一个问题&#xff1a;vue告诉我们不应该把方法、生命周期用箭头函数去定义&#xff1b;而在react的类组件中&#xff0c;把方法写成箭头函数的形式却更方便。 要问其原因&#xff0c;大部分人都只把他当一个理所当然的规定。但把这…

Myba tis基础2

接口代理方式代理开发方式介绍编写StudentMapper接口测试代理方式小结动态sql语句动态 SQL 之<**if>**动态 SQL 之<**foreach>**SQL片段抽取分页插件介绍分页插件的使用分页插件的参数获取小结MyBatis的多表操作多表模型介绍多表模型一对一操作多表模型一对多操作多…

Python创意作品说明怎么写,python创意编程作品集

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;Python创意作品说明怎么写&#xff0c;python创意编程作品集&#xff0c;现在让我们一起来看看吧&#xff01; 1、有哪些 Python 经典书籍 书名&#xff1a;深度学习入门 作者&#xff1a;[ 日&#xff3d; 斋藤康毅 …

《Linux运维实战:Centos7.6部署rabbitmq3.9.16镜像模式集群》

一、RabbitMQ集群的三种模式 RabbitMQ有三种模式&#xff1a;单一模式&#xff0c;普通集群模式&#xff0c;镜像集群模式。 单一模式&#xff1a;即单机情况不做集群&#xff0c;就单独运行一个rabbitmq而已。 普通集群模式&#xff1a;普通集群模式下&#xff0c;不同的节点…

TryHackMe-Carnage

Carnage 花了两天学了下wireshark 顺便看一下现在我的红队进程 由于ad在进攻性渗透测试当中已经早早收入囊中&#xff0c;这让我在红队进度中变快 现在&#xff0c;红队路径剩下的room应该都算是在整个path当中比较有难度的了&#xff0c;我不经意的查看了剩下的部分room&…

基于昇腾计算语言AscendCL开发AI推理应用

01 初始AscendCL AscendCL&#xff08;Ascend Computing Language&#xff0c;昇腾计算语言&#xff09;是昇腾计算开放编程框架&#xff0c;是对底层昇腾计算服务接口的封装&#xff0c;它提供运行时资源&#xff08;例如设备、内存等&#xff09;管理、模型加载与执行、算子…

c函数篇 入门 阶乘 ,素数(2019年)数列求和(2021年),完数,完全平方数,因子求和,x的y次方。

目录 1: 计算s1!2!3!......n! 2:素数问题2019 3:编写程序判断一个数是不是完数 4:编写函数 求x的y次方 完成pow(x,y)的功能 5:输出1到1000内所有完全平方数 6:求因子之和 数列求和 1: 计算s1!2!3!......n! #include<stdio.h> long fac(int n) {int i;long s1;for…

龙智宣布与Incredibuild建立战略合作伙伴关系

近日&#xff0c;龙智宣布与领先的加速编译软件提供商Incredibuild建立战略合作伙伴关系。 Incredibuild是一款加速编译工具。凭借其独特的进程虚拟化技术&#xff08;Vritualized Distributed Processing™&#xff09;&#xff0c;使用户能够轻松地加速代码构建、测试和许多…

Windows10下安装git

文章目录安装环境&#xff1a;Windows10 64bit官网下载&#xff1a;https://git-scm.com/download/win国内下载源&#xff1a;https://npm.taobao.org/mirrors/git-for-windows/ 从官网下载Git安装包&#xff0c;双击下载后的安装包Git-2.32.0-64-bit.exe,开始安装 选择HTTPS…

java面试题(十八)spring MVC

3.1 什么是MVC&#xff1f; 参考答案 MVC是一种设计模式&#xff0c;在这种模式下软件被分为三层&#xff0c;即Model&#xff08;模型&#xff09;、View&#xff08;视图&#xff09;、Controller&#xff08;控制器&#xff09;。Model代表的是数据&#xff0c;View代表的…

【解决方案】老旧小区升级改造,视频智能化能力如何提升居民安全感?

一、需求背景 随着我国社会经济的快速发展与进步&#xff0c;城市宜居程度成为城市发展的重要指标&#xff0c;城市的发展面临着更新、改造和宜居建设等。一方面&#xff0c;社区居民对生活的环境提出了更高的要求&#xff1b;另一方面&#xff0c;将“智慧城市”的概念引入社…

[MySQL教程①] - MySQL的安装

目录 ❤ Windows下安装MySQL ❤ 下载mysql installer安装 ❤ 下载zip安装包安装 现在作为服务器操作系统的一般有三种&#xff0c;Windows Server&#xff0c;Linux&#xff0c;Unix&#xff0c;在这里我们只介绍在windows下和linux下安装mysql&#xff0c;Unix下安装应该…

03 AC-AC变换器(ACAC Converter)简介

文章目录0、 杂记1、AC-AC变换器概述2、交流调压电路A 相控交流调压3、交流调压电路B 三相相控交流电压4、交流调压电路C 斩控交流电压5、交流调功电路6、交-交变频电路A 周波变换器7、交-交变频电路B 矩阵变换器8、AC-AC变换器总结0、 杂记 在复杂的周期性振荡中&#xff0c;…

百度贴吧发帖软件如何发布?

百度贴吧发帖软件如何发布&#xff1f;贴吧软件发帖顶帖视频教学&#xff0c;防删图技术视频教学#贴吧发帖#贴吧顶帖 大家好&#xff0c;今天给大家讲一下一个贴软件发电机顶帖的视频教学。先给大家讲一下软件一个发帖。今天我们用的一个软件叫做神机。神机我们现在看到的软件…

RESTful API 为何成为顶流 API 架构风格?

作者孙毅&#xff0c;API7.ai 技术工程师&#xff0c;Apache APISIX Committer 万物互联的世界充满着各式各样的 API &#xff0c;如何统筹规范 API 至关重要。RESTful API 是目前世界上最流行的 API 架构风格之一&#xff0c;它可以帮助你实现客户端与服务端关注点分离&#x…

Vue3 企业级优雅实战 - 组件库框架 - 12 发布开源组件库

前面使用了 11 篇文章分享基于 vue3 、Monorepo 的组件库工程完整四件套&#xff08;组件库、文档、example、cli&#xff09;的开发、构建及组件库的发布。本文属于这 11 篇文章的扩展 —— 如何发布到 GitHub 上以及如何快速利用 GitHub 发布组件库文档。这样优雅哥的《组件库…

Springboot862大学生社团管理系统

后台两大功能模块&#xff0c; (1)管理员&#xff1a;个人中心、学校管理、学院管理、年级管理、班级管理、社长管理、学生管理、社团类型管理、社团信息管理、社团成员管理、退团记录管理、社团活动管理、活动报名管理、退出活动管理、社团事务管理、系统管理。 (2)社长&#…