【RunnerGo】(一)初识RunnerGo

2023-11-17 10:56:19 浏览数 (2)

作为一名测试行业的老兵,17年开始接触性能测试,从此就迷失在跳动的数据的世界里,距今为止已有5个年头了。

性能测试就是通过全方位的测试数据去评估系统的承受能力,从而找到系统瓶颈通过优化手段来提高系统的可用性。当然,任何架构都存在缺陷,不存在可以承受无限压力的系统,只是需要针对业务进行取舍。

说到性能测试,我们就不得不提jmeter,一款伟大的性能测试工具(当然不仅仅只能做性能),为中国的互联网事业做出了巨大的贡献(仅代表个人观点)。很多人都是使用jmeter进入了性能测试领域,也有很多公司以它为引擎开发了性能测试平台,它基本能满足所有初入性能测试领域的人对性能测试认知的要求。

越来越有种感觉性能测试做的时间越长,越感到自己什么都不会,越像个小白。

在做性能过程中,经常会遇到无法测,无法真实评估数据准确性的问题。因为无法真实模拟用户使用的场景,通常我们只会将主流程或者重要的接口进行压测。

收集性能测试数据也是比较麻烦的事儿,需要繁琐的配置,并且由于每个公司或每个业务关注的性能指标不同,让我们测试起来,更加的感觉难以入手。

性能测试相对在测试行业是有比较高的门槛,没有人带,没有项目实战,很难入门,不是参加个培训班,培训课就能解决的问题。听很多人说过,报了班报了课,找到的工作还是功能测试或者其他的,很少有能转去做性能测试。

基于种种原因(以上只是很小一部分原因),我想自己开发一套性能测试工具,让我们更方便,更全面,更简单的去做性能测试。

今年有幸遇到了这种机会,并顺利参与了核心的开发工作。

基于go语言的一体化性能压测工具

RunnerGo是一款国内开发者自研的性能压测工具,可以进行接口测试、场景自动化测试、性能压测等一系列功能。

工具特性:

  • go语言运行:基于go语言开发,运行速度快、更节省资源
  • 智能调度算法:自研的调度算法,合理利用服务器资源,降低资源消耗
  • 实时生成测试报告:运行任务后,可实时查看执行结果,快速诊断服务病症
  • 丰富的报告图表:全方位展示各个指标运行曲线图
  • 实时修改:可根据压测模式实时修改并发数、持续时长等
  • 实时日志:可在压测过程中开启日志模式,查看请求响应信息
  • 可编辑报告:可在任务运行结束后,针对测试结果进行测试分析,实时编写报告
  • Flow场景流:可视化的业务流,通过连线就可快速搭建起来自己的业务流,还可直接调试运行场景,电流般的业务流转
  • 多种压测模式:支持并发模式、阶梯模式、错误率模式、响应时间模式、每秒请求时间模式等多种压测模式,满足所有业务需求

生成报告

官网地址

快速开始

代码语言:javascript复制
#下载代码
git clone https://github.com/Runner-Go-Team/runner-go.git
# 启动
cd kunpeng # 进入到github 目录
docker-compose  up -d   # 启动
docker-compose  down -v # 删除

目录说明

代码语言:javascript复制
├── collector
│   ├── build.sh
│   ├── Dockerfile
│   ├── entrypoint.sh
│   └── wait-for-it.sh
├── config
│   ├── config.env
├── docker-compose.yaml
├── file-server
│   ├── data
│   ├── Dockerfile
│   ├── file-server
│   └── file-server.tar.gz
├── kafka
├── manage
│   ├── Dockerfile
│   ├── entrypoint.sh
│   ├── manage
│   └── wait-for-it.sh
├── mongo
│   ├── data
│   └── init-mongo.sh
├── mysql
│   ├── data
│   ├── Dockerfile
│   ├── mysql.cnf
│   └── mysql.sql
├── nginx
│   ├── data
│   ├── Dockerfile
│   ├── entrypoint.sh
│   └── runner.conf
├── redis
│   └── data
└── runner
    ├── build.sh
    ├── Dockerfile
    ├── entrypoint.sh
    └── wait-for-it.sh

技术栈

  • 后端: GoLang
  • 前端: React.js
  • 中间件: MySQL, MongoDB, Kafka, ZooKeeper, Redis
  • 基础设施: Docker
  • 测试引擎: GoLang

技术架构

业务流转图

0 人点赞