SOFAActs 介绍-01-白盒测试框架 overview

前言

大家好,我是老马。

sofastack 其实出来很久了,第一次应该是在 2022 年左右开始关注,但是一直没有深入研究。

最近想学习一下 SOFA 对于生态的设计和思考。

sofaboot 系列

SOFABoot-00-sofaboot 概览

SOFABoot-01-蚂蚁金服开源的 sofaboot 是什么黑科技?

SOFABoot-02-模块化隔离方案

SOFABoot-03-sofaboot 介绍

SOFABoot-04-快速开始

SOFABoot-05-依赖管理

SOFABoot-06-健康检查

SOFABoot-07-版本查看

SOFABoot-08-启动加速

SOFABoot-09-模块隔离

SOFABoot-10-聊一聊 sofatboot 的十个问题

SOFAActs 介绍

ACTS(AntCoreTest)源于蚂蚁金服多年金融级分布式架构工程的测试实践的积累与沉淀,是一款白盒测试框架,旨在为企业提供高效、精细化的接口自动化测试。

与现有的诸如 TestNG 等开源框架相比,ACTS 除了具备通用的数据自动化驱动等测试能力外,还具有契合快速的互联网发展和复杂的分布式金融系统特点的模型驱动、可视化编辑和标准流程引擎等新特性,可辅助工程师高效、高质量地完成接口测试用例编写以及标准化精准化测试验证。

ACTS 是基于数据模型驱动测试引擎执行的的新一代测试框架(如图1所示),适配 TestNg+Spring 的测试上下文环境,以 YAML 为数据载体并在此上构建数据模型驱动,实现了一站式编辑、精细化校验和高效用例管理等,可以有效提高测试效率。

architecture

运行原理

principle

  1. 测试脚本启动的时,ActsDataProvider 会启动被测方法(被 @Test 注解的方法),加载对应的用例数据文件(以 YAML 文件承载),然后转换成对应的 PrepareData 对象;

  2. runTest 开始执行时会传入 PrepareData 和用例名称,ACTS 根据这些信息组装出 ActsRuntimeContext 上下文并在整个过程中传递,同时初始化 TestUnitHandler 测试处理器。runTest -> process 方法执行期包含如下四个子流程:

说明方法
清理clear(actsRuntimeContext)
准备prepare(actsRuntimeContext)
执行execute(actsRuntimeContext)
检查check(actsRuntimeContext)

方法功能说明: + 清理阶段:清理准备数据、校验数据,防止脏数据对测试脚本产生影响; + 准备阶段:准备 DB 数据等; + 执行阶段:调用被测方法,捕获返回结果和异常等信息; + 检查阶段:根据测试数据,校验返回结果、DB 数据和异常信息等内容。

功能描述

ACTS 提供了以下能力:

2.1 一站式编辑

框架实现了测试数据与测试代码的分离,同时配套提供可视化编辑器 ACTS IDE,通过 ACTS IDE 可以快速地录入、查看和管理用例数据,有效减少重复性编码。

2.2 精细化校验

为了提高返回结果、DB 数据等期望数据的填写效率和减少检验点遗漏,框架提供了预跑返填功能;同时在 ACTS 校验规则标签的标记下,实现期望 DB 数据、期望结果等数据的精细化校验。

2.3 灵活可扩展

ACTS 提供了丰富的 API ,其封装于 ActsRuntimeContext 类中,借助 API 可快速获取和设置自定义参数、用例入参、期望结果等,满足用户对用例数据的自定义操作;

同时,框架的 ActsTestBase 测试基类对外暴露各个执行阶段方法,包括 prepare,execute,check,clear 等,例如在测试类中通过重写 process 方法可将整个测试脚本重新编排。

2.4 统一配置能力

配置文件中提供丰富的配置能力以定制化框架的个性需求。

应用场景

基于 SOFABoot 搭建的应用,在 Intellij IDEA 开发环境下快速编写和执行接口测试用例。推荐使用 Intellij IDEA 2017 以便能更好地兼容 ACTS IDE。

小结

希望本文对你有所帮助,如果喜欢,欢迎点赞收藏转发一波。

我是老马,期待与你的下次相遇。

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

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

相关文章

Snipaste软件出现测量像素不准的问题

最近写一些前端布局的时候发现使用snipaste测量dom元素大小的时候出现和实际不符的情况。我平时写代码的时候是笔记本和一个显示屏,在笔记本上测量的时候发现总是和实际大小不符合,而在显示屏上测量的时候却并无差错,真是奇了怪了。 后来发现…

笔试专题(三)

文章目录 字符串中找出连续最长的数字串题解代码 拼三角题解代码 字符串中找出连续最长的数字串 题目链接 题解 1. 考察双指针 模拟 2. 算法思路:给定一个i 0,让i,如果遇到数字字符就创建一个变量j i,让j去遍历&#xff0c…

基于vue.js开发的家庭装修管理系统开发与设计(源码+lw+部署文档+讲解),源码可白嫖!

摘要 本家庭装修管理系统采用B/S架构,数据库是MySQL,网站的搭建与开发采用了先进的Node.js语言进行编写,使用了VUE框架。该系统从两个对象:由管理员和用户来对系统进行设计构建。用户的功能包括:注册、登录、浏览首页…

NAT网络地址转换与内网穿透

一、背景 前一篇文章提到PCDN, 也就是p2p技术CDN技术进行融合。 P2P技术有利于文件的快速分发。我们的CDN在控制节点分发数据的时候,向边缘节点传输数据,也是一种分发,还有各边缘节点强制同步数据等等,如果结合P2P技术…

【开源宝藏】30天学会CSS - DAY9 第九课 牛顿摆动量守恒动画

以下是一份逐步拆解教程,带你从零理解并复刻这个牛顿摆(Pendulum of Newton)动画效果,这是一个经典的物理演示模型,现在通过纯 HTML 和 CSS 实现出来,视觉效果炫酷、结构简洁。 🎯 动画效果说明…

Chat2DB:一款强大的数据库管理工具,AI助力高效查询与分析

AI技术可谓是日新月异,其已经融入到社会的方方面面,今天就给大家分享一款数据库SQL客户端工具:Chat2DB。 1 简介 Chat2DB是一款开源的数据库管理工具,集成了AI 智能辅助功能,支持自然语言生成 SQL,帮助开发…

安全上网沙箱:多方面解决政企私的上网问题

在数字化的浪潮中,网络已成为我们工作与生活不可或缺的一部分。然而,网络的便捷也伴随着诸多安全隐患,尤其是对于企业、个人以及政企机构而言,安全上外网成为了至关重要的课题。 隔离保护:构建安全堡垒 沙箱技术在内网…

【react18】react项目使用mock模拟后台接口

前后端分离项目,后端还没有接口的时候,前端可以使用mockjs的技术实行假数据的模拟。这里使用的是mock的库msw实现这个业务. MSW msw是mock的工具,官网地址是在这里 使用步骤 1.安装msw npm install mswlatest --save-dev2.新建存放mock接…

2、pytest核心功能(进阶用法)

目录 1、标记(Markers): 自定义插件 内置标记 2、夹具(Fixtures): 夹具得用法 夹具作用域 3、钩子(hook): 这篇是最重要的 测试文件中需要用到的 总的来说 有以下…

《TCP/IP网络编程》学习笔记 | Chapter 21:异步通知 I/O 模型

《TCP/IP网络编程》学习笔记 | Chapter 21:异步通知 I/O 模型 《TCP/IP网络编程》学习笔记 | Chapter 21:异步通知 I/O 模型同步与异步同步异步对比同步 I/O 的缺点异步 I/O 的优点 理解异步通知 I/O 模型实现异步通知 I/O 模型WSAEventSelect 函数和通知…

【2025】基于springboot+vue的医院在线问诊系统设计与实现(源码、万字文档、图文修改、调试答疑)

基于Spring Boot Vue的医院在线问诊系统设计与实现功能结构图如下: 课题背景 随着互联网技术的飞速发展和人们生活水平的不断提高,传统医疗模式面临着诸多挑战,如患者就医排队时间长、医疗资源分配不均、医生工作压力大等。同时,…

报错 standard_init_linux.go:228: exec user process caused: exec format error

docker logs 容器名 报错: standard_init_linux.go:228: exec user process caused: exec format error 或者 standard_init_linux.go:228: exec user process caused: input/output error 排查思路 1、检查源镜像的框架是否正确,是否amd64&#x…

26考研——图_图的存储(6)

408答疑 文章目录 二、图的存储图的存储相关概念邻接矩阵存储方式邻接矩阵的定义顶点的度计算邻接矩阵的特点邻接矩阵的局限性 应用场景邻接矩阵的幂次意义(了解即可) 邻接表存储方式邻接表定义邻接表结构邻接表的特点 邻接矩阵和邻接表的适用性差异十字…

机器学习(八)

一,基于协同过滤的推广算法: 算法原理: 基于用户的协同过滤(计算用户相似度→找出相似用户→根据相似用户的喜好推荐物品) 基于物品的协同过滤(计算物品相似度→找出用户喜欢的物品→推荐相似物品) 构造矩阵进行分解(将用户-物品评分矩阵分解…

云原生算力引擎:分布式推理的流体动力学

引言:算力黑洞的引力扰动 OpenAI推理集群日处理4.5亿次请求,CUDA 12.3实现μs级张量切换。特斯拉Dojo超算芯片间延迟0.5ns,阿里巴巴PAI平台节省58%训练时长。HuggingFace模型库下载量突破3亿次,AWS Inferentia芯片能效比提升8倍。…

流量分析2

一,webshell流量 [GKCTF 2021]签到 先看协议分级,大部分是tcp,里面有http的基于的行文本数据占了很大的比重,看看里面有什么 过滤http的流量 点击一条流量,里面的内容进去后面有基于行的文本数据, 先解he…

解锁智能协作:蓝耘平台如何打破应用壁垒,实现无缝联动

在当今快速发展的数字化时代,企业面临着越来越复杂的应用架构与系统集成挑战。传统的孤立系统已无法满足现代企业对于高效协作与数据共享的需求,因此,如何实现不同应用系统间的无缝联动,成为了数字化转型的关键课题。蓝耘平台作为…

3月25号

添加图片的一些例子: // 创建一个二维数组,用来管理数据int[][] data new int[4][4]; // 记录空白方块的位置int x0;int y0; // 定义一个变量,记录当前展示图片的路径String path"E:\\java\\jigsawgame\\路飞\\路飞"; // 加载图片细节: // …

单片机和微控制器知识汇总——《器件手册--单片机、数字信号处理器和可编程逻辑器件》

目录 四、单片机和微控制器 4.1 单片机(MCU/MPU/SOC) 一、定义 二、主要特点 三、工作原理 四、主要类型 五、应用领域 六、选型与设计注意事项 七、发展趋势 4.2 数字信号处理器(DSP/DSC) ​编辑​编辑 一、定义 二、工作原理 三、结构特点 四、应用领域 五、选型与设计注…

迷宫问题——(java)(bfs)

2.走迷宫 - 蓝桥云课 bfs :我的理解就是按层数便利,便利完一层再遍历下一层 bfs:一般用来求解权相等的最短路径和最小操作数的问题 一般使用队列来实现 1.初始化队列 先将起始节点放入队列中 2.从队列中取出一个没有访问过的节点,将该节点的访问状态…