如何设计一个自动化测试平台

news2024/11/19 4:26:29

平台解决了什么问题

一般在企业内,技术团队如果规模比较小,很少会专门投入资源去做平台化的事情,特别是测试团队,无论是成本预算还是技术能力,先天技术能力不足,后天可投入的资源缺乏。

而平台的特点在于:通过平台将操作流程标准化,抹平不同个体间的认知和技术差异,减少重复造轮子带来的的资源浪费以及排查和解决问题的成本,进一步提高人效比

大白话来说,就是人太多了,理解能力和技术差异太大,没那么多时间和资源浪费在不断造轮子和来回对比扯皮上,直接平台化,标准化,通过权限管理来标注操作的边界,保证大家按照同一个方向和目标甚至度量标准去做事情

技术本身的实践、迭代和演进是一个过程,从软件工程的角度来说,测试平台就是“只做刚刚好的设计”、“先做MVP方案然后不断迭代小步快跑”这些很好的软件工程实践理念某个阶段的产物。

当然,言必称平台,动则撸代码的方式,也有企业发展和个人职场生存之间的博弈成分在内。

Python自动化测试视频教程:2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+_哔哩哔哩_bilibiliicon-default.png?t=N7T8https://www.bilibili.com/video/BV1AF411T7qJ/?spm_id_from=333.999.0.0

 

测试平台的功能架构

回到本文的正题,要设计一个自动化测试平台,最基本也是最核心的功能有如下几点:

  • 文件管理:脚本、数据的上传/下载、格式校验等功能;
  • 任务管理:测试任务创建、更新、删除、批次管理
  • 任务调度:测试任务执行,定时/触发等灵活的调度策略;
  • 报表统计:主要包括场景、用例、任务、报告、状态等维度的数据汇总;
  • 监控日志:包含测试任务的执行状态、时间、异常以及告警通知等功能;
  • 节点管理:执行器(node节点)的调度、配置、状态、插件、验签等功能;
  • 系统设置:用户权限、项目权限、插件管理等;
  • mock功能:隔离上下游依赖,确保任务执行的可靠性,避免外部影响;

当然,上述的功能模块是相对比较通用的,在团队内部落地时,可以根据自身具体情况进行扩展。综合上述的功能模块,自动化测试平台的功能架构,可以用下面一张图来概括(仅做示意和参考):

测试平台的技术架构

聊完了功能架构,接下来聊聊技术架构。

在我看来功能架构的设计和功能模块的划分其实是很抽象的一件事,相比于技术架构,功能架构其实更为重要。好比与一个产品的好坏其实更多的取决于如何设计,而不是用了java还是PHP。

自动化测试平台的技术架构,大致可用下图来概括(仅做示意和参考):

技术架构大致的调用关系和组件作用如下:

  • 通过UI界面进行编辑和下发任务执行消息,一般采用http协议通信;
  • 执行引擎支持多协议和规则格式等校验,将任务信息推送给node集群;
  • 从gitlab中获取对应的自动化脚本,并推送到具体的node节点来执行任务;
  • 从 S3 或其他文件管理组件中获取对应测试数据文件,并推送到node节点;
  • 通过任务调度组件比如 xxjob 来进行具体的任务分配执行,以及状态管理;
  • 任务执行过程产生的日志存储于es中,通过集成elk组件来做日志管理和展示;
  • 任务执行完成后产生的报告数据,以及项目/场景/用例/配置等冷数据存储于mysql;
  • node节点内置listener,负责将任务状态和资源耗用等数据通过kafka推送到工作台展示;

上图所展示的技术架构和相关组件,仅做参考。

在实际的技术选型过程中,还是需要根据团队自身的技术栈以及需求灵活选择合适的方案。

相比于自动化测试平台,我们常说的自动化测试框架,就显得很简单了。只需要编程语言+测试框架+持续集成工具+测试报告工具,就能完成基本的自动化测试工作。

平台并不是万能的,平台相比于最基本的自动化测试框架,也并没有什么优越性。根据团队的需求,技术能力以及资源预算选择合适的解决方案,才是最优解。

自动化测试的重点并不是平台,也不是选择什么高大上的框架。重点是,先让测试任务本身run起来,能快速的验证和反馈结果,才是最重要的。

 Python自动化测试视频教程:2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+_哔哩哔哩_bilibiliicon-default.png?t=N7T8https://www.bilibili.com/video/BV1AF411T7qJ/?spm_id_from=333.999.0.0

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

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

相关文章

杭州亚运会用到哪些黑科技?

Spring实战系列文章: Spring实战 | Spring AOP核心秘笈之葵花宝典 Spring实战 | Spring IOC不能说的秘密? 国庆中秋特辑系列文章: 国庆中秋特辑(八)Spring Boot项目如何使用JPA 国庆中秋特辑(七&#…

Studio one 6.5中文直装版最新版,一键安装丨无套路分享丨宿主软件丨机架直播

Studio One 6.5 具有最先进的沉浸式混音和集成的空间音频制作工作流程。还有新的插件,改进的乐谱功能和对 DAWproject 的支持。 PreSonus 的“.5”更新通常都有比较大的变化,这次也不例外。Studio One 6.5 增加了一种全新的工作方式,完全集成…

博弈论——博弈信息结构

博弈信息结构 0 引言 在一个博弈构成中,博弈信息结构是不可或缺要素。博弈信息,顾名思义,就是在博弈中,博弈方对于信息的了解。知己知彼,百战不殆。和短兵相接的战争一样,只有充分了解自己的优劣势&#x…

python---求面积练习:提示用户输入圆的半径,根据公式S = πr2求圆的面积

求面积练习:提示用户输入圆的半径,根据公式S πr2求圆的面积 r float(input(‘请输入要计算圆的半径:’)) PI 3.14 s PI * r ** 2 print(f’圆的面积为:{s}) r float(input(‘请输入要计算圆的半径:’)) ------…

NetSuite ERP系统健康检查

这个题目来自最近的一个项目感受,“上线即停滞”。这是在中小型企业十分普遍的一个情况,一旦上线后,基本上信息化的建设就停止了。这是一个中小企业信息化的一个特点,因为其IT力量比较弱,所以在信息化的推动中缺乏话语…

蓝桥杯(等差素数列,C++)

思路: 1、因为找的是长度为10,且公差最小的等差素数列,直接用枚举即可。 2、枚举用三重循环,第一重枚举首项,第二重枚举公差,第三重因为首项算一个,所以枚举九个等差素数。 代码:…

异步使用langchain

文章目录 一.先利用langchain官方文档的AI功能问问二.langchain async api三.串行,异步速度比较 一.先利用langchain官方文档的AI功能问问 然后看他给的 Verified Sources 这个页面里面虽然有些函数是异步函数,但是并非专门讲解异步的 二.langchain asy…

08Maven中的继承和聚合的作用

Maven中的继承 实际开发中对一个比较大型的项目进行了模块拆分 , 一个project下面创建了很多个modul, 每一个module都需要配置自己的依赖信息 开发中使用的同一个框架内的不同jar包,它们应该是同一个版本,所以整个项目中使用的框架版本需要统一 传统方…

qt-C++基于QWidget的程序模板

qt-C基于QWidget的程序模板 code review! 文章目录 qt-C基于QWidget的程序模板1.文件结构1.widget.h2.widget.cpp3.main.cpp4.mytest.pro5.widget.ui 1.文件结构 1.widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACE namespace Ui { cl…

03.生成式学习的策略与工具

目录 生成式学习的两种策略生成的物件介绍文句影像语音 策略一&#xff1a;各个击破&#xff08;Autoregressive (AR) model策略二&#xff1a;一次到位&#xff08;Non-autoregressive (NAR) model&#xff09;二者的比较其他策略二合一多次到位 AIGC工具New BingWebGPTWebGPT…

python项目之AI动物识别工具的设计与实现(django)

项目介绍&#xff1a; &#x1f495;&#x1f495;作者&#xff1a;落落 &#x1f495;&#x1f495;个人简介&#xff1a;混迹java圈十余年&#xff0c;擅长Java、小程序、Python等。 &#x1f495;&#x1f495;各类成品java毕设 。javaweb&#xff0c;ssm&#xff0c;spring…

只要掌握Win32应用程序错误的来龙去脉,就没必要惊慌失措

也许你遇到了一个问题&#xff0c;你试图运行的程序已损坏甚至丢失。在这种情况下&#xff0c;Windows将无法正确运行该文件&#xff0c;因此&#xff0c;操作系统将生成一个错误——文件不是有效的32位应用程序或文件不是无效的Win32应用程序。 错误通常是因为可执行文件不是有…

【大作文】【图表】【第一段】

描述主题&#xff1a; how sb do the factors that sb do the intention of

万字解析——区块链hyperledger fabric2.2部署实战教程

导航 一、前言二、hyperledger fabric介绍三、测试网络示例3.1 搭建开发环境3.2 安装示例、二进制和 Docker 镜像3.3 使用Fabric测试网络3.4 使用认证机构建立网络 四、汽车生产应用4.1 搭建开发环境4.2 注册登记等操作使用4.3 智能合约4.4 更新账本 五、商业票据应用5.1 运行网…

Adobe2024 全家桶更新了,PS、Ai、AE、PR应用尽有

Adobe2024 全家桶更新了&#xff0c;包含的PS、Ai、AE、PR......个人学习&#xff0c;专业领域都是必不可少的软件都有&#xff0c;需要的不要错过了。 如果你不知道从哪里安装这些工具&#xff0c;小编为大家带来了破J版资源&#xff0c;附上详细的安装包及安装教程。 Mac软件…

bat一键给windows server 2012 打补丁

流程图 脚本 install.bat 主脚本&#xff0c;整理实现逻辑都在这 ECHO OFF REM 自动判断权限问题&#xff0c;主动获取管理员权限>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" if %errorlevel% NEQ 0…

LSTM模型的讲解与运用

实验目的&#xff1a; 循环神经网络(RNN)是一类以序列数据为输入&#xff0c;在序列的演进方向进行循环且所有循环单元按链式连接的神经网络。目前RNN已经广泛应用于语音识别、文本分类等自然语言处理任务中。本实验通过采用循环神经网络的变体长短期记忆网络(LSTM)&#xff0…

解决axios不发起请求的问题

一个很简单axios发起的get请求&#xff0c;但是network就是没有xhr记录&#xff1a; 找了半天也没有找到原因&#xff0c;后来问了chatgpt才找到原因&#xff1a; 请求地址url前面没有const关键字&#xff0c;此时url相当于undefined&#xff0c;而axios在url为undefined时不会…