前端页面性能优化,性能测试算法优化,MeterSphere开源持续测试平台v2.10.5 LTS版本发布

在这里插入图片描述
2023年8月7日,MeterSphere一站式开源持续测试平台正式发布v2.10.5 LTS版本。自2023年5月发布v2.10 LTS版本后,MeterSphere开源项目组坚持每两周发布小版本,持续进行问题的修复更新,并针对部分功能进行优化。

本次发布的MeterSphere v2.10.5 LTS版本在前端页面性能、性能测试算法、后端接口权限、高频操作使用体验等方面进行了关键性的升级与优化,为用户带来更好的使用体验,欢迎广大社区用户升级使用。

前端页面性能优化

此前有社区用户反馈MeterSphere平台部分页面,尤其是各个模块的首页加载速度缓慢。主要的原因是前端资源包体积比较大,首页完全加载资源超过30MB,个别JavaScript资源大小接近3MB。针对用户反馈的这一情况,MeterSphere V2版本对前端性能通过以下方式进行了集中优化,并在v2.10.2 LTS版本更新发布,优化的内容包括:

■ 包体拆分:使用webpack-bundle-analyzer构建产物进行分析,将打包进行拆解;

■公共库抽离:将共享资源抽离成公共库,减少各应用模块打包时的重复打包;

■缓存共享:将公共库的资源放置在统一目录下,各模块应用使用外链引入同一资源,充分利用HTTP缓存策略,减少重复加载;

■包体精简:部分npm资源修改为按需引入,减少无用代码的引入;

■动态加载:部分第三方插件较大,如PDF、ECharts等都是在部分页面使用,并不是全部页面都需要使用的。这一部分进行了拆分,不在main.js直接引入,改为在使用时动态加载。

经过这些前端优化措施后,MeterSphere平台的性能优化效果明显,优化后最大的包文件尺寸也在330KB内,整体加载资源大小减少超过60%,完全加载时间从20s缩减至7.5s左右。

优化前后对比:
在这里插入图片描述
在这里插入图片描述

性能测试算法优化

MeterSphere开源版的性能测试模块与JMeter处理一致,但在高并发尤其是分布式多节点测试时,压测数据与JMeter本地运行存在一定差异。针对此情况,MeterSphere企业版进行了专项算法优化,在测试数据准确性、实时性上达到了与原生JMeter一致的水平。以双测试节点访问Nginx为测试场景进行对比,MeterSphere企业版与JMeter原生的测试结果几乎一致。

JMeter测试结果与MeterSphere企业版测试结果对比如下:
在这里插入图片描述

除算法优化外,MeterSphere企业版还支持Kubernetes资源池。在执行性能测试任务时,平台调用Kubernetes API快速创建对应的性能测试Job,测试执行结束后自动回收对应的资源,并将不同团队使用的资源池区分开来,避免互相影响。同时,MeterSphere企业版提供原厂专业服务,为客户提供性能测试压测需求分析、流量模型设计,以及分布式压测环境搭建、执行、分析和优化等性能测试专家服务。

后端API调用增加

Requires Permissions

MeterSphere开源持续测试平台的产品设计团队非常重视产品的安全性、灵活性和可维护性。

自MeterSphere v2.10.2 LTS版本起,所有后端API调用均添加了“Requires Permissions”(需要权限)验证。通过在API调用中添加“Requires Permissions”验证步骤,可以确保只有具有相应权限的用户或角色才能够访问和执行该API,有效地保护了系统的敏感数据和功能,防止未授权的访问和操作。

这样的设计也提高了系统的可维护性,当系统需要进行权限调整或更新时,只需要对相应的权限进行修改,不需要改动API代码本身,从而减少了系统维护和升级的复杂性。

用户可以自定义配置访问MeterSphere的Swagger URL是否需要进行权限认证,即在docker-compose-gateway.yml中修改以下配置来控制是否需要认证。

■SWAGGER_ENABLED: false

高频操作功能使用体验优化

■ 测试跟踪:测试计划执行功能测试用例体验优化(精简操作步骤);

■ 接口测试:新建接口Case使用体验优化(精简操作步骤);

■ 接口测试:接口断言方式支持XPath断言HTML格式的响应体;

■ UI测试:UI场景自动化步骤加载性能优化;

■ 通用功能:系统各功能模块取消模块树8级限制;

■ 通用功能:高级搜索支持通过自定义字段搜索。

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

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

相关文章

csdn崩溃了?每次都卡

反馈给了官方客服也没有响应,最近几周都是这样的高频率的转圈圈!这个入口不受重视?这个对于csdn用户来说,是最最基本的入口 如果CSDN(CSDN.net)崩溃了,可能会对以下方面产生影响: 开…

每日一题—— 数组中出现次数超过一半的数字

题目 给一个长度为 n 的数组,数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 例如输入一个长度为9的数组[1,2,3,2,2,2,5,4,2]。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。 数据范围&#xff…

RISC-V基础之函数调用(三)保留寄存器(包含实例)

RISC-V将寄存器分为保留和非保留两类。保留寄存器是指在函数调用前后必须保持相同值的寄存器,因为调用者期望在调用后能够继续使用这些寄存器的值。保留寄存器包括s0到s11(因此称为saved),sp和ra。非保留寄存器,也称为…

自然语言处理学习笔记(四)————词典分词

目录 1.中文分词 2.词典分词 (1)词的定义 (2)词典性质——齐夫定律 (3)词典 (4)加载词典 (5)hanlp词典路径 1.中文分词 中文分词:指的是将一…

Spring Cloud+Spring Boot+Mybatis+uniapp+前后端分离实现知识付费平台免费搭建 qt

Java版知识付费源码 Spring CloudSpring BootMybatisuniapp前后端分离实现知识付费平台 提供职业教育、企业培训、知识付费系统搭建服务。系统功能包含:录播课、直播课、题库、营销、公司组织架构、员工入职培训等。 提供私有化部署,免费售…

LCR 095. 最长公共子序列 / LeetCode 1143. 最长公共子序列(动态规划)

题目: 链接:LCR 095. 最长公共子序列;LeetCode 1143. 最长公共子序列 难度:中等 给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。 一个字符…

TiDB Serverless 正式商用,全托管的云服务带来数据管理和应用程序开发的全新体验

八 年 前 ,我们构建了 TiDB,一个开源分布式关系型数据库。 我们的目标是重新定义开发者和企业处理数据的方式,满足不断增长的可扩展性、灵活性和性能需求。 从那时起,PingCAP 便致力于为开发者和企业提供快速、灵活和规模化的数据…

【MySQL】——常用接口API即相关函数说明

目录 1、MySQL结构体的说明 1、MYSQL结构体 2.MYSQL_RES结构体 3. MYSQL_FIELD 2. 接口的使用步骤 3、mysql_init()——MYSQL对象初始化 4、mysql_real_connect()——数据库引擎建立连接 5. mysql_query()——查询数据库某表内容 6、mysql_real_query——执行SQL语句 …

JPA使用nativeQuery自定义SQL怎么插入一个对象参数呢?

0、我们在前后端传递数据时候,参数多的情况下,常常将这些参数封装成对象;当有些场景你需要使用JPA nativeQuery自定义SQL,要将这个对象insert时候,初学者似乎有点犯难,jpa不是spring-data项目的内容吗&…

软件工程中应用的几种图辨析

【软件工程】软件工程中应用的几种图辨析:系统流程图、数据流图、数据字典、实体联系图、状态转换图、层次方框图、Warnier图、IPO图、层次图、HIPO图、结构图、程序流程图、盒图、PAD图、判定表_眩晕李的博客-CSDN博客 软件工程——实体关系图 状态转换图 数据流…

算法训练Day40|343. 整数拆分 ● 96.不同的二叉搜索树

LeetCode : 343. 整数拆分 - 力扣(LeetCode) 1.思路 确定dp[]数组含义,dp[n]表示数 n 各子数的最大乘积dp[2] 初始为 1. 遍历顺序,从 3 开始,最值从 j * (i - j) 和 j * dp[i - j] 以及 dp[i] 中选择.dp[i] Math.ma…

通过cpolar内网穿透发布网页测试

通过内网穿透发布网页测试 文章目录 通过内网穿透发布网页测试 对于网站开发者来说,对完成的网页进行测试十分必要,同时还要在测试过程中充分采纳委托制作方的意见,及时根据甲方意见进行修改,但在传统的测试方式中,必须…

Maven入职学习

一、什么是Maven? 概念: Maven是一种框架。它可以用作依赖管理工具、构建工具。 它可以管理jar包的规模、jar包的来源、jar包之间的依赖关系。 它的用途就是管理规模庞大的jar包,脱离IDE环境执行构建操作。 具体使用: 工作机…

用Rust实现23种设计模式之 组合模式

组合模式是一种结构型设计模式,它允许将对象组合成树状结构,并且能够以统一的方式处理单个对象和组合对象。以下是组合模式的优点和使用场景: 优点: 简化客户端代码:组合模式通过统一的方式处理单个对象和组合对象&a…

Java课题笔记~ 不使用 AOP 的开发方式(理解)

Step1:项目 aop_leadin1 先定义好接口与一个实现类,该实现类中除了要实现接口中的方法外,还要再写两个非业务方法。非业务方法也称为交叉业务逻辑: doTransaction():用于事务处理 doLog():用于日志处理 …

sql 关联了2张表的 update 语句(转)

转自:SQL Update:使用一个表的数据更新另一张表 、update 关联两个表 基本上 select 能支持的关联和子查询操作,都能在 update 语句中使用。 在 where 条件中使用子查询 update a set a.age 1 where id in (select device_id from b) 在 wher…

42.利用 牛顿迭代法解非线性高维方程组(matlab程序)

1.简述 若向量记号为X,方程组就可以写成F(X)0的形式。 我们知道,对于一元函数的牛顿迭代法求根公式 类似的,对于多元函数求根公式 其中X是向量,是非线性方程组对应的雅可比矩阵。 具体求解的时候,我们可以先通过绘图命令绘制图形…

Selenium 根据元素文本内容定位

使用xpath定位元素时,有时候担心元素位置会变,可以考虑使用文本内容来定位的方式。 例如图中的【股市】按钮,只有按钮文本没变,即使位置变化也可以定位到该元素。 xpath内容样例: # 文本内容完全匹配 //button[text(…

Python2.x 与 3​​.x 版本区别

Python2.x 与 3​​.x 版本区别 Python 的 3​​.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。 为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下相容。 许多针对早期 …

刷题笔记 day9

1658 将 x 减到 0 的最小操作数 解析:1. 当数组的两端的数都大于x时,直接返回 -1。 2. 当数组所有数之和小于 x 时 ,直接返回 -1。 3. 数组中可以将 x 消除为0,那么可以从左边减小为 0 ;可以从右边减小为 0 &#xff1…