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

开始喜欢上了runnergo,JMeter out了?

RunnerGo是一款基于Go语言、国产自研的测试平台。它支持高并发、分布式性能测试。和JMeter不一样的是,它采用了B/S架构,更灵活、更方便。而且,除了API测试和性能测试,RunnerGo还加上了UI测试和项目管理等实用功能,让测试工作更得心应手,满足企业各种测试需求。

我们在各个方面对比了RunnerGo和Jmeter,帮助大家在性能测试时选择合适的测试工具。

一、RunnerGo和JMeter之间的区别

JMeter主要以工具的形式存在,它主要关注的是解决用户的测试问题。在研发理念上,JMeter侧重于测试功能的设计,力求部署简单、架构轻量,为用户提供便捷的使用体验。而在管理能力方面,JMeter更多依赖于用户自身制定的一些规章制度来约束其使用规范和建设标准。在部署架构上,JMeter通常作为独立工具部署在个人用户的电脑上。

RunnerGo则更偏向于平台的设计思路。除了具备测试功能外,RunnerGo还充分考虑了多用户场景下的易用性、多团队的管理需求以及大规模的自动化回归测试等方面。在研发理念上,RunnerGo不仅关注测试功能的实现,还注重人员权限的管理、流程的规范性以及项目数据的隔离等问题。在部署架构上,RunnerGo能够满足多人员、多团队的同时使用需求,支持高可用、集群分布式等部署方式,并且能够随着企业用户的增多进行灵活的横向扩展。

二、RunnerGo相比JMeter能力上有哪些优势?

团队协作管理方面

JMeter的不足

C/S架构限制:JMeter采用C/S架构,意味着使用者需要在本地电脑上进行安装,这对于某些环境或限制较多的用户可能不太友好。

脚本管理不足:JMeter在测试脚本的管理上显得较为单一,无法针对不同团队、产品或项目的脚本进行细致的管理和区分。

权限控制缺失:JMeter在权限控制方面存在明显不足,无法精确控制不同成员对不同测试用例的访问、修改和运行权限。

RunnerGo的优势

B/S架构便捷性:RunnerGo采用B/S架构,用户只需通过浏览器即可使用平台提供的各项功能,无需在本地进行繁琐的安装。

多维度的管理模型:RunnerGo支持团队和项目维度的管理,允许为不同部门创建独立的工作空间,实现部门级别的分权分域。同时,还可以为各部门下的项目创建子项目,进一步细化项目级别的权限管理。

精细的权限管理:RunnerGo支持角色权限管理,允许用户自定义不同的角色,并设置相应的权限。这种管理方式可以细化到部门管理员、项目管理、项目测试人员、只读人员等,从而轻松应对多产品、多项目的测试管理工作。

测试管理方面

JMeter的不足

并行测试限制:JMeter在进行性能测试时,无法直接并行运行多个测试任务,需要手动更改配置并启动额外的进程,这增加了测试的复杂性和时间成本。

脚本管理不灵活:JMeter中的测试脚本是独立管理的,这使得在其他项目中重用相似的测试脚本变得困难,容易导致脚本编写的重复和冗余。

报告生成不及时:JMeter在测试执行完成后才单独生成报告,没有实时报告功能,这不利于及时监控和评估测试进度。

报告共享不便:JMeter生成的测试报告不便于与他人快速共享,这限制了团队协作和沟通的效率。

资源管理分散:JMeter在测试依赖文件、自定义代码等方面的管理较为分散,缺乏统一的管理和维护机制,增加了维护的难度。

RunnerGo的优势

并行测试支持:RunnerGo支持多个测试任务同时进行,提高了测试效率和并发处理能力。

测试报告统一管理:RunnerGo将测试任务和测试报告统一存放在各自的模块目录下,方便随时查看历史测试报告,简化了报告的管理流程。

实时报告功能:RunnerGo在测试任务执行时即可实时查看测试报告,帮助用户及时监控和评估测试进度,提高了测试的透明度和可控性。

团队共享与通知:RunnerGo支持测试报告的团队共享,并可以配置通知到第三方,增强了团队协作和沟通的能力,提高了工作效率。

三.RunnerGo核心功能总结

RunnerGo是一个一站式的综合测试平台,其功能丰富多样,涵盖了API测试、API性能测试、UI测试、缺陷管理以及项目管理等多个方面。通过其直观易用的界面,用户可以迅速上手并高效地完成各种测试任务,无需经历复杂的学习过程。

在设计上,RunnerGo的核心能力充分考虑了企业的管理需求和用户的实际功能要求,达到了一个理想的平衡点。与JMeter相比,RunnerGo在多个方面展现出了明显的优势:

相关文章:

开始喜欢上了runnergo,JMeter out了?

RunnerGo是一款基于Go语言、国产自研的测试平台。它支持高并发、分布式性能测试。和JMeter不一样的是,它采用了B/S架构,更灵活、更方便。而且,除了API测试和性能测试,RunnerGo还加上了UI测试和项目管理等实用功能,让测…...

LLM - 大语言模型的分布式训练 概述

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://blog.csdn.net/caroline_wendy/article/details/136924304 大语言模型的分布式训练是一个复杂的过程,涉及到将大规模的计算任务分散到多个计算节点上。这样做的目的是为了处…...

Spring Cloud Alibaba 整合Seata分布式事务

目录 前言步骤引入相关maven依赖添加相关配置Client端配置注册中心Server端配置注册中心Seata-Server相关配置启动seata-server 使用方法Seata AT 模式整体机制 步骤初始化表结构标记注解GlobalTransactional 总结 前言 在数字化转型的浪潮下,企业业务系统的复杂度…...

unity 多屏幕操作

想了解基础操作请移步:(重点是大佬写的好,这里就不再赘述) Unity 基础 之 使用 Display 简单的实现 多屏幕显示的效果_unity display-CSDN博客 在panel上也可以通过获取 Canvas,来达到切换多屏幕的操作, …...

4、Jenkins持续集成-用户权限和凭证管理

文章目录 一、用户权限管理1、安装用户权限管理插件2、开启权限全局安全配置3、创建角色4、创建用户5、给用户分配角色6、创建项目测试权限二、凭证管理1、安装凭证管理插件2、安装Git插件和工具2.1 用户密码类型2.2 SSH密钥类型一、用户权限管理 利用Role-based Authorizatio…...

K8s-网络原理-中篇

引言 本文是《深入剖析 K8s》的学习笔记,相关图片和案例可从https://github.com/WeiXiao-Hyy/k8s_example中获取,欢迎 ⭐️! 上篇主要介绍了 Flannel 插件为例,讲解了 K8s 里容器网络和 CNI 插件的主要工作原理。还有一种“纯三层”的网络方…...

vue基础——java程序员版(vue路由)

1、引入路由 在控制台执行vue ui,在插件市场里可以找到vue-router并导入。 ​ 一般情况下,vue会自动在main,js中引入vue-router,如下: import Vue from vue import App from ./App.vue import ./plugins/element.js import rou…...

【vue3学习之路(一)】

文章目录 前言一、vue3项目创建1.1环境准备1.1.1 基于 vue-cli 创建(脚手架创建)1.1.2 基于 vite 创建(推荐) 二、熟悉流程总结 前言 参考视频:https://www.bilibili.com/video/BV1Za4y1r7KE?p10&spm_id_frompag…...

基于Spring Boot网络相册设计与实现

摘 要 网络相册设计与实现的目的是让使用者可以更方便的将人、设备和场景更立体的连接在一起。能让用户以更科幻的方式使用产品,体验高科技时代带给人们的方便,同时也能让用户体会到与以往常规产品不同的体验风格。 与安卓,iOS相比较起来&am…...

6 Spring-AOP

文章目录 1,AOP简介1.1 什么是AOP?1.2 AOP作用1.3 AOP核心概念 2,AOP入门案例2.1 需求分析2.2 思路分析2.3 环境准备2.4 AOP实现步骤步骤1:添加依赖步骤2:定义接口与实现类步骤3:定义通知类和通知步骤4:定义切入点步骤5:制作切面步骤6:将通知类配给容器…...

这回轮到鸿蒙禁用安卓了!!!

1月18日,鸿蒙生态千帆仪式上,华为正式宣布了HarmonyOS NEXT(下简称鸿蒙星河版或纯血鸿蒙)开发者预览已向开发者开放申请,纯血鸿蒙开始走向普及阶段。伴随着不再兼容安卓的纯血鸿蒙铺开,鸿蒙走进了运营属于自…...

Java问题详解

在Java中,问题可能涵盖多个领域,如基础知识、高级特性、设计模式、性能优化、并发编程等。下面,我将提供两个问题以及对它们的详细回答。请注意,2000字的要求可能过于庞大,我将尽量确保回答详细而不过于冗长。 问题1&…...

Go——指针和内存逃逸

区别于C/C中的指针,Go语言中的指针不能进行偏移和运算,是安全指针。 要搞明白Go语言中的指针概念需要先知道3个概念:指针地址,指针类型和指针取值。 一. Go语言的指针 Go语言中的函数传参都是值拷贝,当我们想修改某个…...

PTA L2-032 彩虹瓶

彩虹瓶的制作过程(并不)是这样的:先把一大批空瓶铺放在装填场地上,然后按照一定的顺序将每种颜色的小球均匀撒到这批瓶子里。 假设彩虹瓶里要按顺序装 N 种颜色的小球(不妨将顺序就编号为 1 到 N)。现在工…...

Spring和Spring Boot之间的区别

Spring和Spring Boot之间的区别 不仅仅体现在操作简化、配置方式以及开发速度上,还有以下几个方面: 模块化和功能范围: Spring是一个完整的框架,提供了各种各样的功能,包括依赖注入、面向切面编程、数据访问、事务管…...

海外客户获取难?海外云手机助力电商引流!

海外电商面临的市场竞争激烈,如何在海外市场获客成为了摆在许多卖家面前的难题。而在这个问题的解决方案中,海外云手机崭露头角,成为助力电商引流的新利器。 在当前市场中,云手机主要用于游戏挂机,但其潜力在海外电商领…...

什么情况下 C++ 需要垃圾处理机制?

C,作为一种以性能和灵活性著称的编程语言,历来以其严谨的手动内存管理而闻名。然而,尽管C提供了丰富的工具如RAII(Resource Acquisition Is Initialization)原则、智能指针等来协助开发者有效地管理内存,但…...

流畅的 Python 第二版(GPT 重译)(七)

第十三章:接口、协议和 ABCs 针对接口编程,而不是实现。 Gamma、Helm、Johnson、Vlissides,《面向对象设计的第一原则》 面向对象编程关乎接口。在 Python 中理解类型的最佳方法是了解它提供的方法——即其接口——如 “类型由支持的操作定义…...

vue项目中使用vue-pdf或pdf.Js,实现在页面上预览pdf内容

一。vue-pdf 1. 安装vue-pdf npm install --save vue-pdf2.页面引入 js部分 import pdf from "vue-pdf";data(){return {pdfUrl: "",pageTotal: 0,} }mounted(){this.pdfUrl pdf.createLoadingTask(pdf文件路径url);// 获取页码this.pdfUrl.promise…...

为什么静态成员函数不能是虚函数

在面向对象编程中,静态成员函数和虚函数都是常见的概念,但它们之间存在着本质上的差异。由于其特性上的差异,静态成员函数不能声明为虚函数。下面我们来探讨一下为什么静态成员函数不能是虚函数。 我在网上查到最多的说法是静态函数没有this指…...

OCC笔记:TDF_Label中有多个相同类型属性

注:OCCT版本:7.9.1 TDF_Label中有多个相同类型的属性的方案 OCAF imposes the restriction that only one attribute type may be allocated to one label. It is necessary to take into account the design of the application data tree. For exampl…...

如何优雅地绕过限制调用海外AI-API?反向代理与API中转技术详解​

阅读时长​​ | 8分钟 ​​适用读者​​ | 需要跨境调用OpenAI等AI服务的开发者/企业 ​​一、问题背景:为什么需要代理?​​ 最近在技术社区看到这样的求助: "公司服务器在国内,但业务需要调用OpenAI接口,直接访…...

【立体匹配】:双目立体匹配SGBM:(1)运行

注:这是一个专题,我会一步步介绍SGBM的实现,按照我的使用和优化过程逐步改善算法,附带实现方法 系列文章【立体匹配】:双目立体匹配SGBM:(1)运行 【立体匹配】:双目立体匹…...

ubuntu 20.04挂载固态硬盘

我们有个工控机,其操作系统是ubuntu 20.04。可以接入一个固态硬盘。将固态硬盘插好后,就要进行挂载。在AI的指导下,过程并不顺利。记录如下: 1、检查硬盘是否被识别 安装好硬盘后,运行以下命令来检查Linux系统是否…...

C语言指针与数组sizeof运算深度解析:从笔试题到内存原理

前两天跟着数组指针的教程: // #self 视频里的笔试题 !!!vipint b12[3][4] {0};printf("%ld \n", sizeof(b12[0]));printf("%ld \n", sizeof(*b12));printf("%ld \n", sizeof(*(b12 1)));printf("%ld \n", sizeof(*(&am…...

【Mac 从 0 到 1 保姆级配置教程 16】- Docker 快速安装配置、常用命令以及实际项目演示

文章目录 前言1. Docker 是什么?2. 为什么要使用 Docker? 安装 Docker1. 安装 Docker Desktop2. 安装 OrbStack3. Docker Desktop VS OrbStack5. 验证安装 使用 Docker 运行项目1. 克隆项目到本地2. 进入项目目录3. 启动容器: 查看运行效果1. OrbStack 中…...

怎么把自己电脑设置成服务器?

将自己的电脑设置为服务器可以让您托管网站、文件共享或运行各种服务。以下是设置步骤: 基本设置步骤 ‌选择操作系统‌: Windows:可使用IIS(Internet Information Services)Linux:常用Apache、Nginx等mac…...

【JMeter】后置处理器 - 提取器

文章目录 概览边界提取器正则提取器JSON提取器 概览 CSS/JQuery提取器;给网页使用JSON提取器:给JSON数据使用★边界提取器:给字符串使用★正则表达式提取器:更加高级的字符使用★Xpath提取器:给网页使用 边界提取器…...

原型对象(Prototype)详解

原型对象(Prototype)详解 一、核心概念 本质:每个 JavaScript 对象(除 null 外)都有的内置属性作用:实现对象间的属性/方法继承(原型继承)存储位置:[[Prototype]] 内部属性(通过 __proto__ 或 Object.getPrototypeOf() 访问)二、关键特性图示 对象实例 (obj)│├─…...

神经元激活函数在神经网络里起着关键作用

神经元激活函数在神经网络里起着关键作用,它能为网络赋予非线性能力,让网络可以学习复杂的函数映射关系。下面从多个方面详细剖析激活函数的作用和意义: 1. 核心作用:引入非线性因素 线性模型的局限性: 假设一个简单…...