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级限制;
■ 通用功能:高级搜索支持通过自定义字段搜索。