CN118714059B - 测试网关设备的方法、装置和存储介质 - Google Patents
测试网关设备的方法、装置和存储介质 Download PDFInfo
- Publication number
- CN118714059B CN118714059B CN202411203674.1A CN202411203674A CN118714059B CN 118714059 B CN118714059 B CN 118714059B CN 202411203674 A CN202411203674 A CN 202411203674A CN 118714059 B CN118714059 B CN 118714059B
- Authority
- CN
- China
- Prior art keywords
- node terminal
- terminal equipment
- code file
- preset
- test
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/14—Arrangements for monitoring or testing data switching networks using software, i.e. software packages
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/133—Protocols for remote procedure calls [RPC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q11/00—Selecting arrangements for multiplex systems
- H04Q11/0001—Selecting arrangements for multiplex systems using optical switching
- H04Q11/0062—Network aspects
- H04Q11/0067—Provisions for optical access or distribution networks, e.g. Gigabit Ethernet Passive Optical Network (GE-PON), ATM-based Passive Optical Network (A-PON), PON-Ring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q11/00—Selecting arrangements for multiplex systems
- H04Q11/0001—Selecting arrangements for multiplex systems using optical switching
- H04Q11/0062—Network aspects
- H04Q2011/0079—Operation or maintenance aspects
- H04Q2011/0083—Testing; Monitoring
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种测试网关设备的方法、装置和存储介质,本发明涉及通信网络测试技术领域,所述方法包括:根据接收的子节点终端设备广播的网络地址和端口信息,建立连接线程;基于所述连接线程,通过预设远程过程调用框架建立主节点终端设备与所述子节点终端设备之间的连接通道;通过所述连接通道,从所述子节点终端设备中调用测试函数或测试类方法,并执行预设测试用例;接收所述子节点终端设备返回的预设测试用例对应的测试结果,其中,所述测试结果用于表征网关设备的产品质量。本发明旨在实现了一种自动化控制多个终端进行测试并得到各个终端测试结果的方案,提高了对于网关设备的测试效率并减少人工干预。
Description
技术领域
本发明涉及通信网络测试技术领域,尤其涉及一种测试网关设备的方法、装置和存储介质。
背景技术
在现代通信网络中,PON网关作为网络接入的重要设备,其性能和功能的可靠性至关重要。随着网络规模的扩大和业务种类的增加,测试任务日益复杂,传统测试网关设备的方法的缺陷愈加明显。
以PON网关测试方法为代表的传统的测试网关设备的方法通常需要人工频繁干预。难以满足当前快速发展的通信技术对网关设备的测试效率要求,同时,也没有实现通过多个终端自动化测试的方案来测试网关设备的产品质量。
发明内容
本发明的主要目的在于提供一种测试网关设备的方法、装置和存储介质,旨在通过远程控制多个终端来执行对于网关设备的测试任务,以得到网关设备的产品质量评估结果;同时,相较于现有测试手段,实现了一种自动化控制多个终端进行测试并得到各个终端测试结果的方案,提高了对于网关设备的测试效率并减少了人工干预。
为实现上述目的,本发明提供一种方法,应用于网关设备所在预设局域网中的主节点终端设备,所述预设局域网中还包括至少两个子节点终端设备,所述子节点终端设备中部署有预设测试用例对应的测试函数或预设测试用例对应的测试类方法,所述预设测试用例用于检测所述网关设备;
所述方法包括:
根据接收的子节点终端设备广播的网络地址和端口信息,建立连接;
基于所述连接线程,通过预设远程过程调用框架建立所述主节点终端设备与所述子节点终端设备之间的连接通道;
通过所述连接通道,从所述子节点终端设备中调用所述测试函数或所述测试类方法,并执行所述预设测试用例;
接收所述子节点终端设备返回的预设测试用例对应的测试结果,其中,所述测试结果用于表征所述网关设备的产品质量。
具体地,在根据接收的子节点终端设备广播的网络地址和端口信息,建立连接之前,所述方法还包括:
创建第一文本文件,其中,所述第一文本文件用于表征主节点终端设备和子节点终端设备之间的通信信息;
解析所述第一文本文件,生成第一代码文件和第二代码文件,其中,所述第一代码文件用于表征所述主节点终端设备和所述子节点终端设备之间的数据传输交互,所述第二代码文件用于表征所述主节点终端设备和所述子节点终端设备之间的远程调用;
基于所述第一代码文件和所述第二代码文件,编译生成子节点终端设备代码文件以及主节点终端设备代码文件,其中,所述子节点终端设备代码文件用于实现所述子节点终端设备的逻辑,所述主节点终端设备代码文件用于实现所述主节点终端设备的逻辑;
基于所述子节点终端设备代码文件以及所述主节点终端设备代码文件,生成所述预设测试用例对应的测试执行程序;
分别将所述主节点终端设备和所述子节点终端设备部署在预设局域网中的主节点和所述预设局域网中的子节点上。
具体地,所述创建第一文本文件,包括:
创建初始第一文本文件;
通过预设编程语言定义消息结构和服务接口,生成定义文本;
基于所述初始第一文本文件以及定义文本,得到所述第一文本文件。
具体地,所述解析所述第一文本文件,生成第一代码文件和第二代码文件,包括:
响应于预设编译指令,通过所述预设远程过程调用框架的编译器,编译生成所述第一代码文件和所述第二代码文件。
具体地,所述基于所述第一代码文件和所述第二代码文件,编译生成子节点终端设备代码文件以及主节点终端设备代码文件,包括:
基于所述第一代码文件、所述第二代码文件,通过所述预设远程过程调用框架,编译生成子节点终端设备代码文件;
基于所述第一代码文件、所述第二代码文件,通过所述预设远程过程调用框架,编译生成所述主节点终端设备代码文件。
具体地,所述基于所述第一代码文件、所述第二代码文件,通过所述预设远程过程调用框架,编译生成子节点终端设备代码文件,包括:
基于所述第一代码文件以及所述第二代码文件,定义子节点终端设备对应的服务类;
基于所述第一代码文件以及所述第二代码文件,定义子节点终端设备对应的主节点终端设备请求;
基于所述第一代码文件以及所述第二代码文件,编写启动函数,所述启动函数用于启动预设远程过程调用框架对应的服务器;
基于所述第一代码文件以及所述第二代码文件,编写注册函数,所述注册函数用于将所述服务类注册到所述服务器上;
基于所述第一代码文件以及所述第二代码文件,编写广播函数,所述广播函数用于广播所述子节点终端设备的网络地址;
基于所述服务类、所述主节点终端设备请求以及所述服务器的本地网络地址,编译生成所述子节点终端设备代码文件。
具体地,所述基于所述第一代码文件、所述第二代码文件,通过所述预设远程过程调用框架,编译生成所述主节点终端设备代码文件,包括:
基于所述第一代码文件以及所述第二代码文件,编写接收函数,所述接收函数用于接收所述子节点终端设备的网络地址;
基于所述第一代码文件以及所述第二代码文件,编写主节点终端设备对应的主节点终端设备装饰器,所述主节点终端设备装饰器用于封装所述主节点终端设备的连接管理逻辑;
基于所述第一代码文件以及所述第二代码文件,编写主节点终端设备装饰器执行函数,所述主节点终端设备装饰器执行函数用于使用所述主节点终端设备装饰器来处理所述主节点终端设备与所述子节点终端设备之间的连接;
基于所述接收函数、所述主节点终端设备装饰器以及所述主节点终端设备装饰器执行函数,编译生成所述主节点终端设备代码文件。
具体地,所述基于所述子节点终端设备代码文件以及所述主节点终端设备代码文件,生成所述预设测试用例对应的测试执行程序,包括:
基于所述子节点终端设备代码文件以及所述主节点终端设备代码文件,编写生成打包指令;
响应于打包指令,通过预设打包工具,将所述子节点终端设备代码文件的代码以及所述主节点终端设备代码文件的代码打包成所述测试执行程序。
为实现上述目的,本发明还提供一种测试网关设备的装置,应用于网关设备所在预设局域网中的主节点终端设备,所述预设局域网中还包括至少两个子节点终端设备,所述子节点终端设备中部署有预设测试用例对应的测试函数或预设测试用例对应的测试类方法,所述预设测试用例用于检测所述网关设备;
所述装置包括:
第一单元,用于根据接收的子节点终端设备广播的网络地址和端口信息,建立连接线程;
第二单元,用于基于所述连接线程,通过预设远程过程调用框架建立所述主节点终端设备与所述子节点终端设备之间的连接通道;
第三单元,用于通过所述连接通道,从所述子节点终端设备中调用所述测试函数或所述测试类方法,并执行所述预设测试用例;
第四单元,用于接收所述子节点终端设备返回的预设测试用例对应的测试结果,其中,所述测试结果用于表征所述网关设备的产品质量。
为实现上述目的,本发明还提供一种存储介质,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行本发明所提供的任一种方法中的步骤。
本发明提供的一种测试网关设备的方法、装置和存储介质,应用于所述网关设备所在局域网中的主节点终端设备,所述预设局域网中还包括至少两个子节点终端设备,所述子节点终端设备中部署有预设测试用例对应的测试函数或预设测试用例对应的测试类方法,所述预设测试用例用于检测所述网关设备;所述方法包括以下内容:首先,主节点终端设备根据接收的子节点终端设备广播的网络地址,创建连接线程;然后,基于所述连接线程,通过预设远程过程调用框架建立所述主节点终端设备与所述子节点终端设备之间的连接通道;再然后,通过所述连接通道,主节点终端从所述子节点终端设备中调用所述测试函数或所述测试类方法,并执行所述预设测试用例;最终,接收所述子节点终端设备返回的预设测试用例对应的测试结果,所述测试结果用于表征所述网关设备的产品质量。
本发明可以通过将主节点终端设备和子节点终端设备分别部署在局域网中不同终端对应的节点上,实现在主节点终端设备远程控制多个终端对应的子节点终端设备执行测试用例,通过预设局域网来模拟网关设备的拓扑关系,最终得到测试用例对应的测试结果,并通过测试结果来评价网关设备的产品质量,这个测试过程相较于现有测试技术,实现了一种自动化控制多个终端进行测试并得到各个终端测试结果的方案,提高了测试的效率并减少了人工干预。
附图说明
图1为本发明实施例提供的流程示意图;
图2为本发明实施例提供的测试拓扑图;
图3为本发明实施例提供的测试网关设备的装置的结构示意图;
附图标记:第一单元-301、第二单元-302、第三单元-303、第四单元-304。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
由于以PON网关测试方法为代表的传统的多终端测试网关设备的案例通常需要人工频繁干预,难以满足当前快速发展的通信技术对网关设备的测试效率的要求。
故本发明实施例提供一种测试网关设备的方法、装置和存储介质来解决实际技术问题。
在一些实施例中,该装置具体可以集成在电子设备中,该电子设备可以为终端、服务器等设备。
在一些实施例中,服务器也可以以终端的形式来实现。
其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
其中,终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本发明在此不做限制。
以下分别进行详细说明。需说明的是,以下实施例的序号不作为对实施例优选顺序的限定。
本发明实施例提供一种测试网关设备的方法,所述方法可以通过远程控制多个终端来执行对于网关设备的测试任务,以得到网关设备的产品质量评估结果;同时,相较于现有测试手段,提高了对于网关设备的测试效率并减少了人工干预。
在一些实施例中,所述方法应用于网关设备所在预设局域网中的主节点终端设备,所述预设局域网中还包括至少两个子节点终端设备,所述子节点终端设备中部署有预设测试用例对应的测试函数或预设测试用例对应的测试类方法,所述预设测试用例用于检测所述网关设备。
具体地,可以通过预设局域网中终端设备的布置来模拟被测试的网关设备的拓扑关系,并通过远程控制多个终端设备执行所述预设测试用例,提升测试效率,从而满足当前的大规模通信测试需求。
在一些实施例中,所述网关设备可以是PON网关,PON网关是所述方法的测试对象,PON网关是一种软件、硬件结合的产品,也是一种用于为用户提供网络接入的网络设备。
如图1所示,所述方法的具体流程可以如下:
S110、根据接收的子节点终端设备广播的网络地址和端口信息,建立连接线程。
在一些实施例中,所述子节点终端设备在启动后可以自动广播所述网络地址和端口信息,所述主节点终端设备在启动后可以自动发现所述预设局域网中的所有子节点终端设备,当所述主节点终端设备接收到其中一个子节点终端设备的网络地址后,可以创建一个所述连接线程,直至创建完成所有子节点终端设备对应的连接线程。
具体地,所述连接线程负责处理网络I/O操作,如发送请求、接收响应等。所述连接线程可以是阻塞式的,也可以是非阻塞式的。
在一些实施例中,子节点终端设备可以创建一个线程用于广播网络地址和端口信息,主节点根据接收的子节点终端设备广播的网络地址和端口,基于RPC协议建立连接。
S120、基于所述连接线程,通过预设远程过程调用框架建立所述主节点终端设备与所述子节点终端设备之间的连接通道。
在一些实施例中,所述预设远程过程调用框架可以是gRPC框架。gRPC框架是一个高性能、开源和通用的远程过程调用(Remote Procedure Call, RPC)框架,由Google开发并维护。gRPC框架基于HTTP/2协议,支持多种编程语言,如C++、Java、Python、Go等,广泛应用于微服务架构、云原生应用和跨平台通信中。
S130、通过所述连接通道,从所述子节点终端设备中调用所述测试函数或所述测试类方法,并执行所述预设测试用例。
在一些实施例中,可以通过所述连接通道从一个主节点终端设备向子节点终端设备发起远程过程调用(RPC),以执行测试函数或测试类的方法,并运行预设的测试用例。
在一些实施例中,所述测试用例可以是一种人按照运营商提供的规范要求编写的文档,文档里面描述了测试环境、测试步骤,测试标准,测试就是按照用例文档来执行,检查所述网关设备的各项测试是否符合规范要求。
S140、接收所述子节点终端设备返回的预设测试用例对应的测试结果,其中,所述测试结果用于表征所述网关设备的产品质量。
在一些实施例中,在所述根据接收的子节点终端设备广播的网络地址和端口信息,建立连接线程之前,所述方法还包括如下所示的T110至T150的步骤内容:
T110、创建第一文本文件,其中,所述第一文本文件用于表征主节点终端设备和子节点终端设备之间的通信信息。
在一些实施例中,所述第一文本文件可以是一个*.proto 文件,所述通信协议是计算机或设备之间进行通信时约定的规则和格式,用于确保数据能够正确传输和解释。
在一些实施例中,所述第一文本文件表征的通信协议可以是HTTP/2协议(HyperText Transfer Protocol),HTTP/2 是 HTTP 协议的一个重要版本,旨在提高 Web性能和优化用户体验。HTTP/2 相较于之前的 HTTP/1.x 版本,在数据传输效率、性能优化和安全性方面有明显的优势。
在一些实施例中,所述第一文本文件表征的通信协议也可以是TCP/IP协议(Transmision Control Protocol/Internet Protocol),TCP/IP协议是互联网通信的基础协议,TCP 提供可靠的、面向连接的数据传输,而 IP 负责在网络中寻址和路由数据包。
在一些实施例中,所述通信协议包括消息结构和服务接口。
具体地,消息结构是所述通信协议的双方有效地交换信息而遵循的一种格式和规则,消息结构定义了数据如何被组织、封装、传输以及被接收方解析的过程,确保了数据的准确无误和高效传输。服务接口是指通信协议中定义的软件层面上的接口,服务接口为应用程序或系统提供了一组访问通信服务的规则和方法。服务接口使得高层的应用程序能够无需关心底层复杂的通信细节,就能通过标准化的调用与远程实体进行交互,通过服务接口,所述通信协议隐藏了底层复杂的实现细节,为上层应用提供了一个抽象的、易于使用的通信环境,从而简化了网络编程和系统的集成工作。
在一些实施例中,所述创建第一文本文件,包括如下所示的T111至T113的步骤内容:
T111、创建初始第一文本文件。
T112、通过预设编程语言定义消息结构和服务接口,生成定义文本。
在一些实施例中,可以通过Protocol Buffers(ProtoBuf)语言来定义服务接口和消息结构。
T113、基于所述初始第一文本文件以及定义文本,得到所述第一文本文件。
T120、解析所述第一文本文件,生成第一代码文件和第二代码文件,其中,所述第一代码文件用于表征所述主节点终端设备和所述子节点终端设备之间的数据传输交互,所述第二代码文件用于表征所述主节点终端设备和所述子节点终端设备之间的远程调用。
在一些实施例中,所述解析所述第一文本文件,生成第一代码文件和第二代码文件,包括如下所示的具体过程:
响应于预设编译指令,通过所述预设远程过程调用框架的编译器,编译生成所述第一代码文件和所述第二代码文件。
具体地,所述预设远程过程调用框架可以是gRPC,gRPC是一个高性能、开源的远程过程调用(RPC)框架,由Google开发并开源发布,它旨在简化并加速分布式系统中各个服务之间的通信。
所述第一代码文件和所述第二代码文件可以分别为*_pb2.py和*.pb2_grpc.py文件。
所述预设远程过程调用框架的编译器可以是protoc编译器,protoc编译器是Google的Protocol BufferT序列化框架中的一个核心组件。当定义了.proto文件来描述数据结构和接口之后,就需要使用protoc编译器来将这些.proto文件转换为目标编程语言的源代码。
T130、基于所述第一代码文件和所述第二代码文件,编译生成子节点终端设备代码文件以及主节点终端设备代码文件,其中,所述子节点终端设备代码文件用于实现所述子节点终端设备的逻辑,所述主节点终端设备代码文件用于实现所述主节点终端设备的逻辑。
在一些实施例中,所述基于所述第一代码文件、所述第二代码文件以及预设测试场景,编译生成子节点终端设备代码文件以及主节点终端设备代码文件,包括如下所示的T131至T132的步骤内容:
T131、基于所述第一代码文件、所述第二代码文件,通过所述预设远程过程调用框架,编译生成子节点终端设备代码文件。
T132、基于所述第一代码文件、所述第二代码文件,通过所述预设远程过程调用框架,编译生成所述主节点终端设备代码文件。
具体地,所述基于所述第一代码文件、所述第二代码文件,通过所述预设远程过程调用框架,编译生成子节点终端设备代码文件,包括如下所示的T1311至T1316的步骤内容:
T1311、基于所述第一代码文件以及所述第二代码文件,定义子节点终端设备对应的服务类。
在一些实施例中,可以在gRPC中定义所述服务类。
T1312、基于所述第一代码文件以及所述第二代码文件,定义子节点终端设备对应的主节点终端设备请求。
在一些实施例中,可以通过编写子节点终端设备代码来实现主节点终端设备请求的处理逻辑,包括提取函数名称和参数。
T1313、基于所述第一代码文件以及所述第二代码文件,编写启动函数,所述启动函数用于启动预设远程过程调用框架对应的服务器。
在一些实施例中,可以通过编写代码来启动gRPC服务器。
T1314、基于所述第一代码文件以及所述第二代码文件,编写注册函数,所述注册函数用于将所述服务类注册到所述服务器上。
在一些实施例中,可以将所述服务类注册到所述服务器上,并在指定端口上启动所述服务器。
T1315、基于所述第一代码文件以及所述第二代码文件,编写广播函数,所述广播函数用于广播所述子节点终端设备的网络地址。
在一些实施例中,可以通过编写函数来来使用 UDP 套接字并配置为广播模式,获取本地网络地址并通过广播循环发送消息,以便所述主节点终端设备可以获取所述子节点终端设备的网络地址。
T1316、基于所述服务类、所述主节点终端设备请求以及所述服务器的本地网络地址,编译生成所述子节点终端设备代码文件。
具体地,所述基于所述第一代码文件、所述第二代码文件,通过所述预设远程过程调用框架,编译生成所述主节点终端设备代码文件,包括如下所示的T1321至T1324的步骤内容:
T1321、基于所述第一代码文件以及所述第二代码文件,编写接收函数,所述接收函数用于接收所述子节点终端设备的网络地址。
在一些实施例中,可以编写主节点终端设备代码中的 receive_ip_address 函数,使用 socket 创建一个 UDP 套接字并绑定到指定端口,以监听所有网卡上的广播消息,并解析子节点终端设备发送的网络地址。
T1322、基于所述第一代码文件以及所述第二代码文件,编写主节点终端设备对应的主节点终端设备装饰器,所述主节点终端设备装饰器用于封装所述主节点终端设备的连接管理逻辑。
在一些实施例中,所述主节点终端设备装饰器是指在编程中,尤其是面向对象编程语言中,用于增强或修改主节点终端设备调用功能的一种设计模式,装饰器的设计模式允许在不修改原始类代码的情况下,动态地给对象添加新的职责或行为。具体地,所述主节点终端设备装饰器每次调用一个函数或方法都会创建 MyServiceStub 实例,用于调用远程方法。
T1323、基于所述第一代码文件以及所述第二代码文件,编写主节点终端设备装饰器执行函数,所述主节点终端设备装饰器执行函数用于使用所述主节点终端设备装饰器来处理所述主节点终端设备与所述子节点终端设备之间的连接。
在一些实施例中,可以编写 rpc_client_exec 函数,使用装饰器处理 gRPC 主节点终端设备连接,以构建FunctionRequet消息,其中包含函数名和参数,并调用远程方法ExecuteFunction。同时,还可以打印返回结果,并使用 recode_log 函数将结果记录在日志中。
T1324、基于所述接收函数、所述主节点终端设备装饰器以及所述主节点终端设备装饰器执行函数,编译生成所述主节点终端设备代码文件。
T140、基于所述子节点终端设备代码文件以及所述主节点终端设备代码文件,生成预设测试场景对应的测试执行程序。
在一些实施例中,所述基于所述子节点终端设备代码文件以及所述主节点终端设备代码文件,生成预设测试场景对应的测试执行程序,包括如下所示的T141至T142的步骤内容:
T141、基于所述子节点终端设备代码文件以及所述主节点终端设备代码文件,编写生成打包指令。
T142、响应于打包指令,通过预设打包工具,将所述子节点终端设备代码文件的代码以及所述主节点终端设备代码文件的代码打包成所述测试执行程序。
在一些实施例中,可以将主节点终端设备代码文件与子节点终端设备代码文件通过pyinstaller工具进行打包为exe可执行文件。
T150、分别将所述主节点终端设备和所述子节点终端设备部署在预设局域网中第一终端对应的主节点和所述预设局域网中第二终端对应的子节点上,并启动所述测试执行程序,以使用户通过所述主节点终端设备远程控制所述子节点终端设备来测试所述预设测试场景中的测试内容。
在一些实施例中,将子节点终端设备部署到各个子节点(真实PC或虚拟机)上,启用子节点终端设备,主节点终端设备部署到主节点PC上,启用主节点终端设备各个子节点与主节点在同一局域网中,子节点终端设备启动后自动广播子节点终端设备ip地址,主节点终端设备启动后自动发现局域网中的所有子节点终端设备,当主节点终端设备检测到一个子节点终端设备的网络地址后,会创建一个线程,使用 gRPC 建立通道并执行测试内容,输出测试结果并生成记录日志。
本发明实施例首先创建第一文本文件,其中,所述第一文本文件用于表征主节点终端设备和子节点终端设备之间的通信协议,所述主节点终端设备的数量为1,所述子节点终端设备的数量至少为1,以实现通过一个主节点终端设备与多个终端之间的连接;然后,解析所述第一文本文件,生成第一代码文件和第二代码文件,其中,所述第一代码文件用于表征所述主节点终端设备和所述子节点终端设备之间的数据传输交互,所述第二代码文件用于表征所述主节点终端设备和所述子节点终端设备之间的远程调用;再然后,基于所述第一代码文件、所述第二代码文件以及预设测试场景,编译生成子节点终端设备代码文件以及主节点终端设备代码文件,其中,所述子节点终端设备代码文件用于实现所述子节点终端设备的逻辑以及所述预设测试场景的测试逻辑,所述主节点终端设备代码文件用于实现所述主节点终端设备的逻辑,以提高测试场景的开发效率并提高所述主节点终端设备与所述子节点终端设备之间的连接稳定性;之后,基于所述子节点终端设备代码文件以及所述主节点终端设备代码文件,生成预设测试场景对应的测试执行程序;最终,分别将所述主节点终端设备和所述子节点终端设备部署在预设局域网中第一终端对应的主节点和所述预设局域网中第二终端对应的子节点上,并启动所述测试执行程序,以实现远程控制多个终端执行测试任务。
为了更进一步地阐释本发明,下面通过一个具体实施例继续进行说明:
本实施例为实现在主节点终端设备远程控制多个终端对应的子节点终端设备执行测试任务,并提高测试的效率并减少人工干预,进行如下处理:
(一)定义 Proto 文件:
首先创建一个*.proto 文件来定义服务接口和消息结构。在这个文件中,使用Protocol Buffers (ProtoBuf)语言来定义服务接口和消息结构。这个文件的内容决定了主节点终端设备和服务器之间的通信协议,包括请求和响应消息的格式以及服务接口的方法。
*.proto 文件的文件内容:
文件头部声明定ProtoBuf语法版本;
定义请求消息,要执行的函数名称以及函数参数;
定义响应消息,函数执行结果;
定义服务接口,MyService 是一个 gRPC 服务,其中包含两个 RPC 方法,ExecuteFunction接受一个 FunctionRequest 类型的请求,并返回一个FunctionResponse 类型的响应;TransferLogFile接收一个空的 Empty 消息作为输入,使用流式RPC(streaming RPC)返回多个 LogChunk 消息作为输出。
通过这个*.proto 文件,可以使用 gRPC 的工具链生成主节点终端设备和服务器的代码,使得不同平台和语言之间可以高效地进行远程调用。
(二)生成*_pb2.py文件和*.pb2_grpc.py文件:
通过使用gRPC的protoc编译器,根据上述定义的*.proto文件生成相应的 *_pb2.py文件和*.pb2_grpc.py文件,*_pb2.py文件用来和 protobuf 数据进行交互,*.pb2_grpc.py文件用来和gRPC 进行交互,该文件定义了RPC的类,包含了类的请求参数和响应等等,因此可用python直接实例化调用。
(三)编写子节点终端设备代码:
所述子节点终端设备代码包含了实现 gRPC 子节点终端设备的所有必要步骤,包括定义服务类、处理主节点终端设备请求、启动服务器以及广播服务器 IP 地址的功能。通过broadcast_ip_address函数,使用socket创建一个 UDP 套接字并配置为广播模式,获取本地IP地址并加入特定字段通过广播循环发送消息,供主节点终端设备获取子节点终端设备地址。通过try_decode函数,尝试解码字节内容,支持多种编码格式。MyServiceServicer为gRPC 服务实现类。通过ExecuteFunction方法,接收主节点终端设备请求,提取函数名称和参数,并调用对应的函数。通过serve函数,启动 gRPC 服务,创建一个线程用于广播 IP地址, 建一个 gRPC 服务器并将 MyServiceServicer 服务注册到服务器,在指定端口启动服务器,并等待终止信号。通过TransferLogFile函数,向主节点终端设备传输日志内容,TransferLogFile函数使用了流式 RPC(streaming RPC),这样可以在文件传输时逐块发送数据。在MyServiceServicer类中,可以定义测试逻辑相关的函数或方法,以供主节点终端设备远程调用(此处可根据具体的测试场景定义封装测试逻辑,比如模拟用户通过浏览器访问网页、ping外网、通过iperf进行性能测试、或稳定性测试场景)。
(四)编写主节点终端设备代码:
所述主节点终端设备代码包括以下内容:
receive_ip_address函数,使用socket创建一个 UDP 套接字并绑定到指定端口,监听所有网卡上的广播消息,解析子节点终端设备发送的ip地址;
rpc_client函数,为gRPC 主节点终端设备装饰器,用于处理 gRPC 主节点终端设备连接,主节点终端设备每调用一个函数或方法都会创建 MyServiceStub 实例,用于调用远程方法;
rpc_client_exec函数,使用装饰器处理 gRPC 主节点终端设备连接,构建FunctionRequest 消息,包含函数名和参数,调用远程方法 ExecuteFunction,打印返回结果,使用record_log函数将结果记录在日志中。
(五)部署:
将主节点终端设备与子节点终端设备代码文件通过pyinstaller工具进行打包为exe可执行文件。将子节点终端设备部署到预设局域网的各个子节点(真实PC或虚拟机)上,启用子节点终端设备,主节点终端设备部署到预设局域网的主节点PC上,启用主节点终端设备。
测试拓扑图如图2所示,各个子节点与主节点在同一预设局域网中,子节点终端设备启动后自动广播子节点终端设备ip地址与端口号,主节点终端设备启动后自动发现预设局域网中的所有子节点终端设备,当主节点终端设备检测到一个子节点终端设备地址后,会创建一个线程,使用 gRPC 建立通道并执行测试内容,输出测试结果并生成记录日志,所述测试结果用于表征所述网关设备的产品质量,所述网关设备为待测的PON网关,该PON网关在所述预设局域网中与交换机网络连接,交换机在所述预设局域网中的存在,可以增加所述预设局域网中的终端数量。
综上,本发明提供了一种测试网关设备的方法,可以通过将主节点终端设备和子节点终端设备分别部署在局域网中不同终端对应的节点上,实现在主节点终端设备远程控制多个终端对应的子节点终端设备执行测试用例,通过预设局域网来模拟网关设备的拓扑关系,最终得到测试用例对应的测试结果,并通过测试结果来评价网关设备的产品质量,这个测试过程相较于现有测试技术,实现了一种自动化控制多个终端进行测试并得到各个终端测试结果的方案,提高了测试的效率并减少了人工干预。
为了更好地实施以上方法,本发明实施例还提供一种测试网关设备的装置,该装置具体可以集成在电子设备中,该电子设备可以为终端、服务器等设备。其中,终端可以为手机、平板电脑、智能蓝牙设备、笔记本电脑、个人电脑等设备;服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群。
比如,在本实施例中,将以测试网关设备的装置具体集成在终端中为例,对本发明实施例的方法进行详细说明。
例如,如图3所示,所述装置应用于所述网关设备所在预设局域网中的主节点终端设备,所述预设局域网中还包括至少两个子节点终端设备,所述子节点终端设备中部署有预设测试用例对应的测试函数或预设测试用例对应的测试类方法,所述预设测试用例用于检测所述网关设备;该测试网关设备的装置可以包括第一单元301、第二单元302、第三单元303以及第四单元304,如下:
第一单元301,用于根据接收的子节点终端设备广播的网络地址和端口信息,建立连接线程;
第二单元302,用于基于所述连接线程,通过预设远程过程调用框架建立所述主节点终端设备与所述子节点终端设备之间的连接通道;
第三单元303,用于通过所述连接通道,从所述子节点终端设备中调用所述测试函数或所述测试类方法,并执行所述预设测试用例;
第四单元304,用于接收所述子节点终端设备返回的预设测试用例对应的测试结果,其中,所述测试结果用于表征所述网关设备的产品质量。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
由上可知,本发明实施例可以通过将主节点终端设备和子节点终端设备分别部署在局域网中不同终端对应的节点上,实现在主节点终端设备远程控制多个终端对应的子节点终端设备执行测试任务,以此提高了测试的效率并减少人工干预。
由上可知,本发明实施例可以实现远程控制多个终端执行测试任务,提高测试的效率并减少人工干预。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一存储介质中,并由处理器进行加载和执行。
为此,本发明实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的任一种测试网关设备的方法中的步骤。例如,该指令可以执行如下步骤:
根据接收的子节点终端设备广播的网络地址和端口信息,建立连接线程;
基于所述连接线程,通过预设远程过程调用框架建立所述主节点终端设备与所述子节点终端设备之间的连接通道;
通过所述连接通道,从所述子节点终端设备中调用所述测试函数或所述测试类方法,并执行所述预设测试用例;
接收所述子节点终端设备返回的预设测试用例对应的测试结果,其中,所述测试结果用于表征所述网关设备的产品质量。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
根据本发明的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在存储介质中。计算机设备的处理器从存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中提供的各种可选实现方式中提供的方法。
由于该存储介质中所存储的指令,可以执行本发明实施例所提供的任一种测试网关设备的方法中的步骤,因此,可以实现本发明实施例所提供的任一种测试网关设备的方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本发明实施例所提供的一种测试网关设备的方法、装置和存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (9)
1.一种测试网关设备的方法,其特征在于,应用于网关设备所在预设局域网中的主节点终端设备,所述预设局域网中还包括至少两个子节点终端设备,所述子节点终端设备中部署有预设测试用例对应的测试函数或预设测试用例对应的测试类方法,所述预设测试用例用于检测所述网关设备;
所述方法包括:
根据接收的子节点终端设备广播的网络地址和端口信息,建立连接线程;
基于所述连接线程,通过预设远程过程调用框架建立所述主节点终端设备与所述子节点终端设备之间的连接通道;
通过所述连接通道,从所述子节点终端设备中调用所述测试函数或所述测试类方法,并执行所述预设测试用例;
接收所述子节点终端设备返回的预设测试用例对应的测试结果,其中,所述测试结果用于表征所述网关设备的产品质量;
在所述根据接收的子节点终端设备广播的网络地址和端口信息,建立连接线程之前,所述方法还包括:
创建第一文本文件,其中,所述第一文本文件用于表征主节点终端设备和子节点终端设备之间的通信信息;
解析所述第一文本文件,生成第一代码文件和第二代码文件,其中,所述第一代码文件用于表征所述主节点终端设备和所述子节点终端设备之间的数据传输交互,所述第二代码文件用于表征所述主节点终端设备和所述子节点终端设备之间的远程调用;
基于所述第一代码文件和所述第二代码文件,编译生成子节点终端设备代码文件以及主节点终端设备代码文件,其中,所述子节点终端设备代码文件用于实现所述子节点终端设备的逻辑,所述主节点终端设备代码文件用于实现所述主节点终端设备的逻辑;
基于所述子节点终端设备代码文件以及所述主节点终端设备代码文件,生成所述预设测试用例对应的测试执行程序;
分别将所述主节点终端设备和所述子节点终端设备部署在预设局域网中的主节点和所述预设局域网中的子节点上。
2.如权利要求1所述的方法,其特征在于,所述创建第一文本文件,包括:
创建初始第一文本文件;
通过预设编程语言定义消息结构和服务接口,生成定义文本;
基于所述初始第一文本文件以及定义文本,得到所述第一文本文件。
3.如权利要求1所述的方法,其特征在于,所述解析所述第一文本文件,生成第一代码文件和第二代码文件,包括:
响应于预设编译指令,通过所述预设远程过程调用框架的编译器,编译生成所述第一代码文件和所述第二代码文件。
4.如权利要求3所述的方法,其特征在于,所述基于所述第一代码文件和所述第二代码文件,编译生成子节点终端设备代码文件以及主节点终端设备代码文件,包括:
基于所述第一代码文件、所述第二代码文件,通过所述预设远程过程调用框架,编译生成子节点终端设备代码文件;
基于所述第一代码文件、所述第二代码文件,通过所述预设远程过程调用框架,编译生成所述主节点终端设备代码文件。
5.如权利要求4所述的方法,其特征在于,所述基于所述第一代码文件、所述第二代码文件,通过所述预设远程过程调用框架,编译生成子节点终端设备代码文件,包括:
基于所述第一代码文件以及所述第二代码文件,定义子节点终端设备对应的服务类;
基于所述第一代码文件以及所述第二代码文件,定义子节点终端设备对应的主节点终端设备请求;
基于所述第一代码文件以及所述第二代码文件,编写启动函数,所述启动函数用于启动预设远程过程调用框架对应的服务器;
基于所述第一代码文件以及所述第二代码文件,编写注册函数,所述注册函数用于将所述服务类注册到所述服务器上;
基于所述第一代码文件以及所述第二代码文件,编写广播函数,所述广播函数用于广播所述子节点终端设备的网络地址;
基于所述服务类、所述主节点终端设备请求以及所述服务器的本地网络地址,编译生成所述子节点终端设备代码文件。
6.如权利要求4所述的方法,其特征在于,所述基于所述第一代码文件、所述第二代码文件,通过所述预设远程过程调用框架,编译生成所述主节点终端设备代码文件,包括:
基于所述第一代码文件以及所述第二代码文件,编写接收函数,所述接收函数用于接收所述子节点终端设备的网络地址;
基于所述第一代码文件以及所述第二代码文件,编写主节点终端设备对应的主节点终端设备装饰器,所述主节点终端设备装饰器用于封装所述主节点终端设备的连接管理逻辑;
基于所述第一代码文件以及所述第二代码文件,编写主节点终端设备装饰器执行函数,所述主节点终端设备装饰器执行函数用于使用所述主节点终端设备装饰器来处理所述主节点终端设备与所述子节点终端设备之间的连接;
基于所述接收函数、所述主节点终端设备装饰器以及所述主节点终端设备装饰器执行函数,编译生成所述主节点终端设备代码文件。
7.如权利要求1所述的方法,其特征在于,所述基于所述子节点终端设备代码文件以及所述主节点终端设备代码文件,生成所述预设测试用例对应的测试执行程序,包括:
基于所述子节点终端设备代码文件以及所述主节点终端设备代码文件,编写生成打包指令;
响应于打包指令,通过预设打包工具,将所述子节点终端设备代码文件的代码以及所述主节点终端设备代码文件的代码打包成所述测试执行程序。
8.一种测试网关设备的装置,其特征在于,应用于网关设备所在预设局域网中的主节点终端设备,所述预设局域网中还包括至少两个子节点终端设备,所述子节点终端设备中部署有预设测试用例对应的测试函数或预设测试用例对应的测试类方法,所述预设测试用例用于检测所述网关设备;
所述装置包括:
第一单元,用于根据接收的子节点终端设备广播的网络地址和端口信息,建立连接线程;在所述根据接收的子节点终端设备广播的网络地址和端口信息,建立连接线程之前,所述方法还包括:
创建第一文本文件,其中,所述第一文本文件用于表征主节点终端设备和子节点终端设备之间的通信信息;
解析所述第一文本文件,生成第一代码文件和第二代码文件,其中,所述第一代码文件用于表征所述主节点终端设备和所述子节点终端设备之间的数据传输交互,所述第二代码文件用于表征所述主节点终端设备和所述子节点终端设备之间的远程调用;
基于所述第一代码文件和所述第二代码文件,编译生成子节点终端设备代码文件以及主节点终端设备代码文件,其中,所述子节点终端设备代码文件用于实现所述子节点终端设备的逻辑,所述主节点终端设备代码文件用于实现所述主节点终端设备的逻辑;
基于所述子节点终端设备代码文件以及所述主节点终端设备代码文件,生成所述预设测试用例对应的测试执行程序;
分别将所述主节点终端设备和所述子节点终端设备部署在预设局域网中的主节点和所述预设局域网中的子节点上;
第二单元,用于基于所述连接线程,通过预设远程过程调用框架建立所述主节点终端设备与所述子节点终端设备之间的连接通道;
第三单元,用于通过所述连接通道,从所述子节点终端设备中调用所述测试函数或所述测试类方法,并执行所述预设测试用例;
第四单元,用于接收所述子节点终端设备返回的预设测试用例对应的测试结果,其中,所述测试结果用于表征所述网关设备的产品质量。
9.一种存储介质,其特征在于,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1~7任一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202411203674.1A CN118714059B (zh) | 2024-08-30 | 2024-08-30 | 测试网关设备的方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202411203674.1A CN118714059B (zh) | 2024-08-30 | 2024-08-30 | 测试网关设备的方法、装置和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118714059A CN118714059A (zh) | 2024-09-27 |
CN118714059B true CN118714059B (zh) | 2024-12-03 |
Family
ID=92814606
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202411203674.1A Active CN118714059B (zh) | 2024-08-30 | 2024-08-30 | 测试网关设备的方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118714059B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109933519A (zh) * | 2019-01-22 | 2019-06-25 | 泰康保险集团股份有限公司 | 自动化测试方法、装置、系统、介质和电子设备 |
CN114448852A (zh) * | 2021-12-30 | 2022-05-06 | 中国电信股份有限公司 | 一种网关终端的测试方法、装置及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108710575B (zh) * | 2018-05-23 | 2020-11-24 | 华南理工大学 | 基于路径覆盖测试用例自动生成的单元测试方法 |
US10628276B2 (en) * | 2018-06-29 | 2020-04-21 | International Business Machines Corporation | Unit test framework for testing code in a gateway service |
CN109726132B (zh) * | 2019-01-03 | 2021-03-23 | 京东方科技集团股份有限公司 | 一种软件测试方法及软件测试自动化管理系统 |
CN117897980A (zh) * | 2021-11-19 | 2024-04-16 | 英特尔公司 | 无线接入网智能应用管理器 |
US20240078148A1 (en) * | 2022-09-07 | 2024-03-07 | Red Hat, Inc. | Automatically generating a translation engine for facilitating remote procedure calls between a client program and a server program |
CN118093380A (zh) * | 2024-02-01 | 2024-05-28 | 深圳小鹅网络技术有限公司 | 一种JMeter集群压测方法、系统、设备及介质 |
-
2024
- 2024-08-30 CN CN202411203674.1A patent/CN118714059B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109933519A (zh) * | 2019-01-22 | 2019-06-25 | 泰康保险集团股份有限公司 | 自动化测试方法、装置、系统、介质和电子设备 |
CN114448852A (zh) * | 2021-12-30 | 2022-05-06 | 中国电信股份有限公司 | 一种网关终端的测试方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN118714059A (zh) | 2024-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106776313B (zh) | 一种模拟服务的方法、装置及集中管理平台 | |
CN100377556C (zh) | 通信协议的构件化实现方法 | |
CN110413418B (zh) | 缓存同步装置及方法,缓存同步系统、电子设备 | |
CN111831538B (zh) | 调试方法、装置以及存储介质 | |
CN100389572C (zh) | 一种远程调用通信组件的系统及方法 | |
US9602329B1 (en) | Dynamic remote procedure call | |
CN109451014B (zh) | 一种WebService代理系统及其透明代理方法 | |
CN114124929A (zh) | 跨网络的数据处理方法和装置 | |
CN112688915A (zh) | 跨协议通信方法、装置及服务器 | |
US20010011215A1 (en) | Network device simulation system and method | |
CN108881425A (zh) | 一种数据包处理方法及系统 | |
US10402307B2 (en) | System and method for providing runtime tracing for a web-based client accessing a transactional middleware platform using an extension interface | |
CN111367685B (zh) | 接口调用的方法及装置、计算机设备、存储介质 | |
CN118714059B (zh) | 测试网关设备的方法、装置和存储介质 | |
CN110572394B (zh) | 访问控制方法及装置 | |
WO2023083071A1 (zh) | 视图交互方法、装置、电子设备及计算机可读介质 | |
CN114675821B (zh) | 一种基于低代码的服务标准化系统及方法 | |
CN116561013A (zh) | 基于目标服务框架的测试方法、装置、电子设备和介质 | |
CN116599949A (zh) | 基于http协议的第三方api协议接入方法及系统 | |
CN115982257A (zh) | 接口创建方法以及相关设备 | |
CN115951884A (zh) | 一种信息处理方法、装置及微前端架构系统 | |
CN115134397B (zh) | 一种自适应的交易挡板平台的实现方法、装置及设备 | |
CN111142860B (zh) | 用于实现接口调用的方法及装置 | |
CN117234146B (zh) | 一种云化plc多协议i/o设备远程控制方法及系统 | |
CN110311936A (zh) | 客户端之间的通讯方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |