网关测试报告—以部标JT808为例

时间:2024-03-29 16:42:08

1.测试环境

测试过程中,网关服务器是基于4核8G,5M外网宽带的Linux服务器,Netty网关单点运行的情况下进行的。

硬件信息表

硬件名称

规格

用途

阿里云服务器

4核8G 5M带宽

Netty网关+Redis+RabbitMQ+测试Web(单点)

实体机服务器

8核16G,内网

Netty网关+Redis+RabbitMQ+测试Web(单点)

实体机服务器

8核16G,内网

压测工具部署

 

软件信息表

软件名称

版本

说明

JDK

13

Netty运行Java环境

Redis

3.2

Netty与测试Web与RabbitMQ公共资源存储

RabbitMQ

3.5.7

消息中心(gps数据存储与平台交互)

Ubuntu

16.04

Linux网关服务器

Windows Server

2008R2

Windows网关服务器

Windows

7

内网环境压测工具部署

Windows Server

2008R2

阿里云部署压测工具

2.测试结论

针对安装方面:Windows操作更加简单,不需要过高的技能要求,点击图标就可以进行安装。Linux环境相比Windows对安装部署人员要求就比较高,需要熟悉Linux操作系统命令以及对Linux系统性能优化比较熟悉的专业人员去安装部署。

功能测试方面:目前网关暂时只集成了对交通部808协议,所有的测试过程也是基于808协议的数据进行测试的,目前只是测试了gps数据的上传以及处理能力以及808之间的指令通讯方面的验证。

易用性测试方面:设备连接对应的IP与端口后即可完成设备与平台之间的通讯,使用比较简单。

兼容性测试方面:该网关支持Windows与Linux双系统,可以完美的跨平台使用。

性能测试方面:测试结果来看Linux操作系统下运行要比Windows下性能更好些。在Windows操作系统下,数据处理峰值为1580条/秒(因为Windows测试基于自己内部网络,不知道是不是网络限制还是Netty网关在Windows性能达不到要求,与Linux还是有很大差距的)。Linux操作系统下目前数据处理峰值单点可高达到3000条/秒。

稳定性测试方面:网关目前部署在我们公司阿里云服务器(4核8G,5M外网宽带)上,截止目前已经稳定运行9天;服务器内存,CPU状态良好占用内存600M~700M。如下所示:

网关测试报告—以部标JT808为例

以上结果满足我们对单点1万终端10s一条gps数据接入的期望,初步测试通过!

3.测试过程

3.1测试进度表

工作内容

开始时间

结束时间

输出内容

测试人员

内网测试环境部署(Windows+Liunx)

2019-11-14

2019-11-14

Windows服务器下搭建网关

xxx

内网压测工具部署

2019-11-15

2019-11-15

内网压测工具正常运行

xxx

压测工具正常运行数据记录

2019-11-16

2019-11-25

输出压测工具测试截图

xxx

外网测试环境Linux

2019-11-14

2019-11-15

阿里云搭建好测试网关

xxx

外网部署压测工具

2019-11-15

2019-11-16

阿里云搭建压测工具

xxx

记录压测工具数据

2019-11-16

2019-11-25

输出压测工具测试截图

xxx

3.2测试过程截图及说明

单个压测工具虚拟终端数及运行情况截图:

网关测试报告—以部标JT808为例

测试工具字段说明:

总连接数:虚拟的终端数量

成功连接次数:虚拟终端与Netty网关建立连接的次数

主动关闭数:压测工具由于网络问题导致的主动关闭的虚拟终端连接数(如果不为0,则表示测试环境网络异常,不满足测试要求)

被动关闭数:由于Netty网关的承载能力导致虚拟终端关闭的连接数(如果不为0则标识Netty网关所属服务器的网络存在异常或者Netty网关的承载能力已经处于或者临界承载能力的极限)

发送GPS总条数:虚拟出来终端向网关发送的GPS定位数据的总条数

测试环境开启的所有压测工具启动截图:

网关测试报告—以部标JT808为例

在外网环境下一共开启了5个压测工具,每个压测工具虚拟出2000个终端,一共1万个终端。(最多的时候开启了6个压测工具,虚拟出了1.2万个jt808协议的终端,由于测试环境网关限制,已经触及到了测试服务器网络带宽的瓶颈,保障测试可靠性,就开了一天,随后几天都是用1万台虚拟终端在进行测试)。

测试web截图1

网关测试报告—以部标JT808为例

 

测试web截图2

网关测试报告—以部标JT808为例

当前注册的终端为20000,10000接入的虚拟终端数,位置数据为接入的这一万台虚拟终端上次重置后到当前的总记录数(与压测工具发送的gps数据进行对比可以判断是否存在丢数据现象)。

压测性能参数参照交通部对部标平台压测的标准进行,使用的压测工具来自交通部《平台过检压力测试工具》

网关服务器内存,CPU使用情况截图:

网关测试报告—以部标JT808为例

其中包含两个Java项目进程,第一个(红框)为web测试平台的,可以忽略不计,第二个(绿框)为Netty网关的资源使用情况。

结合上面内容输出可以看出,当前服务器(4核8G)总的资源使用情况。

CPU:59.8%使用率(外部程序),18.0%(Linux内核),剩余17.3%,状态良好。

内存:剩余0.18G,程序占用:1.79G,数据交换缓冲区6.18G,内存比较危险,观察下方绿框内Netty内存使用情况为0.68G

所以一台Linux服务器,4核,8G,5M外网宽带的设备,是足够满足一台单点Netty网关运行。

下面是我加又加了2000台终端的截图:

网关测试报告—以部标JT808为例

网关也可以稳定运行。由于服务器资源(主要是测试工具运行环境与网关部署的环境带宽限制,已经达到了4M左右)限制,无法再继续增加虚拟设备。

3.3RabbitMQ相关截图说明

网关测试报告—以部标JT808为例

如果服务器网络带宽足够,测试环境网络也还OK的情况下,我都想试试2万台的接入看看并发能否达到5000/s。

以上报告是公司内部测试工程师交付给我的第一轮整体测试说明,后面在进行源码整合与优化后,又进行了很多次的测试,整个测过程试持续了一个多月,节前又进行了对应用平台的架构整改,让平台能够有个更加友好的交互。现在总算有点时间,把近几个月的成果展示一下。