年度发布 | MeterSphere一站式开源持续测试平台发布v2.10 LTS版本

2023年5月25日,MeterSphere一站式开源持续测试平台正式发布v2.10 LTS版本。这是继2022年5月发布v1.20 LTS版本后,MeterSphere开源项目发布的第三个LTS(Long Term Support)版本。MeterSphere开源项目组将对MeterSphere v2.10 LTS版本用户提供长期支持,每两周发布小版本,持续进行问题修复更新并针对部分功能进行优化。
MeterSphere开源项目组深入践行“一站式持续测试平台”的设计理念,自v1.20 LTS版本起已实现了对测试跟踪、接口测试、UI测试和性能测试的一站式覆盖。随着广大开源社区用户在不同行业、不同领域深度落地使用MeterSphere,用户在功能覆盖上对MeterSphere提出了更多的期望,在使用体验上对MeterSphere提出了更高的要求,MeterSphere开源项目在系统稳定性、性能和安全性等方面面临挑战。
本次发布的MeterSphere v2.10 LTS版本在测试能力、用户体验、系统架构、系统安全四大方面进行了关键性的升级与优化,为用户带来全面升级的使用体验。
一、测试能力升级
■ 一站式测试能力增强
MeterSphere v2.10 LTS版本在测试管理与测试执行上采用一站式平台设计,在交付功能测试、接口测试、UI测试、性能测试能力的同时,规避了测试人员执行测试任务时因工具繁多、种类差异化而导致的无法沉淀和无法追溯的问题。MeterSphere平台全面承载不同类型的测试用例、API、测试数据、测试环境等关键资产的集中管理。

MeterSphere的功能测试模块支持以脑图模式编写用例,用户可以在线进行用例评审与用例执行,缺陷管理与主流项目管理工具(例如JIRA、TAPD、禅道等)集成,缺陷数据双向同步。功能用例可以关联其对应的自动化(包括接口、UI、性能)用例,运行自动化用例可以同步更新功能用例结果,实现功能用例与自动化用例在线联动;
MeterSphere的UI测试模块支持在线编辑或Selenium IDE录制两种方式编写用例,基于页面对象模型,提供自定义指令和“搭积木”式的场景编排能力,复用性强。用户可以在本地或服务端进行UI用例执行,基于Grid的强大扩展能力,UI测试也支持多节点分布式运行;
MeterSphere的接口测试模块全面兼容JMeter、Postman、Swagger等数据格式,支持IDEA插件和MeterSphere Chrome浏览器插件直接导入API数据进行API、接口用例以及接口场景的管理。接口用例和接口场景也可以一键生成性能测试用例,基于JMeter测试引擎完成性能测试;
MeterSphere v2.10 LTS版本的测试计划模块支持同时添加不同项目(应用系统)的功能用例、接口用例、UI用例和性能用例。测试计划自身支持手动执行、定时任务、Jenkins插件触发等多种执行方式,并且能够在测试计划执行过程中在线生成多种用例类型汇总的测试报告。
自此,MeterSphere平台实现了一个测试计划覆盖全部测试类型的应用场景,进一步提升了测试工作的集中化、规范化、自动化的执行能力和效率。
■ 测试管理能力增强
在MeterSphere v2.10 LTS版本中,测试计划功能进行了增强,覆盖功能用例、接口用例、UI用例和性能用例。
测试计划执行支持串行和并行两种模式,同时支持配置失败重试机制,用户可以自定义重试次数以提升自动化测试执行的成功率,避免因网络、环境因素导致误报。

在MeterSphere v2.10 LTS版本中,用例评审功能进一步增强,支持多人评审模式。多人评审模式需要所有评审人参与评审活动,只有全部评审通过,用例的最终评审状态才会更新为“通过”状态。多人评审模式能够推动评审活动更加规范和严谨,最大程度上规避评审环节的相关风险。

■ 接口测试能力增强
在MeterSphere v2.10 LTS版本中,接口测试重点解决了“API发生变更一键更新接口用例”的问题。
在MeterSphere平台中进行API变更,用户可以自定义同步要素将变更内容一键同步给用例,用例更新后引用该用例的场景也会同步更新。通过数据导入方式导致的API变更,系统会根据用户自定义的数据流入规则将符合条件的接口用例展示在工作台的待更新列表中,用户可以逐条或者批量同步API的指定信息或全部信息,将其更新至接口用例中。

■ UI测试能力增强(X-Pack增强包)
在MeterSphere v2.10 LTS版本中,UI测试模块针对Selenium原生指令进行了进一步扩展,以覆盖特殊测试场景。例如,扩展后的拖拽指令支持从一个坐标位置到目标坐标位置,添加多个坐标位置可以覆盖绘图场景。

在MeterSphere v2.10 LTS版本中,UI测试与项目环境正式打通,用户可以将设计好的自动化脚本在不同环境中执行,进一步提高UI测试用例的可复用性。

■ 性能测试能力增强
在MeterSphere v2.10 LTS版本中,性能测试实时报告的计算能力增强。将性能测试生成的jtl文件分成小段,分段计算结果,节省了磁盘空间和IO性能,覆盖了高强度、持续性的压测场景,同时也提升了报告生成的效率。

二、用户体验升级
■ 测试跟踪首页、接口测试首页UX交互升级
在MeterSphere v2.10 LTS版本中,接口测试模块首页示例图如下。首页UX交互设计将核心指标与明细指标分层展示,视觉上避免了因数据过多产生的视觉疲劳。

■ 测试跟踪模块功能用例UX交互升级
在MeterSphere v2.10 LTS版本中,测试跟踪模块的“功能用例”页面进行了全新的交互升级,整个页面采用轻量化设计进行了整体降噪,页面信息更加清晰易懂,操作流程更顺畅,用户体验得到了整体提升。
在测试跟踪模块的“功能用例”列表页中,对功能操作与信息展示进行了分区,页面中心位置展示用例列表信息,功能操作分布于页面的顶部和底部。

“用例详情”页面布局进行了全新的调整,用例详情与用例其他关联信息以多个Tab的方式分类展示,用例基础信息展示在页面右侧,整体页面更加聚焦。

除此之外,MeterSphere v2.10 LTS版本还进行了以下高频使用功能的体验优化:
■ 测试跟踪:高级搜索支持输入多个标签进行搜索;
■ 测试跟踪:脑图用例删除时增加二次确认;
■ 接口测试:接口测试批量添加请求参数时自动去空格处理;
■ 接口测试:支持通过路径搜索;
■ 接口测试:接口测试列表展示定时任务列;
■ 接口测试:固定单接口用例执行按钮的位置;
■ 接口测试:运行环境列表支持模糊搜索;
■ 接口测试:单步调试用例或场景步骤时响应内容自动展开;
■ 接口测试:接口TEST支持保留最近一次的执行记录;
■ 性能测试:测试报告增加图表单位展示;
■ 通用功能:标签字数过多时的展示优化。
三、系统架构升级
■ 系统架构升级为微服务架构
MeterSphere v2.10 LTS版本采用了微服务架构,既能满足用户按需配置、水平扩展的需求,又能有效规避单个服务故障导致整体服务不可用的现象。

■ 平台扩展能力增强
作为一款一站式的持续测试平台,MeterSphere既需要与各种周边系统进行集成对接,也需要支持各种不同协议的接口测试,灵活的插件体系可以很好地解决平台扩展性的问题。用户可以按需安装、开发各种形式的插件以覆盖不同场景的测试及对接需求。
MeterSphere v2.10 LTS版本支持通过插件的方式与其他工具和系统进行集成。MeterSphere的Jenkins插件可以很好地融入企业DevOps流水线,实现自动化部署和持续交付。在提升协作效率方面,MeterSphere的IDEA插件可以将HTTP接口直接同步到MeterSphere平台进行管理。在统一项目管理方面,MeterSphere支持与JIRA、TAPD、禅道等主流项目管理工具集成,用户可以安装所需的插件实现测试用例与需求的关联,同时可以实现缺陷的双向同步。
除此之外,MeterSphere也扩展了一些特殊协议类的插件,例如WebSocket、MQTT、gRPC等,用户可以安装所需的插件在MeterSphere平台进行这些协议的接口测试。
MeterSphere v2.10 LTS版本支持的插件(部分)列表如下:

■ 性能优化
1.UI测试批量执行性能优化
MeterSphere v2.10 LTS版本对UI测试的执行策略进行了重新设计,解决了大批量UI测试用例执行时会导致内存泄漏的问题,降低了资源占用率,将UI服务的内存分配由2GB优化到1GB,以满足更大批量测试任务,提升了UI测试的整体执行效率和成功率。

注:据深度使用MeterSphere UI测试模块(使用版本为v2.8.0)的用户反馈,在整体资源配置不变的情况下,160个UI场景并行执行,由原来的120分钟执行完成,提效至33分钟即可执行完成。
2.测试计划执行效率优化
在MeterSphere v2.10 LTS版本中,针对高频使用的测试计划执行功能,从生成执行脚本到执行资源查询,到资源分配策略,再到最后的执行结果入库分片存储,每一个环节都进行了深度优化,提升了多个测试计划并行执行的效率。在实时生成测试报告的过程中,对测试计划报告涉及到的资源查询及统计算法进行优化,提高页面渲染效率,解决了用户反馈的大批量测试执行时的系列问题。
注:据深度使用MeterSphere测试计划功能(使用版本为v2.9.1)的用户反馈,通过测试计划的定时任务并行执行超过2000个自动化测试用例进行核心场景的回归测试,均能稳定运行。
3.接口测试执行过程附件加载优化
加载机制从实时获取优化为本地缓存加文件服务(MinIO)中按需获取。

除此之外,MeterSphere v2.10 LTS版本还进行了以下常用功能的性能优化:
① 左侧模块树效率优化;
② 登录系统加载耗时性能优化;
③ 批量导出大数据量用例性能优化;
④ 测试计划批量关联大数据量用例性能优化。
■ 运行稳定性提升
用户对于MeterSphere平台的使用规模很多时候总会超乎我们的想象。在MeterSphere v2.10 LTS版本的迭代过程中,我们接触了很多大规模、高频次使用MeterSphere开展日常测试工作的案例,包括脑图模式下编辑大量功能用例,大批量的接口测试、UI测试执行,高并发、高TPS的性能测试等众多使用场景,这些场景给MeterSphere带来了很大的挑战,但经过我们的不懈优化最终都达到了让用户满意的效果。
MeterSphere v2.10 LTS版本不仅包含以上所有真实使用案例中的稳定性优化改进,还经过了我们长达三个月的内部测试和部分用户的灰度测试。
服务运行列表:

四、系统安全升级
作为一款开源的企业级软件,产品的安全性至关重要。MeterSphere开源项目组非常重视产品的安全性,自项目发布以来,我们一直与第三方的安全测试团队及个人保持着紧密沟通,在第一时间修复反馈给我们的安全性问题,并在修复后即时通知用户进行处理。
在MeterSphere v2.10 LTS版本中,我们着重处理了由接口测试自定义脚本带来的安全风险。自定义脚本功能是接口测试中十分常用也十分重要的功能,该功能极大地提高了接口测试的灵活性,拓展了 MeterSphere平台的能力边界。但也由于这样的特性,导致接口测试自定义脚本的执行可能会带来一些安全风险,例如在脚本中引入死循环、误操作了服务器上的重要文件等。针对这种情况,我们在当前版本中进行了如下处理来规避潜在的安全风险。
■ 接口测试禁用本地执行
在之前的版本中,接口测试提供了本地执行(即在接口测试服务中直接执行)和资源池执行两种方式。MeterSphere v2.10 LTS版本禁用了接口本地执行方式,与性能测试一样,当接口调试或运行时会在指定的资源池上运行,同时资源池节点上的node-controller服务默认以容器方式运行。这样一来,即便存在上述用例设计不当的问题也只会影响到对应资源池节点上的node-controller容器,接口测试主体服务还可以正常使用,node-controller所在服务器也不会受到影响。
注意:当存在多个可用的测试资源池时,可以选择“项目设置”→“应用管理”→“接口测试”,在菜单中配置接口执行的默认资源池。

■ 测试用例脚本预警通知
除了禁用本地执行,为接口测试提供沙箱执行环境外,MeterSphere v2.10 LTS版本还增加了主动预警机制。当用户保存或修改的用例中包含脚本的内容时可以配置指定用户审核,当系统检测到包含脚本的用例时会触发系统消息通知,指定审核人对该脚本进行审核。
除了上述针对执行自定义脚本采取的安全措施外,我们在此期间还修复了以下公开漏洞,仍在使用受影响版本的用户请尽快进行升级。

总结
在MeterSphere开源项目创立的三年时间里,MeterSphere开源项目组累计收到了超过1500名社区用户提交的7800多个GitHub Issue。MeterSphere v2.10 LTS版本经历了10个功能版本的迭代,期间有来自全国19个城市的123名用户参与填写了用户使用调查问卷进行反馈,有15家企业的测试团队同MeterSphere的产品团队进行了累计1350分钟的深度沟通,帮助MeterSphere开源项目组进一步完善产品功能和使用体验。
感谢广大社区用户和企业客户的信任和支持。MeterSphere开源项目组会坚守初心,做出一款好用的工具平台,帮助企业中不同规模的测试团队落地“持续测试”理念,加速高质量的软件交付,推动中国测试行业整体效率的提升。
因为热爱,快意成长。
相关文章:
年度发布 | MeterSphere一站式开源持续测试平台发布v2.10 LTS版本
2023年5月25日,MeterSphere一站式开源持续测试平台正式发布v2.10 LTS版本。这是继2022年5月发布v1.20 LTS版本后,MeterSphere开源项目发布的第三个LTS(Long Term Support)版本。MeterSphere开源项目组将对MeterSphere v2.10 LTS版…...
从 OceanBase 迁移数据到 DolphinDB
OceanBase 是一款金融级分布式关系数据库,具有数据强一致、高可用、高性能、在线扩展、高度兼容 SQL标准和主流关系数据库、低成本等特点,但是其学习成本较高,且缺乏金融计算函数以及流式增量计算的功能。 DolphinDB 是一款国产的高性能分布…...
淘宝商品列表数据接口(支持价格、销量排序)
淘宝商品列表数据接口是淘宝提供的一种可以获取淘宝商品信息的接口。通过该接口,可以获取到具有一定规则的商品信息,例如按照价格排序、按照销量排序等。接口返回的数据格式为JSON格式,可以方便地处理数据。 我们可以通过调用淘宝提供的API&…...
Android 11 版本变更总览
Android 11 版本 Android 11 总览重大隐私权变更行为变更:所有应用行为变更:以 Android 11 为目标平台的应用功能和 API 概览Intent系统广播 intent(API 级别 30)通用应用 intent(API 级别 30) Android 11 …...
传染病学模型 | Matlab实现基于SIS传染病模型模拟城市内人口的互相感染及城市人口流动所造成的传染
文章目录 效果一览基本描述模型介绍程序设计参考资料效果一览 基本描述 传染病学模型 | Matlab实现基于SIS传染病模型模拟城市内人口的互相感染及城市人口流动所造成的传染 模型介绍 SIS模型是一种基本的传染病学模型,用于描述一个人群中某种传染病的传播情况。SIS模型假设每个…...
物联网技术如何改变我们的生活:一位资深物联网专家的见解
物联网(IoT)是指通过网络互联的物理设备、车辆、建筑物以及其他物品,这些物品都内置了传感器、执行器、软件和网络连接器,使它们能够收集和交换数据。物联网技术已经在各个领域产生了深远的影响,包括家庭、医疗、交通、…...
node.js+vue.js大学生在线选课系统的设计与实现93pul
本次设计任务是要设计一个选课系统的设计与实现,通过这个系统能够满足用户对选课信息的需求。系统的主要功能包括:个人中心、学生管理、教师管理、选课信息管理等功能。 管理员可以根据系统给定的账号进行登录,登录后可以进入选课系统的设计与…...
华为OD机试真题 Java 实现【寻找符合要求的最长子串】【2023Q1 200分】
一、题目描述 给定一个字符串 s ,找出这样一个子串: 该子串中的任意一个字符最多出现2次;该子串不包含指定某个字符;请你找出满足该条件的最长子串的长度。 二、输入描述 第一行为要求不包含的指定字符,为单个字符,取值范围[0-9a-zA-Z]。 第二行为字符串s,每个字符范…...
接口测试工具Postman接口测试图文教程
目录 一、前言 二、Postman安装和使用 三、请求方式 四、资金记录接口实例演示 一、前言 在前后端分离开发时,后端工作人员完成系统接口开发后,需要与前端人员对接,测试调试接口,验证接口的正确性可用性。而这要求前端开发进…...
视频编辑软件:迅捷视频工具箱
这是一款功能强大、易于使用的视频编辑工具,支持视频剪辑、视频转换、音频转换、视频压缩、视频水印、字幕贴图等实用功能,可以帮助你制作出高质量的视频作品。(传送门:https://www.xunjiepdf.com/xjspgjx) 功能简介 …...
网络知识点之-HTTP协议
超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内…...
K类函数和KL类函数
Class K \mathcal{K} K function- K \mathcal{K} K类函数 Definition: A continuous function α : [ 0 , a ) → [ 0 , ∞ ) \alpha:[0,a)\rightarrow[0,\infin) α:[0,a)→[0,∞) is said belong to class K \mathcal{K} K if it strictly increasing and α ( 0 ) 0 …...
华为OD机试之完美走位(Java源码)
完美走位 题目描述 在第一人称射击游戏中,玩家通过键盘的A、S、D、W四个按键控制游戏人物分别向左、向后、向右、向前进行移动,从而完成走位。 假设玩家每按动一次键盘,游戏任务会向某个方向移动一步,如果玩家在操作一定次数的键…...
Vue 原始(传统)或特别的视频组件具体实现方法
一、原始的播放器组件(传统的视频播放组件) 参考链接 1. Vue2视频播放(Video) 二、自定义视频播放组件,自播放,无控制模式 简单点的理解,就是没有点击就会暂停播放视频,还有忽略…...
香豆素荧光标记652966-03-5,ATTO425 acid,ATTO 425 羧酸,进行简析说明
中文名称:ATTO 425 羧酸 英文名称:ATTO425 COOH,ATTO-425 carboxylic acid 规格标准:10mg,25mg,50mg CAS:652966-03-5 分子式:C22H27NO6 分子量:401.46结构式:…...
linux信号量与PV操作知识点总结
信号量 信号量(semaphore) 与已经介绍过的 IPC 结构不同,它是一个计数器,信号量用于实现进程间的与斥与同步,而不是用于存储进程间通信数据。 1、特点 (1)信号量用于进程间同步,若要在进程间传递数据需要结…...
6-python中的string类型
目录 内容提要字符串截取python的转义字符 \python的字符串格式化format()的参数format()的数字格式化 字符串常用函数count()函数endwith()函数 与 startwith()函数find()函数与index()函数find()函数 ⭐index()函数 判断字符串内的字符种类函数isalnum()函数isalpha()函数isd…...
Windows系统内核溢出漏洞提权
目录 Windows内核溢出漏洞原理 溢出漏洞简介 什么是缓冲区 缓冲区溢出 缓冲区溢出目的 Windows内核溢出漏洞利用流程 提权实战思路 手工提权测试 辅助提权 EXP如何寻找 使用MSF提权 关于提权时可能遇到的问题 如果提权的时候发现无法执行命令的话,可以上…...
BlackIce病毒分析
概述 blackice是一个古老的感染型病毒,可感染系统中exe、doc和xls文件,通过USB设备和网络驱动器来传播,会向C&C下载pe执行,会关闭常用的杀软进程。下面找了一个样本,这个样本的代码结构清晰,用IDA pro…...
软件测试基础知识整理(八)- 软件缺陷
目录 一、软件缺陷 1.1 缺陷定义 1.2 缺陷判定标准 1.3 软件缺陷产生的原因 1.4 软件缺陷产生的根源 1.5 软件缺陷信息 1.5.1 缺陷状态 1.5.2 缺陷严重程度 1.5.3 缺陷优先级 1.6 缺陷报告模板 1.7 缺陷报告注意事项 1.8 缺陷跟踪流程 1.9 缺陷数据分析关注的问题 …...
从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...
ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...
基于matlab策略迭代和值迭代法的动态规划
经典的基于策略迭代和值迭代法的动态规划matlab代码,实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...
【Java学习笔记】BigInteger 和 BigDecimal 类
BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...
安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)
船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...
MySQL 知识小结(一)
一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...
Java求职者面试指南:计算机基础与源码原理深度解析
Java求职者面试指南:计算机基础与源码原理深度解析 第一轮提问:基础概念问题 1. 请解释什么是进程和线程的区别? 面试官:进程是程序的一次执行过程,是系统进行资源分配和调度的基本单位;而线程是进程中的…...
AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势…...
