当前位置: 首页 > news >正文

“三大阶段稳定性测试”筑牢长安链信任基石

前言

随着长安链应用生态的不断丰富、面对的应用场景更加多元,稳定性测试在长安链测试流程中占到越来越重要的位置。本文将介绍长安链稳定性测试的发展历程及如何通过三大阶段稳定性测试应对不断出现的复杂的商业需求,筑牢长安链信任基石。

功能测试和性能测试的局限性

功能测试关注系统是否按照规范执行操作,而性能测试主要关注系统的吞吐量和响应时间。这两种方法的单一性有可能限制系统全面稳定性的评估,它们无法涵盖系统可能出现的某些问题。

(1)测试颗粒度的挑战:深入细节中的考验

从横向角度看,早期的测试方法通常是将区块链视为单一模块化测试,对挖掘其内部各个组成部分之间的联系不够深入。例如当进行功能测试时,测试者可能只关注系统是否能够成功的执行基本交易,并未同步关注到系统的智能合约、数据存储、节点通信等方面细节,这种测试颗粒度比较粗的方法可能会导致忽视一些安全漏洞、多模块协作异常处理等重要问题,例如某些测试中只检查系统是否能够处理正常的交易请求,但未考虑恶意用户可能发起的攻击。

(2)深度测试的必要性:挑战系统的稳定性

从纵向的角度来看,测试不能限于短期和低负载的情况下进行。这限制了对系统在长时间运行和高负载条件下性能和稳定性的全面评估。在实际商业项目中,区块链系统需要长时间的稳定运行,同时还需要处理大量的交易和数据,因此测试的深度变得至关重要。

因此在复杂的应用环境中,稳定性测试的重要性越来越高。

长安链稳定性测试的引入

随着长安链得到越来越广泛的应用,在大型商业化项目需求中引入了TB级甚至PB级存储的概念,这曾经为长安链系统稳定带来了挑战,为应对这一挑战需要更强大的测试手段,以提前确保系统稳定可靠。

从2021年底开始长安链加强了稳定性测试,不仅丰富了测试流程,提升了测试颗粒度和深度,还将长安链的综合测试水平进行了提升,实现了从最初的模块功能测试和性能测试为主,过渡到稳定性测试的流程串联测试实现全面的覆盖,以确保系统稳定可靠。随着时间的推移和项目实践的沉淀,2023年稳定性测试再次升级,测试流程更为丰富,覆盖了更广泛的使用场景,更加紧密地贴合用户的实际需求。

长安链稳定性测试的原理

稳定性测试的原理可以简化为两个关键维度:功能稳定性和性能稳定性。

功能稳定性:其侧重于模拟长时间、不间断的用户并发交易,以揭示系统在各种业务场景下的稳定性。这一方面关注系统是否出现功能性缺陷,例如节点崩溃、内存耗尽、节点停止出块、读写集不一致等严重问题。

性能稳定性:性能稳定性侧重于在处理大规模数据和长时间运行的情况下确保链系统的性能不会下降,同时避免对计算资源的不合理占用。主要验证链系统的吞吐量在高负载情况下保持稳定且在长期运行时不出现性能问题。

在此基础上,也会考虑容错性稳定性模拟各类故障注入,包括但不限于网络断链、机器资源不足、拜占庭故障等复杂情况,旨在验证系统是否能够健壮地应对这些情况,保持数据的一致性、避免崩溃、恢复正常运行等,这有助于确保区块链系统在面对意外事件或恶意攻击时不会出现系统性故障或数据损坏。在实际测试过程中容错性稳定性测试会与功能稳定性相结合,因此这里可以暂时归类为功能稳定性中。

结合上面的稳定性测试的原理,这里整理了现阶段稳定性测试架构图

图片

图1

多样化的测试手段

长安链通过多样化的测试手段全面评估系统在不同负载和场景下的性能、可靠性、稳定性。

(1)负载均衡测试:

引入基础压力、尖峰压力、递增/减压力。压力测试类型有助于确定区块链系统在各种负载情况下的性能表现和稳定性。以确保系统在面对不同压力和用户激增情况下都能够保持高效和可靠。

a. 基础压力测试:基础压力是根据机器配置和性能评估得出的一个前端压力基线。它代表了系统在正常操作下所能承受的基本负载,作为性能评估的出发点。

b. 尖峰压力测试:尖峰压力模拟了实际项目中偶尔出现的用户访问量高峰。这种场景下,系统需要应对用户数量暴涨的情况,如双十一等大型促销活动。

c. 递增/减压力测试:递增和递减压力根据实际测得的基础压力来调整。当基础压力较高时,逐步递减压力以测试系统在高负载下的适应能力。当基础压力较低时,逐步递增压力以测试系统的可扩展性和性能极限。

(2)一致性测试:

验证链是否能够正确执行共识算法,确保所有节点都达成共识,维护数据一致性。

(3)数据恢复测试:

模拟故障节点宕机数据恢复情况,测试链的容错性和恢复能力,包括节点宕机数据清空后的数据恢复测试,以评估链的容错性。

(4)可扩展性测试:

测试链的可扩展性,以确定链能够处理大规模的交易和用户访问量,包括多链、并发订阅和20节点测试等场景,以评估链的性能和可伸缩性。

(5)数据完整性测试:

验证数据在传输和存储过程中是否保持完整和准确;比较链上各个节点的总数据,观察数据量的膨胀率等,以确保数据的完整性。

(6)定制化场景测试:

针对不同应用场景的项目,执行一些定制化场景测试,以满足特定的需求和异常情况。包括多链场景、订阅场景、20节点场景、磁盘占用达到极限、跨合约调用、多类型合约并发等测试场景。

“三大阶段稳定性测试”保障系统可靠性

随着长安链稳定性测试的优化升级,长安链对稳定性测试的阶段进行了重新划分并融合结合多样化的测试手段,精心设计三个阶段的稳定性测试:新特性稳定性测试阶段、基础稳定性测试阶段、高阶稳定性测试阶段。

图片

图3

(1)新特性稳定性测试阶段
此阶段主要是验证新特性的功能稳定性和性能稳定性,检查对链的影响确保新功能不会对区块链系统原有功能和性能稳定性造成负面影响,此时采用低负载测试,并发量以百为单位,运行时长以周为单位。

(2)基础稳定性测试阶段:

此阶段以基础功能为导向侧重验证区块链系统的基本功能的稳定性与可靠性,与新特性相比,这里更侧重于各个模块的协作,而并非单个模块对于链的影响。适度负载,通常以千为单位,运行时长以10天为单位。

(3)高阶稳定性测试阶段:

此阶段经过基础的功能验证,将以高负载、高并发,压力通常以万为单位,测试大数据量通常为100亿交易量+,运行长时间运行以20天为单位。

同时此阶段将测试多种机器资源不同配置:4c8g、8c16g、32c128g;以不同规模和部署方式测试: 云原生部署,裸机部署;加入各种异常测试,模拟各种异常情况,比如磁盘占用达到极限,网络盘意外断开连接等。

通过三大阶段的测试结合多样化的测试手段并将其融入了测试流程的各个关键环节,实现了紧密的衔接和相互支持,确保每个测试环节环环相扣,保障长安链在面对复杂的商业化需求时表现出色,保持高度的鲁棒与稳定。

结语

未来,稳定性测试手段将更加多样并持续创新,长安链将在测试场景丰富化、实时监控和反馈、自动化数据分析、数据对比与历史记录、预测性维护、融合混沌测试等方面持续努力,让长安链做好支撑数字经济发展可靠的信任基石。

相关文章:

“三大阶段稳定性测试”筑牢长安链信任基石

前言 随着长安链应用生态的不断丰富、面对的应用场景更加多元,稳定性测试在长安链测试流程中占到越来越重要的位置。本文将介绍长安链稳定性测试的发展历程及如何通过三大阶段稳定性测试应对不断出现的复杂的商业需求,筑牢长安链信任基石。 功能测试和…...

手把手教你如何扩展(破解)mybatisplus的sql生成 | 京东云技术团队

mybatisplus 的常用CRUD方法 众所周知,mybatisplus提供了强大的代码生成能力,他默认生成的常用的CRUD方法(例如插入、更新、删除、查询等)的定义,能够帮助我们节省很多体力劳动。 他的BaseMapper中定义了这些常用的C…...

Spring Data JPA 项目配置与QueryDSL集成

一、说明 Spring Data JPA通过Spring Initializer创建时勾选相关依赖即可引入,QueryDSL需要单独引入。Spring JPA针对QueryDSL有比较好的兼容性,可以实现优雅的SQL构建。 二、设置JPA默认配置(yaml格式) spring:jpa:hibernate:…...

UE5数字孪生制作-数据篇(二) - 数据处理

1.卫星图与DEM高度图坐标一致处理 https://www.bilibili.com/video/BV1op4y1V71r?p4&vd_source707ec8983cc32e6e065d5496a7f79ee6 坐标系的调整 如何使用临时图层,对其他数据层进行裁切 (1)创建临时图层 (2)在临…...

Java 设计模式——享元模式

目录 1.概述2.结构3.实现3.1.抽象享元3.2.具体享元3.3.享元工厂3.4.测试 4.优缺点5.使用场景6.JDK 源码解析——Integer 类 1.概述 (1)享元模式 (Flyweight Pattern) 是一种结构型设计模式,主要通过共享对象来减少系统中的对象数量&#xff…...

再扩国产化适配版图,长安链新增数据库兼容性认证

基础软件的自主可控影响着国家信息安全与产业技术发展是否受制于人。实现真正长期可持续的技术自主可控,需要再进一步的是让国产化信息系统生态更有”活性“,基础软件之间、基础软件与其他国产上层应用的互相兼容、互相促进,共同繁荣发展&…...

MES系统数据集成系统源码

MES系统数据集成系统源码 1 MES的生产计划管理综述 生产计划的管理在MES系统中是非常重要的。我们知道,一般的情况下,企业的生产计划是由上层管理系统ERP来完成,那么MES中的生产计划和ERP的生产计划的不同点在于: ERP的生产计划…...

关于道一云-七巧使用感悟

低代码,开发快速,缺点组件比较少但能满足大多数场景,如果需要的话得自己造,官方的技术群里面普遍问题响应就很快,技术文档这个会抽风,有些代码就改个筛选条件本地死活运行不了,去官网那里问他们…...

去中心化数据云项目Oort主网即将上线

备受期待的去中心化数据云项目Oort,今日已通过官方X账号官宣,将于纽约时间11月27日正式上线主网Olympus Protocol。届时,用户也能够通过Oort的Ale Wallet钱包和开发者API使用主网,并可通过OORT浏览器查询交易和合约,开…...

CSS知识点梳理(一)

CSS 是层叠样式表(Cascading Style Sheets)的缩写,它是一种用于描述 HTML 或 XML(包括如 SVG、MathML 等派生语言)文档呈现的语言。CSS 可以用来控制文档的布局、颜色、字体等外观属性。 CSS 的主要特点包括&#xff…...

网络安全深入学习第八课——反向代理(工具:frp)

文章目录 一、实验环境二、实验要求三、开始模拟1、攻击机配置frp文件2、攻击拿下跳板机,并且上传frpc.ini、frpc.exe、frpc_full.ini文件3、把frps.ini、、frps.exe、frps_full.ini文件放到VPS主机上4、VPS机开启frp5、跳板机开启frp6、验证 一、实验环境 攻击机&…...

浅谈前端自定义VectorGrid矢量瓦片样式

目录 前言 一、VectorGrid相关API介绍 1、VectorGrid 2、 LayerStyles样式详解 二、样式自动配置 1、页面定义 2、地图及PBF瓦片引入 3、矢量瓦片样式定义 4、鼠标事件交互 三、最终效果 1、自定义样式展示 2、鼠标交互 总结 前言 在上一篇博客中,详细讲…...

Qt5多线程<12>

1.多线程的简单实现 <1> 在头文件threaddlg.h声明用于界面显示所需的控件,其代码如下: #ifndef THREADDLG_H #define THREADDLG_H#include <QDialog> #include <QPushButton> #include "workthread.h" #define MAXSIZE 5class ThreadDlg : publ…...

Linux学习笔记之五(父子进程、孤儿进程、僵尸进程、守护进程)

Linux 1、进程1.1、进程的六种状态1.2、创建子进程1.3、添加子进程任务1.4、孤儿进程、僵尸进程、守护进程1.4.1、避免僵尸进程1.4.2、创建守护进程1.4.3、杀死守护进程 1.5、综合练习 1、进程 进程可以简单的理解为一个正在执行的程序&#xff0c;它是计算机系统中拥有资源和…...

[题] 不容易系列之(3)―― LELE的RPG难题 #DP

题目 不容易系列之(3)―― LELE的RPG难题 思路 简单的DP题。 代码 #include<bits/stdc.h> using namespace std; //默认以0开头&#xff0c;以1和2结尾。f[i][1]表示长度为i的以1结尾的涂抹方案 //状态转移方程&#xff1a;若以1结尾&#xff0c;则前面一个格子只能是…...

pip 安装任意软件包报错

现象 使用 pip 命令时提示 查看源码 可以看到是从 pip 包中导入 main失败&#xff0c;点击查看目录 main 文件不见了&#xff0c;判断是文件缺失&#xff0c;重装 pip 即可 # python3 下载 pip curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py # python2 下载…...

NLP之Bert实现文本多分类

文章目录 代码代码整体流程解读debug上面的代码 代码 from pypro.chapters03.demo03_数据获取与处理 import train_list, label_list, val_train_list, val_label_list import tensorflow as tf from transformers import TFBertForSequenceClassificationbert_model "b…...

对话大众软件子公司:中国的智舱、智驾比欧洲早一代

作者 | 德新 编辑 | 王博 尤其在上海车展之后&#xff0c;大部分的外资车企都在转型调整。 2023年的上海车展是一个重要节点。在这之前&#xff0c;疫情阻断了国内和海外频繁的线下交流&#xff0c;而国内汽车的新能源化和智能化在这期间完成了一次飞跃式的发展。所以车展开…...

基于FPGA的图像RGB转HSV实现,包含testbench和MATLAB辅助验证程序

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1. RGB与HSV色彩空间 4.2. RGB到HSV转换原理 5.算法完整程序工程 1.算法运行效果图预览 将FPGA的仿真结果导入到matlab中&#xff1a; 2.算法运行软件版本 vivado2019.2 matlab2022a …...

小型企业如何数字化转型?ZohoCRM助力小企业转型

小型企业数字化之路倍加艰难&#xff0c;其组织规模有限、资源有限&#xff0c;数字化布局或转型&#xff0c;也存在与数字平台匹配度的问题。其实小型企业可以通过CRM客户管理系统实现高效的客户关系管理&#xff0c;进一步提高市场竞争力。 建立高效易用的客户关系管理系统 …...

三环境零停机!Dokploy部署流水线从开发到生产全攻略

三环境零停机&#xff01;Dokploy部署流水线从开发到生产全攻略 【免费下载链接】dokploy Open Source Alternative to Vercel, Netlify and Heroku. 项目地址: https://gitcode.com/GitHub_Trending/do/dokploy Dokploy 是一款开源的部署平台&#xff0c;作为 Vercel、…...

Excel批量导入图片翻车实录:顺序错乱、名称带后缀?这份避坑指南帮你一次搞定

Excel批量导入图片避坑指南&#xff1a;从顺序错乱到完美排版的全流程解决方案 你是否曾在Excel中批量导入图片时&#xff0c;遇到过图片顺序错乱、名称带后缀、大小不一等令人抓狂的问题&#xff1f;作为一位经历过无数次"翻车"的Excel老手&#xff0c;我深知这些看…...

别再死记硬背Apriori了!用Python手把手带你跑通超市购物篮分析(附完整代码和数据集)

从超市购物篮到商业洞察&#xff1a;Python实战Apriori算法全流程解析 走进任何一家现代超市&#xff0c;货架上的商品摆放绝非随意为之。当你在购买啤酒时顺手拿了一袋薯片&#xff0c;或是选购婴儿奶粉时带上了尿不湿&#xff0c;这些看似偶然的消费行为背后&#xff0c;隐藏…...

告别SDK,拥抱Vitis:在PYNQ_Z2上完成从Block Design到Hello World的完整迁移教程

从SDK到Vitis&#xff1a;PYNQ_Z2开发环境迁移实战指南 在FPGA开发领域&#xff0c;Xilinx工具链的演进正经历着一次重大变革——经典的SDK开发环境正逐步被功能更强大的Vitis平台取代。对于使用PYNQ_Z2这类热门开发板的工程师来说&#xff0c;掌握新工具链的迁移方法已成为当务…...

real-anime-z Web界面深度解析:7860端口服务的UI功能区与技术栈说明

real-anime-z Web界面深度解析&#xff1a;7860端口服务的UI功能区与技术栈说明 1. 平台概述与技术架构 real-anime-z是一款专为二次元插画创作设计的文生图AI镜像&#xff0c;能够快速生成高质量的动漫风格图像。该镜像集成了先进的AI模型和优化后的Web界面&#xff0c;让用…...

如何用 dedao-dl 实现得到课程永久保存?告别知识过期的完整指南

如何用 dedao-dl 实现得到课程永久保存&#xff1f;告别知识过期的完整指南 【免费下载链接】dedao-dl 得到 APP 课程下载工具&#xff0c;可在终端查看文章内容&#xff0c;可生成 PDF&#xff0c;音频文件&#xff0c;markdown 文稿&#xff0c;可下载电子书。可结合 opencla…...

Vue项目里用UX-Grid处理表格排序,遇到百分比、null和‘--’占位符怎么办?

Vue项目中用UX-Grid处理复杂表格排序的实战指南 在数据可视化后台开发中&#xff0c;表格排序是最基础却最容易踩坑的功能之一。当你的数据里混着百分比字符串、null值和各种占位符时&#xff0c;UX-Grid默认的排序逻辑往往会给出令人困惑的结果。本文将带你解决这些实际开发中…...

基础算法——区间合并

题目给定n个区间[li,ri]&#xff0c;要求合并所有有交集的区间。注意如果在端点处相交&#xff0c;也算有交集。输出合并完成后的区间个数。例如&#xff1a;[1,3]和[2,6]可以合并为一个区间[1,6]。输入格式第一行包含整数n。接下来n行&#xff0c;每行包含两个整数l和r。输出格…...

保姆级教程:用Python+WRF+Cartopy绘制气象雷达回波图(附完整代码)

Python气象可视化实战&#xff1a;从WRF数据到专业雷达回波图 当台风路径预报需要验证强对流区域&#xff0c;或是暴雨分析要定位最大回波核心时&#xff0c;一张清晰的雷达反射率图往往比千言万语更有说服力。作为气象领域的"CT扫描"&#xff0c;雷达回波图能直观展…...

用MATLAB的Phased Array Toolbox快速上手:从常规脉冲到相位编码雷达的波形生成与可视化

MATLAB Phased Array Toolbox实战&#xff1a;从基础脉冲到相位编码雷达的波形生成与可视化 雷达工程师们常说&#xff1a;"波形设计是雷达系统的灵魂。"在MATLAB的Phased Array Toolbox中&#xff0c;这句话得到了完美印证。当我第一次打开这个工具箱时&#xff0c;…...