产品解读|有了JMeter,为什么还需要MeterSphere?

提起JMeter,相信大部分的测试人员应该都很熟悉。JMeter因其小巧轻量、开源,加上支持多种协议的接口和性能测试,在测试领域拥有广泛的用户群体。一方面,测试人员会将其安装在个人的PC上,用以满足日常测试工作的需要;另一方面,很多企业会基于JMeter建设企业级的自动化测试能力。

MeterSphere是基于JMeter构建和研发的一站式开源持续测试平台。从MeterSphere的组件架构图(如下图所示)也可以看出,MeterSphere采用了JMeter作为测试引擎。与此同时,MeterSphere在JMeter的测试能力和平台架构上进行了增强和延伸,在测试能力上MeterSphere除了支持接口测试和性能测试外,还拓展了测试跟踪管理、Web UI自动化测试、测试团队协同管理等功能。在架构方面,MeterSphere可以充分利用云弹性进行高度可扩展的自动化测试。
在这里插入图片描述

一、MeterSphere和JMeter之间的区别

从上述MeterSphere和JMeter的关系说明中不难看出,JMeter在产品设计上定位为工具,而MeterSphere在产品设计上则定位为平台。这个也导致了两者在研发理念、管理能力、部署架构三个方面有着本质的差别。

在研发理念上:JMeter解决的是用户的使用问题。JMeter侧重于测试功能的设计,同时会从部署简单、架构轻量等方面考虑,方便测试人员进行简单部署和使用。而MeterSphere则是侧重于系统平台的研发设计,在具备测试功能之外,充分考虑了多用户情况下的易用性、多测试团队的管理、大规模自动化回归等多方面的需求;

在管理能力上:JMeter从功能实现的角度出发,工具的使用规范、建设标准等是依赖个人用户和企业制定一些规章制度来进行约束的。而MeterSphere持续测试平台除了功能的实现外,还注重人员权限的管理、流程的规范性、项目数据的隔离等问题,比如MeterSphere采用了“基于角色的访问控制”(即RBAC)的人员权限管理模型;

在部署架构上:JMeter往往以独立部署在个人用户PC上为主要的使用场景。而MeterSphere持续测试平台能够满足多人员、多团队同时使用,支持高可用、集群分布式等部署架构,并且支持随着企业用户的逐渐增多进行部署架构的横向扩展。

二、MeterSphere相比JMeter能力上有哪些增强?

虽然MeterSphere底层的执行引擎采用了JMeter,但是从两者的区别来看,MeterSphere一方面补充JMeter本身在测试管理方面的不足,另外一方面也在JMeter测试能力上进行了增强。

1.团队协作管理增强

JMeter的不足:

■ 采用C/S架构部署,使用者需要在本地进行安装;

■ 无法针对不同团队、产品、项目的测试脚本进行管理和区分;

■ 无法控制不同成员对不同测试用例的访问、修改、运行等权限。

MeterSphere的增强:

■ B/S架构的测试平台,只需浏览器就能使用平台提供的功能,无需使用者进行部署操作;

■ 支持团队和项目维度的管理模型,当多个部门、多个项目、多个测试团队使用时,则可以为各个部门创建工作空间进行部门级别的分权分域,为各个部门下的项目创建子项目,进一步对项目级分权分域进行管理;

■ 支持RBAC的角色权限管理方式,支持用户自定义不同的角色,设置不同的用户权限,可细化到部门管理员、项目管理、项目测试人员、只读人员等。MeterSphere还提供了操作审计日志,轻松应对多产品、多项目的测试管理工作。
在这里插入图片描述

2.测试管理方面的增强

JMeter的不足:

■ 编写好的测试脚本独立管理,其他项目或者其他测试用例无法引用相似的测试脚本,容易造成脚本编写的冗余,维护难度高;

■ 测试脚本进行了修改后,无法进行旧版本的追踪回溯和版本对比;

■ 测试依赖所需文件以及自定义代码等的管理较为分散,管理和维护很不便利。

MeterSphere的增强:

■ 支持测试用例的复制及引用,可以提炼公共测试用例供其他测试用例和项目进行引用;

■ 针对测试脚本的修改提供双维度记录与跟踪,支持脚本修改历史查询和定位,支持脚本的历史版本管理和比对;

■ 内置统一的测试文件管理中心、代码片段库,对测试依赖的文档和代码进行统一管理,大大降低了文件和测试代码维护的复杂性。
在这里插入图片描述

3.接口自动化能力加强

JMeter的不足:

■ 接口管理和接口测试割裂,一旦接口发生变化,无法快速更新涉及变更接口的测试用例;

■ 无法快速模拟接口自动化测试所依赖的上下游接口;

■ 无法将同一套的接口自动化脚本运行至不同环境,并且使用不同的参数变量;

■ 无法用方便快捷的方式将接口自动化测试接入到现有的DevOps流水线中。

MeterSphere的增强:

■ 提供了从接口定义到单接口用例的统一管理能力,支持的导入源有Postman、Swagger、HAR和JMeter等接口。同时,还提供了按照实际业务场景编排接口自动化的能力;

■ 提供了Mock服务,可以根据用户输入的请求参数,自动生成模拟数据并返回。同时,MeterSphere Mock还可以根据设置的请求触发条件进行过滤,返回期望的数据;

■ 在项目维度将环境相关的变量进行抽象,并按照Dev、QA、SIT等进行组织,测试用例通过选择运行环境即可在不同的测试环境中进行执行;

■ 提供标准的RESTful API接口和Jenkins插件,无论是广泛使用的Jenkins、GitLab这类开源CI工具,还是诸如Azure DevOps和云效这些商业的DevOps平台,亦或其他各类研发管理平台的流水线均可以调用MeterSphere的自动化测试用例、测试场景和测试计划。
在这里插入图片描述

更详细的MeterSphere接口能力说明详见文章《产品解读丨MeterSphere接口自动化测试的应用场景和实践》。

4.大规模可扩展性增强

JMeter的不足:

■ 单节点JMeter并发数承载能力有限,多节点环境配置、维护复杂;

■ JMeter无法并行运行多个测试,需要更改配置启动额外进程;

■ JMeter不支持大规模测试下的测试资源弹性伸缩。

MeterSphere的增强:

■ 压测执行节点支持一键安装,支持百万级别虚拟用户的测试;

■ 多个项目、多个测试(接口、性能、UI)可并行使用同一个测试资源池;

■ 支持对接云平台API,根据并发数自动启动、释放压测执行节点。
在这里插入图片描述

更详细的压测能力说明详见文章《MeterSphere在开源压测工具JMeter上的分布式优化和实践》。

5.测试报告分析增强

JMeter的不足:

■ 在测试执行完成后单独生成报告,无实时报告;

■ 测试报告不能便捷地与他人共享;

■ 报告可读性较差,美观性较差;

■ 没有多次测试结果之间进行比较的功能支持。

MeterSphere的增强:

■ 近乎实时的性能测试报告展示;

■ 测试报告支持团队共享,方便团队成员进行协作与分析;

■ 丰富的报告图表展示,美观大方;

■ 历史测试报告随时查看,多次测试结果可以快速进行比较。
在这里插入图片描述

三、MeterSphere核心能力总结

MeterSphere开源持续测试平台将多种测试能力进行一站式整合,屏蔽了测试工具带来的差异化,将功能测试、接口测试、性能测试、UI测试等以服务的方式提供给最终的测试人员和测试团队。

从核心能力来看,MeterSphere平台功能设计上对企业管理需求和用户具体的功能需求进行了综合评估,实现了一个很好的平衡。相比JMeter,MeterSphere的核心优势和能力体现在以下几个方面:

1.统一的用户/租户体系:MeterSphere平台提供了多种的测试能力,这些能力最终提供给不同的用户进行使用。MeterSphere提供一个统一的逻辑用户/租户体系,并且可以根据企业现有的组织管理架构进行映射和规划;

2.完善的权限管理体系:测试平台的使用者不仅仅是测试工程师,同时也有开发、运维以及团队管理者等。MeterSphere平台提供了完善的权限管理体系,实现人员、角色和功能权限的解耦,从而可以让企业非常方便地构建一套符合自己企业内部实际情况的测试权限管理体系,不同角色的人员在测试平台中依据其职责边界开展工作;

3.完备的API访问接口:大部分企业建设的DevOps平台或者CI/CD工具链,都已经提供相关的API访问接口。MeterSphere作为一个持续测试平台,必然要和其上层或者同级服务进行数据交互和联动。如前所述,MeterSphere平台可以通过开放的API与外围系统形成交互;

4.测试工具兼容能力:企业测试经过长时间积累,在不同的工具上分布了大量的测试资源或者测试数据。MeterSphere提供用户一键导入现有测试资产到平台中的能力,比如可以导入Excel用例文件、Postman接口用例、JMeter脚本、Swagger接口文档、Selenium IDE自动化脚本等,最终实现统一的管理;

5.灵活的插件扩展体系:MeterSphere一方面将测试协议的支持与平台进行解耦,用户可以灵活地通过开发协议插件的方式在MeterSphere平台中开展其所需协议的自动化测试和性能测试。另一方面,MeterSphere支持以平台插件的方式,灵活、全面且深入地对接TAPD、Jira、禅道等市面上成熟的项目管理系统。目前MeterSphere已经支持了包含WebSocket、MQTT、gRPC、Jira、TAPD等在内的几十种插件;

6.大规模横向扩展能力:不同的企业测试团队人员从几人至几十、几百人都有。MeterSphere支持采用传统虚拟机和Kubernetes集群等分布式测试资源池。通过资源池的方式支持测试机的动态扩容,MeterSphere平台中所有的测试任务,无论接口测试、性能测试还是UI自动化测试,都可以采用资源池的方式调度与运行,能够同时满足几人到几百人团队的高频测试需求。

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

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

相关文章

【SpringCloud Alibaba】(一)微服务介绍

此专栏内容皆来自于【冰河】的《SpringCloud Alibaba 实战》文档。 1. 专栏介绍 我们先来看看《SpringCloud Alibaba实战》专栏的整体结构吧,先上图 从上图,大家可以看到,专栏从整体上分为十个大的篇章,分别为 专栏设计、微服务…

Android源码中添加自己的Product

这里假设我们的公司名叫果冻(Jelly),我们准备开发一款对标苹果 14 的手机,取名叫 大米14(Rice14)。 接下来我们在源码中添加我们自己的产品(Product) 在 device 目录下添加如下的目…

Mybatis基于注解与XML开发

文章目录 1 关于SpringBoot2 关于MyBatis2.1 MyBatis概述2.2 MyBatis核心思想2.3 MyBatis使用流程3 MyBatis配置SQL方式3.1 基于注解方式3.1.1 说明3.1.2 使用流程3.1.3 常用注解 3.2 基于XML方式3.2.1 相比注解优势3.2.2 使用流程3.2.3 常用标签 1 关于SpringBoot SpringBoot…

Java中List与数组之间的相互转换

一、List列表与对象数组 List列表中存储对象&#xff0c;如List<Integer>、List<String>、List<Person>&#xff0c;对象数组中同样存储相应的对象&#xff0c;如Integer[]、String[]、Person[]&#xff0c;对象数组与对象List的转换可通过如下方式实现&…

【Git】

学习来自于&#xff1a; 女朋友乱用Git&#xff0c;差点把我代码删了。。。 一些常用的Git 知识点整理 关于Git这一篇就够了 Git基本命令大全 30分钟精通Git&#xff0c;学不会来找我 Git 版本管理 | 莫烦PYTHON Git 代码版本管理教程 文章目录 【前言】集中式与分布式的…

Jmeter配置起来太繁琐?试试RunnerGo

在用jmeter做性能测试时想看完整一点的测试报告&#xff0c;想配置阶梯模式来压测&#xff0c;想配置不同的接口并发这些都需要安装插件并且影响机器性能&#xff0c;想做自动化测试还得放到jenkins&#xff0c;这些配置起来太繁琐。今天给大家推荐一款测试平台RunnerGo&#x…

听力词汇笔记(6级)

2022年9月六级 1.personality traits:人格特征 2.all of this notwithstanding:尽管如此 3.come under&#xff1a;受到 4.scrutiny&#xff1a;关注 5.highly responsive to:对....高度敏感 6.preteen year:青春期前 7.susceptible to:受....影响 8.take sharp preced…

网络安全 Day21-数据库知识

数据库知识 1. 什么是数据库2. 为什么需要数据库&#xff08;分类不清晰&#xff09;3. 数据库的种类3.1 关系型数据库3.2 NOSQL 数据库3.3 new sql &#xff08;国产数据库&#xff09;分布式数据库3.4 云数据库 4. mysql 关系型数据库5. 安装mariadb6. 为mariadb设置密码7. M…

【Redis】高级篇: 一篇文章讲清楚Redis的单线程和多线程

目录 面试题 Redis到底是多线程还是单线程&#xff1f; 简单回答 详解 Redis的“单线程” Redis为什么选择单线程&#xff1f; 后来Redis为什么又逐渐加入了多线程特性&#xff1f; Redis为什么快&#xff1f; 回答 IO多路复用 Unix网络编程的5种IO模型 主线程和IO…

【100天精通python】Day9:数据结构_字典、集合

目录 目录 1 字典 1.1 字典的基本操作示例 1.2 字典推导式 2 集合 2.1 集合的常用操作示例 3 列表、元组、字典、集合的区别 1 字典 在Python中&#xff0c;字典&#xff08;Dictionary&#xff09;是一种无序的数据结构&#xff0c;用于存储键值对的集合。每个…

【算法题】2779. 数组的最大美丽值

题目&#xff1a; 给你一个下标从 0 开始的整数数组 nums 和一个 非负 整数 k 。 在一步操作中&#xff0c;你可以执行下述指令&#xff1a; 在范围 [0, nums.length - 1] 中选择一个 此前没有选过 的下标 i 。 将 nums[i] 替换为范围 [nums[i] - k, nums[i] k] 内的任一整…

华为openGauss数据库入门 - gsql用法

目录 1.1 gsql的语法 1.2 gsql常用选项 1.2.1 最常用的必要选项 1.2.2 -r选项 1.2.3 -E选项 1.2.4 -t选项 1.2.5 -A选项 1.2.6 -v选项 1.2.7 -c选项 1.2.8 -f选项 1.2.9 -q选项 1.3 gsql的元命令 1.3.1 \l命令 1.3.2 \du命令和\dg命令 1.3.3 \db命令 1.3.4 \d…

微服务——Nacos配置管理

目录 Nacos配置管理——实现配置管理 配置管理实践 Nacos配置管理——微服务配置拉取 Nacos配置管理——配置热更新 方式一: ​编辑 方式二(推荐方式): Nacos配置管理——多环境配置共享 优先级问题 Nacos配置管理——nacos集群搭建 总结​编辑 Nacos配置管理——实现配置管…

anydesk远程控制,主动连接。

目标 远程控制目标电脑&#xff0c;且无需对方同意&#xff0c;并且可以控制目标电脑开关机。 实现 目标电脑和己方电脑均安装anydesk。目标电脑取消开机密码。打开目标电脑的anydesk在设置安全设置中打开为自主访问设置密码。 额外设置 为了让笔记本电脑合盖后仍能被控制…

物联网的通信协议

物联网的通信协议 目录 物联网的通信协议一、UART串口通信1.1 串口通信1.2 异步收发1.3 波特率1.4 串口通信协议的数据帧1.5 优缺点1.5.1 优点1.5.2 缺点 二、I^2^C2.1 I^2^C2.2 I^2^C2.3 数据有效性2.4 起始条件S和停止条件P2.5 数据格式2.6 协议数据单元PDU2.7 优缺点2.7.1 优…

《被讨厌的勇气》

阿德勒心理学关于人的行为方面和心理方面提出了明确的目标。 行为方面的目标&#xff1a; 自立与社会和谐共处 心理方面的目标&#xff1a; “我有能力”的意识“人人都是我的伙伴”的意识 这些目标可以通过阿德勒所说的直面 人生课题 来实现。 三个 人生课题&#xff1a; …

(五)RabbitMQ-进阶 死信队列、延迟队列、防丢失机制

Lison <dreamlison163.com>, v1.0.0, 2023.06.23 RabbitMQ-进阶 死信队列、延迟队列、防丢失机制 文章目录 RabbitMQ-进阶 死信队列、延迟队列、防丢失机制死信队列延迟队列延迟队列介绍**延迟队列_死信队列_的实现**延迟队列_插件实现下载插件RabbitMQ 配置类RabbitMQ …

实现PC端微信扫码native支付功能

目录 实现PC端微信扫码 简介 实现步骤 1. 获取商户号 2. 生成支付二维码 3. 监听支付结果 4. 发起支付请求 5. 处理支付回调 示例代码 结论 Native支付 Native支付的工作原理 Native支付的优势 Native支付的应用和市场地位 开通使用微信 native 支付流程 步骤一…

Oracle输出文本平面(CSV、XML)文本数据详细过程

此过程是提供给前端,调用的接口,为报表提供”下载“功能。以下是本人在测试环境的测试,有什么不足的地方,请留言指教,谢谢。 1、测试表 分别对测试表输出csv、xml两种格式文件数据。前期的准备工作。 --在服务器端创建directory,用管理员用户 create or replace directo…

ftp传文件越来越慢的原因,以及解决方案

FTP 是一种常用的文件传输协议&#xff0c;它基于客户端-服务端模型工作&#xff0c;允许用户通过网络传输文件。但是&#xff0c;有时候在使用 FTP 的过程中&#xff0c;文件传输速度会逐渐变慢&#xff0c;这给用户带来了很多困扰。本文将分析 FTP 传文件变慢的原因&#xff…