RunnerGo测试平台的安装和使用

本文介绍了RunnerGo测试平台的安装步骤,针对Linux环境,详细说明了如何在CentOS7上安装及配置。重点讲解了测试对象的创建、场景管理和计划管理,包括并发模式、响应时间模式等压力测试选项。
摘要由CSDN通过智能技术生成

文章适用于想RunnerGo入门的同学,本人主要是后端,这里做一个入门的学习记录。想深入适用RunnerGo的同学可以参考官网文档: https://wiki.runnergo.cn/docs/

这里我测试的代码是之前搭建的一个前后端分离小demo,代码地址是https://gitee.com/lihao2/error-demo.git

安装

RunnerGo是一款全栈式测试平台,目前实现了接口测试、场景自动化测试、性能测试等测试能力。

我的安装环境的虚拟机下Linux centos7,注意内存需要8G,在Linux下创建终端运行下面命令

wget  https://img.cdn.apipost.cn/running_go/img/wiki/runnergo.tar && tar xf  runnergo.tar   && bash install.sh

出现以下内容表示安装完成

++ '[' 0 -eq 0 ']'
++ echo 'RunnerGo 启动完成'
RunnerGo 启动完成
++ break
++ echo ---------------------------------------------------------------------
---------------------------------------------------------------------
++ echo 'RunnerGo安装完成 浏览器访问IP+端口 默认端口号9998'
RunnerGo安装完成 浏览器访问IP+端口 默认端口号9998

在安装的时候可能会卡住,这时候可以使用ls命令查看相关组件是下载完毕,就是runnergo.tar包,如果没有下载好则执行最开始的命令,如果下载完可以运行命令bash install.sh或者./install.sh命令重新走下安装。如果有其他问题可以参考官方文档:https://wiki.runnergo.cn/docs/zd2

安装完毕后注意开放下端口,我这里由于是本地Linux环境,所以直接关闭的防火墙

sudo systemctl stop firewalld
sudo systemctl disable firewalld

在浏览器访问对应账号http://系统IP:9998,即可进入

默认超管账号runnergo 密码runnergo

使用

安装完成后进入首先需要创建一个团队,然后点击进入团队就可以进行API的测试了

在这里插入图片描述
首先可以点击环境管理创建环境,这里的环境其实就是你要测试的API地址,定义好后方便后期测试接口,当然不定义每次写测试对象的时候直接写入全部地址也行,就是有些麻烦。

注意因为runnergo是在Linux下,不是在本地这里,所以如果要测试本地接口,需要接口测试时写入本地IP,不能是localhost和127.0.0.1,除非代码和runnergo是在一个Linux上

测试对象

定义好后创建点击测试对象创建测试用的接口,这里用于填写要测试的后台接口,整体内容有点像postMain,按照需求写入就好。我的后端接口如下

@RestController
@RequestMapping("item")
public class ItemController {

    @Autowired
    private ItemService itemService;

    @PostMapping("page")
    public PageInfo<ItemResult> page(@RequestBody ItemParam param)
    {
        Integer pageNum = param.getPageNum();
        Integer pageSize = param.getPageSize();
        PageHelper.startPage(pageNum, pageSize);
        List<ItemResult> list = itemService.page();
        return new PageInfo<>(list);
    }

}

根据接口创建测试对象,这里的关联提取用于提取响应参数的值,主要是在场景里面使用

在这里插入图片描述

场景管理

场景用于多个接口的综合处理,根据业务可以定义多个接口进行统一调用测试,并且可以设置控制器在测试时进行逻辑判断。

点击 引入测试对象 就可以导入刚才创建的测试接口,这里也可以直接定义

在这里插入图片描述

点击接口可以选择多种不同的模式

错误率模式:如果场景中某一接口超过设置的错误率阈值,则计划自动停止;如到达最大并发数后,错误率仍没有超过错误率阈值,则继续运行稳定持续时长所设置的时长运行后结束该计划

响应时间模式:响应时间为准,如果其中有一个接口达到大于设定的阈值后则并发数不再增加,并运行稳定持续时长所设置的时长运行后结束该计划;如果到达最大并发数后仍未达到设定的阈值,则继续运行稳定持续时长所设置的时长运行后结束该计划

每秒应答模式:每秒钟发送并响应的接口数量(RPS),计算方式:RPS=接口的总请求数*接口的并发数/响应总耗时,约等于:接口的并发数/平均响应时间(s)。如果RPS大于所设阈值时,并发数会增加到最大并发数,小于阈值时,会根据设置逐渐增加

测试接口时有些参数不想设置成固定的可以定义成文档传入runnerGo,读取数据进行测试

在这里插入图片描述

文档可以是csv文件或者txt文件,第一行为标题,每行作为一个数据,多个数据之间逗号隔开,txt文件可以直接创建笔记本去写,如果比较多最好使用csv文件,可以通过创建一个Excel文件然后另存为csv文件。

我需要的参数是pageNum,所以创建的文件内容如下。

在这里插入图片描述

点击添加文件即可,在需要使用参数的位置使用双括号声明 例如{{pageNum}}

在这里插入图片描述

计划管理

计划其实就是场景的集合,主要就是批量的运行场景。和前面的差不多,可以直接导入场景,然后在任务配置中可以线程等相关配置。

在这里插入图片描述

其中控制模式分为单独模式和集中模式,两者都会先启动所有并发,不同的是单独模式是一个线程走完后立即启动一个新的,集中模式是等待设置的线程数全结束后,再启动设置的进行触发,两者就是看小说,单独是作者更了一章就看了一章,集中是养一养再一起看完。

测压模式共有6种。时间单位为秒

**并发模式:**模拟多个并发用户同时发送请求,适用于需要评估系统并发处理能力的场景

参数
持续时长:模拟并发用户操作的持续时间
并发数:发送请求的并发用户数量

**阶梯模式:**逐渐增加并发用户数量,模拟系统负载逐渐增加的情况

参数
起始并发数:开始时的用户数量
并发数步长:每个阶梯增加的并发用户数量
步长持续时长:每个阶梯增加并发用户数量所持续的时间,期间负载不断增加直到下一阶梯
最大并发数:允许的最大并发用户数量,当压测达到最大并发数后,不再增加并发用户数量
持续时长:压测过程的时间长度

**错误率模式:**用于测试系统在高错误率下的性能和稳定性。系统发送一定比例的错误请求,以场景中单个接口的错误率为测试目标,可自定义错误率,如果场景中某一接口超过设置的错误率阈值,则计划自动停止。

需要设置接口为错误率模式。参数和阶梯模式一样

**响应时间模式:**用于测量系统对请求的响应时间,该模式下,测试工具会记录每个请求的响应时间,并生成相应的统计数据和报告,以评估系统的性能和响应能力。

每个接口的响应时间和设定的阀值相比。如果其中有一个接口达到大于设定的阈值后则并发数不再增加,并运行稳定持续时长所设置的时长运行后结束该计划;如果到达最大并发数后仍未达到设定的阈值,则继续运行稳定持续时长所设置的时长运行后结束该计划。

需要设置接口模式为响应时间模式。参数和阶梯模式一样

**每秒应答数模式:**用于测试系统在单位时间内能够处理的请求数量,根据预设的每秒请求数量发送请求,以评估系统的负载能力和吞吐量。适用于需要测试系统在高负载下的性能和承载能力的场景

**轮次模式:**模拟多个测试轮次或迭代的情况,适用于需要进行持久性能测试、负载测试和压力测试的场景

参数
轮次:执行的迭代次数
并发数:同时发送请求的并发用户数量
报告列表

开始测试后就会在报告列表中显示本次的测试报告,点击即可查看详情信息

在这里插入图片描述

每秒应答数:系统在单位时间内处理请求并返回响应的能力,衡量了系统每秒钟能够成功处理并响应的客户端请求数量。

每秒应答成功数:系统在单位时间内成功处理并返回响应的客户端请求数量。关联到用户体验和系统稳定性

吞吐量:实际传输数据的速率,每秒完成的事务数

成功数吞吐量:单位时间内成功处理并响应的请求数量。这个指标不仅考虑了接口处理请求的速度,还强调了请求的成功率

除此之外runnerGO提供线形图显示各个数据

50%响应时间线:表示有一半的请求在这个时间或更短的时间内得到了响应,用于了解API的基础性能

90%响应时间线:表示90%的请求在这个时间或更短的时间内得到了响应,用于评估API在大多数情况下的性能表现

95%响应时间线:用于评估API在极端情况下的性能表现,如果95%的响应时间过高,那么可能意味着有少量请求遇到了严重的性能问题或延迟,这可能会影响到用户体验或系统稳定性

在这里插入图片描述

disk_io:磁盘的输入和输出

mem:内存,常会关注内存的读写速度、稳定性以及是否存在内存泄漏

net_io:网络输入输出,也就是网络上的发送和接收情况

在这里插入图片描述

响应时间过高,那么可能意味着有少量请求遇到了严重的性能问题或延迟,这可能会影响到用户体验或系统稳定性
在这里插入图片描述

disk_io:磁盘的输入和输出

mem:内存,常会关注内存的读写速度、稳定性以及是否存在内存泄漏

net_io:网络输入输出,也就是网络上的发送和接收情况

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值