CN108683704A - 一种Socket网络通信测试方法及其系统、存储介质 - Google Patents
一种Socket网络通信测试方法及其系统、存储介质 Download PDFInfo
- Publication number
- CN108683704A CN108683704A CN201810311635.1A CN201810311635A CN108683704A CN 108683704 A CN108683704 A CN 108683704A CN 201810311635 A CN201810311635 A CN 201810311635A CN 108683704 A CN108683704 A CN 108683704A
- Authority
- CN
- China
- Prior art keywords
- protobuf
- socket
- server
- http
- client
- 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.)
- Withdrawn
Links
Classifications
-
- 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/2866—Architectures; Arrangements
- H04L67/2871—Implementation details of single intermediate entities
-
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
Abstract
本发明提供一种基于ProtoBuf的Socket网络通信测试方法及其系统、存储介质,方法包括:接收客户端以HTTP传输协议发送过来的传输信息;将HTTP传输格式的所述传输信息实例化为ProtoBuf对象,然后再将其序列化后通过Socket传输通道发送至服务端;接收服务端返回的结果,将其反序列化后,再转换为HTTP传输格式的返回信息输出。本发明的测试方式具有测试效率高、测试准确度高、成本低、人力投入少、操作简易等优点。
Description
技术领域
本发明涉及通信测试领域,具体说的是基于ProtoBuf的Socket网络通信测试方法及其系统、存储介质。
背景技术
ProtoBuf,Protocol Buffer简称ProtoBuf,是一种轻便高效的结构化数据存储格式,平台无关、语言无关、可扩展,可用于通讯协议和数据存储等领域。
Socket,网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。
随着移动互联网技术的飞速发展,即时通讯(IM)类的产品日渐普及,其中部分产品的网络通信功能是采用Socket网络通信技术实现,特别是基于 ProtoBuf的Socket网络通信技术。该通信功能对于产品来说是非常重要的功能,因此我们需要在产品上线之前对基于ProtoBuf的Socket网络通信功能进行测试。例如,公司守护产品的登录功能、抽卡功能、选卡功能、夺宝功能(等等这些业务功能)测试,这些功能的实现都是通过上述的技术,那么就可以针对这些具体的功能使用该方法和系统进行测试。
当前产品功能存在ProtoBuf消息定义多、ProtoBuf消息变更频繁的特点,因此,我们测试的时候需要对这些测试点进行测试,但是人工测试的时候存在以下问题:
(1)无法人工手动测试,需要借助编写的脚本序列化ProtoBuf消息再通过 Socket来交互通信;
(2)对测试人员的编程基础有一定的要求,无法快速进行测试并产出测试结果;
(3)人力投入较多,效率低下;
(4)针对消息序列化、通信传输脚本编写,投入重复的工作;
(5)测试结果对比困难;
例如:某产品的登录功能实现是基于ProtoBuf的Socket网络通信,那么在测试该登录功能时,以目前的测试方法,该测试人员需要在客户端做到以下几点:
1)根据Socket服务端的配置,创建相应的WebSocket连接通道,用于数据交互;
2)读取登录功能接口ProtoBuf消息的定义,实例化一个该对象,并将登录用户名和密码等信息赋值;
3)将该ProtoBuf对象实例序列化(对象转化成二进制数据流),并通过第一步创建的Socket连接通道将该数据流发送至服务端;
4)服务端根据客户端发送的内容,返回相应数据流后,再根据预先定义的ProtoBuf消息结构体对该数据内容反序列化成具体的ProtoBuf实例(二进制数据流转化成对象),获取到该对象里的各字段信息展现给测试人员;
5)测试人员根据返回内容判断该功能测试结果。
而以上前四个步骤都需要测试人员进行相应的脚本编写。
发明内容
本发明所要解决的技术问题是:提供一种基于ProtoBuf的Socket网络通信测试方法及其系统、存储介质,能够实现无脚本的自动化测试,显著提高测试效率。
为了解决上述技术问题,本发明采用的技术方案为:
一种基于ProtoBuf的Socket网络通信测试方法,包括:
接收客户端以HTTP传输协议发送过来的传输信息;
将HTTP传输格式的所述传输信息实例化为ProtoBuf对象,然后再将其序列化后通过Socket传输通道发送至服务端;
接收服务端返回的结果,将其反序列化后,再转换为HTTP传输格式的返回信息输出。
本发明提供的第二个技术方案为:
一种计算机存储介质,其上存储有计算机程序,所述程序在被处理器调用时,能够实现上述基于ProtoBuf的Socket网络通信测试方法所包含的所有步骤。
本发明提供的第三个技术方案为:
一种基于ProtoBuf的Socket网络通信测试系统,包括客户端、中间件以及服务端;
所述中间件,用于接收客户端以HTTP传输协议发送过来的传输信息;以及
将HTTP传输格式的所述传输信息实例化为ProtoBuf对象,然后再将其序列化后通过Socket传输通道发送至服务端;以及
接收服务端返回的结果,将其反序列化后,再转换为HTTP传输格式的返回信息输出。
本发明的有益效果在于:通过设置在客户端与服务端的中间件,将客户端要发送至服务端的数据内容以Web服务的HTTP协议传输给中间件;中间件只需利用简单的HTTP接口测试手段便可实现测试功能在客户端至服务端之间的 Socket网络通信的测试,从而将复杂的Socket连接与传输、ProtoBuf序列化与反序列化变为自动化处理过程,即传输消息内容转换的全自动化,可以替代人工实现无脚本的自动测试;同时,也可以降低基于ProtoBuf的Socket网络通信功能的测试难度,降低测试人员的门槛;进一步的,还能防止人力的重复投入,消息序列化、通信传输脚本无需重复编写。本发明的测试方式具有测试效率高、测试准确度高、成本低、人力投入少、操作简易等优点。
附图说明
图1为本发明一种基于ProtoBuf的Socket网络通信测试方法的流程示意图;
图2为本发明实施例一的一种基于ProtoBuf的Socket网络通信测试方法的流程示意图;
图3为本发明实施例二的客户端上登录功能接口与服务端之间基于 ProtoBuf的Socket网络通信测试。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
本发明最关键的构思在于:将客户端要发送至服务端的数据内容以Web服务的HTTP协议传输给中间件;中间件只需利用简单的HTTP接口测试手段便可实现测试功能在客户端至服务端之间的Socket网络通信的测试,从而实现传输消息内容转换的全自动化,无脚本。
本发明涉及的技术术语解释:
请参照图1,本发明提供一种基于ProtoBuf的Socket网络通信测试方法,包括:
接收客户端以HTTP传输协议发送过来的传输信息;
将HTTP传输格式的所述传输信息实例化为ProtoBuf对象,然后再将其序列化后通过Socket传输通道发送至服务端;
接收服务端返回的结果,将其反序列化后,再转换为HTTP传输格式的返回信息输出。
从上述描述可知,本发明的有益效果在于:
(1)无需人工手动测试,全程无脚本化的自动测试,并且能够快速测试并产出测试结果,显著提高测试效率和测试准确度;
(2)操作简易,降低了测试人员门槛,对测试人员的编程基础没有要求;
(3)该测试方法可以大大节省人力成本,使得测试人员在测试时将更多的时间和精力放在用例设计上;
(4)解决现有测试方式需要针对每一个用例编写一遍操作脚本的问题,能够实现无需针对消息序列化、通信传输脚本编写投入重复的工作;
(5)测试结果对比简易。
进一步的,所述接收客户端以HTTP传输协议发送过来的传输信息,之前,还包括:
获取预先配置的对应测试功能的传输信息和返回的结果的ProtoBuf消息结构体定义;
依据所述ProtoBuf消息结构体定义配置所述测试功能要通过Socket传输通道发送至服务端的内容,以及服务端返回的结果的内容;
将所述发送至服务端的内容转换为HTTP传输格式的所述传输信息。
由上述描述可知,直接获取预先自动生成的Socket数据交互的ProtoBuf消息定义,测试人员只需预先依据ProtoBuf消息定义编写好适用于HTTP传输协议的传输信息即可,使得测试人员完全脱离了脚本的编写,以此显著降低测试操作难度,同时大大缩短整个测试流程所需时间,在实现自动化测试的同时显著提升测试效率。
进一步的,还包括:
依据配置的所述返回的结果的内容,分析所述返回信息是否正确;
若正确,则判定所述测试功能的Socket网络通信正常。
由上述描述可知,测试人员根据返回的信息,通过直观的判断其是否与预先配置的对应返回结果的ProtoBuf消息结构体定义中的内容相同即可快速获取测试结果,测试结果的判定方式简易。
进一步的,在所述通过Socket传输通道发送至服务端,之前,还包括:
判断对应的Socket传输通道是否已建立,若否,则进行对应的Socket传输通道的创建。
由上述描述可知,能够实现自动管理Socket连接队列,保证对应功能的 Socket传输测试顺利开展。
进一步的,若所述方法为对应一功能接口的Socket网络通信测试,则所述方法具体为:
接收客户端以HTTP传输协议发送过来的对应所述功能接口的传输信息;
获取预先配置的对应所述功能接口的传输信息的第一ProtoBuf消息结构体定义;
依据所述第一ProtoBuf消息结构体定义将HTTP传输格式的所述传输信息实例化为ProtoBuf对象;
将所述传输信息的各字段对应的值反射到所述ProtoBuf对象的各个属性并赋相应的值;
将赋值后的所述ProtoBuf对象序列化成二进制流后通过Socket传输通道发送至服务端;
接收服务端返回的结果,将其进行反序列化后,再转换为HTTP传输格式的返回信息输出。
由上述描述可知,提供一种具体的,对应功能接口的Socket网络通信测试方法,保证测试方式的实用性。
进一步的,所述接收服务端返回的结果,将其进行反序列化后,再转换为对应HTTP传输格式的返回信息输出,具体为:
接收服务端返回的二进制流的结果;
获取预先配置的对应所述功能接口的返回结果的第二ProtoBuf消息结构体定义;
依据所述第二ProtoBuf消息结构体定义将所述二进制流的结果反序列化为ProtoBuf对象,再将其转换为HTTP传输格式的返回信息输出。
由上述描述可知,同时提供具体的自动化反序列化过程。
进一步的,所述通过Socket传输通道发送至服务端,之前,还包括:
判断与客户端的IP对应的Socket传输通道是否已建立;
若否,则创建与所述客户端的IP对应的Socket传输通道。
由上述描述可知,通过客户端的IP自动判断是否有可用的Socket传输通道,实现快速、准确的自动判断。
进一步的,所述HTTP传输格式为Json格式或者Xml格式。
由上述描述可知,使用完全独立于编程语言的Json文本格式来存储和表示传输信息,在适用于HTTP传输的同时,还具有简洁、清晰、易于阅读和编写,以及提升传输效率等特点;当然,也可以使用Xml格式来实现HTTP传输,实实现简化传输信息。
本发明提供的另一个技术方案为:
一种计算机存储介质,其上存储有计算机程序,所述程序在被处理器调用时,能够实现上述基于ProtoBuf的Socket网络通信测试方法所包含的所有步骤。
对应本领域普通技术人员可以理解实现上述第一个技术方案中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来实现的,所述的程序可存储于一计算机可读取的存储介质中,该存储介质作为客户端与服务端之间的中间件,该程序可以被客户端的处理器执行,或者其他终端的处理器执行时,可包括如上述各方法的流程。
本发明提供的第三个技术方案为:
一种基于ProtoBuf的Socket网络通信测试系统,包括客户端、中间件以及服务端;
所述中间件,用于接收客户端以HTTP传输协议发送过来的传输信息;以及
将HTTP传输格式的所述传输信息实例化为ProtoBuf对象,然后再将其序列化后通过Socket传输通道发送至服务端;以及
接收服务端返回的结果,将其反序列化后,再转换为HTTP传输格式的返回信息输出。
上述的系统中,所述中间件可以是一个计算机可读存储介质,或者一个小程序(如微信上的小程序)、或者是一个服务端,其通过客户端以web形式进行交互,然后由客户端的处理器执行对应的计算机程序后,实现上述的步骤。
实施例一
请参照图2,本实施例提供一种基于ProtoBuf的Socket网络通信测试方法,通过在客户端与服务端之间设一中间件系统,来测试客户端至服务端之间的 Socket网络通信是否正常。
具体的,本实施例可以包括以下步骤:
一、预配置过程
1.1、Socket数据交互ProtoBuf消息定义
配置客户端至服务端之间基于ProtoBuf的Socket通信的传输信息的 ProtoBuf消息结构体定义,即传递格式的结构定义;以及传输信息的具体内容定义,即传递的具体内容定义。优选直接通过对应的goole框架自动生成到文件,无需测试时配置。
1.2、根据ProtoBuf消息定义配置传输信息
即用于传输的具体ProtoBuf消息内容的定义,包括由客户端发送至服务端的传输信息以及服务端处理所述传输信息后返回的结果具体内容的定义。其中传输信息的具体内容需要人为编写,也是整个测试过程中唯一需要人工编写的内容。
在本实施例中,由于传输信息是以HTTP传输协议发送,因此所定义的传输信息的格式需要能适用于HTTP传输。可以使用Json格式或者Xml格式,优选为Json格式。本实施例将以Json格式为例进行具体说明。
也就是说,该步骤在整个测试过程中,测试人员只需编写测试的Json内容。
二、测试过程
2.1、由客户端发起HTTP的post请求(向指定的资源提交要被处理的数据),请求中包含Json内容,即携带有要通过Socket传输通道发送至服务端进行处理的内容。在此,该内容是Json格式,并不能直接用于Socket传输通道的传输。
2.2、中间件系统接收客户端以HTTP传输协议发送过来的请求;
2.3、中间件系统根据客户端的IP判断是否有对应的Socket连接已建立相应数据交互通道,也就是说,依据客户端的IP判断其与服务端之间的Socket连接是否已建立;
若对应的Socket连接不存在,则中间件系统自动创建连接;若存在,则返回已连接的通知;
2.4、中间件系统将客户端发送过来的Json格式的传输信息,即Json内容进行实例化为ProtoBuf对象,然后再将其序列化后通过Socket传输通道发送至服务端;
具体的,从预配置的内容(一、中的1、)中获取ProtoBuf消息结构体定义,然后依据其实例化为一个对象;再然后将传输信息中的各字段对应的值反射到实例化的对象的各个属性赋相应的值,也就是说,确认Json内容中各字段与实例化的对象的各个属性之间的映射关系,然后再将各字段对应的值赋到对象的对应的属性的值中;最后,将赋值后的对象序列化成二进制数据流,通过Socket 传输通道发送至服务端。
上述的2.2-2.4步骤,即由中间件从客户端获取HTTP通信方式发出的传输信息,然后将其自动化转换为能够用于ProtoBuf的Socket网络通信测试的格式后再发送至服务端,实现通过Web服务的HTTP协议获取传输信息,直接利用简单的HTTP测试手段便可实现对基于ProtoBuf的Socket网络通信的测试;同时还能通过中间件系统将复杂的Socket连接与数据传输、ProtoBuf序列化与反序列化自动化处理。
2.5、服务端接收传输信息后进行相应的处理,然后再返回处理结果至中间件系统;
其中,所述的处理并非本实施例的重点,无需知道具体处理方式,只关心处理后的结果是什么,根据结果来验证这个处理是否正确,以及Socket连接是否正常。
2.6、中间件系统接收服务端返回的结果,将其反序列化后,再转换为HTTP 传输格式的返回信息输出。
中间件系统在接收到返回的结果后,直接依据2.2-2.4步骤的逆过程处理得到对应的Json格式的内容即可。具体的,中间件系统接收到二进制数据流的结果后,根据一、中的1中定义的ProtoBuf消息结构体定义,对该二进制数据流的内容进行反序列化成具体的ProtoBuf实例(二进制数据流转化成对象),然后将该对象转换为Json格式的返回信息,发送至客户端;
2.7、客户端接收中间件系统返回的返回信息后进行展示。
测试人员依据Json格式的返回信息中直观的数据记载判断客户端至服务端之间基于ProtoBuf的Socket网络通信是否正常。具体的,即判断Json格式的返回信息是否为一、中的2中定义的返回的结果的具体内容。
本实施例的测试方法,省去了上述Socket连接判断、根据配置的ProtoBuf 消息定义实例化成具体对象、从二进制流反序列化ProtoBuf对象并Json化,以及将实例化ProtoBuf对象序列化并通过Socket连接发送获取返回结果这些过程的实现在现有技术中需要编辑对应的测试脚本才能实现的,脚本无法复用而导致大量不必要的人力资源的投入,致使测试成本高的问题。进一步的,通过中间件系统能够自动化执行测试,整个测试过程只需要编写传输信息的Json内容即可,显著降低了测试难度,同时也大大缩短了整个测试流程所需时间,进而显著提高测试效率。
实施例二
请参照图3,本实施例在实施例一的基础上,提供一种针对客户端上具体一个功能接口与服务端之间基于ProtoBuf的Socket网络通信测试。
本实施例以客户端上一应用的登录功能为例进行说明。
一、测试前准备
1.1、选取一台PC(计算机)作为中间件系统的服务端;设置好Socket服务端IP、端口,启动Web服务。
1.2、选取一台或者多台终端(PC或平板或智能终端)作为客户端,通过使用中间件系统,设置需要测试功能的各ProtoBuf消息的定义。
例如本实施例的登录功能:
配置消息定义文件
“Auth”为登录功能接口的标识,则ProtoBuf消息结构体定义:
其中的Name为登录账号,Pwd为登录密码。
以上为Socket数据交互ProtoBuf消息定义,作为该登录功能接口在Socket 网络通信过程中所传输的内容的身份的标识(标识该内容对应的是登录功能),可以直接由对应goole框架生成到文件,无需在测试时配置。
客户端根据上述ProtoBuf消息结构体定义配置测试功能接口,即登录功能接口:
Auth接口请求内容(传输信息)定义为: {"userName":"***","userPwd":"******",},
Auth接口返回内容(返回的结果)定义为:{}
需要将Auth接口请求内容定义为适用于HTTP传输的格式,本实施例以Json 为例进行说明,以下简称Json格式的Auth接口请求内容为Json内容。
这个步骤,即接口发送和返回的具体内容的定义需要操作中间件系统时进行的接口配置。
二、执行测试:
2.1、由客户端发起HTTP的post请求,所述请求中包含上述的Json内容;该请求将由中间件系统接收;
具体的,修改上述Auth接口请求内容配置时显示的“***”内容,点击发送即可。该步骤是由测试人员操作。
例如:向“Auth”接口发送:“{"userName":"666666","userPwd":"123456"}”的Json内容。
2.2、中间件系统接收客户端以HTTP传输协议发送过来的请求,根据客户端的IP判断是否有对应的Socket连接已建立相应数据交互通道;如果对应的 Socket连接不存在,则该系统自动创建连接,然后再执行2.3;若已经创建,则直接执行2.3;
2.3、根据步骤2.1客户端传来的Json内容的接口字段(如:Auth),系统去测试前配置中搜索“Auth”对应的ProtoBuf消息结构体定义,即“Auth”的接口标识,并将其实例化成对象Obj 1;
2.4、将步骤2.1客户端传来的Json内容的各字段(userName,userPwd)对应的值(666666,123456)反射到对象Obj 1的各个属性赋相应的值,并将Obj 1序列化成二进制流;
2.5、将步骤2.4序列化的二进制流,通过步骤2.2确认创建的Socket连接通道发送至Socket服务端。
2.6、中间件系统接收由Socket服务端根据接收到的内容进行相应的处理后返回的结果,返回的结果同样为二进制流。
2.7、中间件系统根据Auth接口对应的返回ProtoBuf消息定义(即步骤2.1 中配置的登录功能返回消息的标识AuthResp)进行处理:将二进制流实例化成 AuthResp的对象,并将该对象转换成Json形式。
其中,将ProtoBuf消息实例转换成Json格式,可以通过google开源工具库中的一个通用的函数实现,通过调用该函数可以将2.7中AuthResp对象按照Json 的格式输出。
2.8、将步骤2.7得到的Json格式的返回信息作为步骤2.1的HTTP请求的应答内容进行返回至客户端。
三、测试结果校验:
测试人员根据中间件系统步骤2.8返回的Json格式的返回信息(成功则为AuthResp定义的消息内容:{},否则该接口测试失败),来判定测试结果。
本实施例的实现了测试过程全自动化,测试前配置工作也只需编写测试的 Json内容,例如上述的登录功能测试,测试人员只需要编写登录Json信息:“{"userName":"666666","userPwd":"123456",}”,点击发送即可得到Socket服务器返回的消息,从而显著降低测试的难度;使测试人员有时间和精力只用专注于测试用例(Json内容)设计和测试返回结果的分析;同时,本实施例由于将测试过程中最复杂的传输消息内容转换以全自动化方式实现,替代现有人工实现完全脱离脚本的编写,实现测试无脚本,同时具备测试效率极高、测试精准、投入成本低、操作简易等优点。
实施例三
本实施例在实施例一和实施例二的基础上,提供一种对应的一种计算机存储介质,其上存储有计算机程序,所述程序在被中间件系统的处理器调用时,能够实现上述实施例一或者实施例二基于ProtoBuf的Socket网络通信测试方法所包含的所有步骤。
该中间件系统是介于客户端与Socket服务器的一个中间件,它将与Socket 服务器数据传输的内容通过Web服务的HTTP协议呈现给测试人员。其中数据转换,是将ProtoBuf消息实例的对象转换成Json内容。然后测试人员利用简单的HTTP接口测试手段对产品功能特点(如登录功能接口)进行测试;从而将复杂的Socket连接与数据传输、ProtoBuf序列化与反序列化自动化处理。测试后,如果能够根据系统预先配置的ProtoBuf进行反序列化,则视为数据转换成功。
实施例四
本实施例在实施例一和实施例二的基础上,提供一种基于ProtoBuf的Socket 网络通信测试系统,包括依次连接的客户端、中间件系统以及服务端;
优选的,所述中间件系统对应设置有一中间件系统服务器,如PC,来实现对应的功能。
下面,以实施例一为例,说明本实施例的测试系统的各组成部分的功能;对应实施例二的测试系统的组成部分的功能说明在此不进行累述,可以依据实施例二的步骤进行对应。
所述客户端,用于获取预先配置好的对应登录功能接口的Json内容,然后发起HTTP的post请求,所述请求中包含上述的Json内容;
所述中间件系统,用于接收客户端以HTTP传输协议发送过来的Json内容;以及
根据客户端的IP判断是否有对应的Socket连接已建立相应数据交互通道;如果对应的Socket连接不存在,则该系统自动创建连接;以及
根据客户端传来的Json内容的接口字段(如:Auth),系统去测试前配置中搜索“Auth”对应的ProtoBuf消息结构体定义,即“Auth”的接口标识,并将其实例化成对象Obj1;以及
将客户端传来的Json内容的各字段(userName,userPwd)对应的值(666666,123456)反射到对象Obj 1的各个属性赋相应的值,并将Obj 1序列化成二进制流;以及
将序列化的二进制流,通过确认创建的Socket连接通道发送至Socket服务端;以及
接收由Socket服务端根据接收到的内容进行相应的处理后返回的结果;以及
根据Auth接口对应的返回ProtoBuf消息定义进行处理:将二进制流实例化成AuthResp的对象,并将该对象转换成Json形式;以及
将Json格式的返回信息作为客户端发起的HTTP请求的应答内容进行返回至客户端。
综上所述,本发明提供的一种基于ProtoBuf的Socket网络通信测试方法及其系统、存储介质,能够实现无脚本的自动化测试,显著提高测试效率;并且测试难度低,降低了测试人员的门槛;进一步的,还能防止人力的重复投入,消息序列化、通信传输脚本无需重复编写。本发明的测试方式具有测试效率高、测试准确度高、成本低、人力投入少、操作简易等优点。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种基于ProtoBuf的Socket网络通信测试方法,其特征在于,包括:
接收客户端以HTTP传输协议发送过来的传输信息;
将HTTP传输格式的所述传输信息实例化为ProtoBuf对象,然后再将其序列化后通过Socket传输通道发送至服务端;
接收服务端返回的结果,将其反序列化后,再转换为HTTP传输格式的返回信息输出。
2.如权利要求1所述的基于ProtoBuf的Socket网络通信测试方法,其特征在于,所述接收客户端以HTTP传输协议发送过来的传输信息,之前,还包括:
获取预先配置的对应测试功能的传输信息和返回的结果的ProtoBuf消息结构体定义;
依据所述ProtoBuf消息结构体定义配置所述测试功能要通过Socket传输通道发送至服务端的内容,以及服务端返回的结果的内容;
将所述发送至服务端的内容转换为HTTP传输格式的所述传输信息。
3.如权利要求2所述的基于ProtoBuf的Socket网络通信测试方法,其特征在于,还包括:
依据配置的所述返回的结果的内容,分析所述返回信息是否正确;
若正确,则判定所述测试功能的Socket网络通信正常。
4.如权利要求1所述的基于ProtoBuf的Socket网络通信测试方法,其特征在于,在所述通过Socket传输通道发送至服务端,之前,还包括:
判断对应的Socket传输通道是否已建立,若否,则进行对应的Socket传输通道的创建。
5.如权利要求1所述的基于ProtoBuf的Socket网络通信测试方法,其特征在于,若所述方法为对应一功能接口的Socket网络通信测试,则所述方法具体为:
接收客户端以HTTP传输协议发送过来的对应所述功能接口的传输信息;
获取预先配置的对应所述功能接口的传输信息的第一ProtoBuf消息结构体定义;
依据所述第一ProtoBuf消息结构体定义将HTTP传输格式的所述传输信息实例化为ProtoBuf对象;
将所述传输信息的各字段对应的值反射到所述ProtoBuf对象的各个属性并赋相应的值;
将赋值后的所述ProtoBuf对象序列化成二进制流后通过Socket传输通道发送至服务端;
接收服务端返回的结果,将其进行反序列化后,再转换为HTTP传输格式的返回信息输出。
6.如权利要求5所述的基于ProtoBuf的Socket网络通信测试方法,其特征在于,所述接收服务端返回的结果,将其进行反序列化后,再转换为对应HTTP传输格式的返回信息输出,具体为:
接收服务端返回的二进制流的结果;
获取预先配置的对应所述功能接口的返回结果的第二ProtoBuf消息结构体定义;
依据所述第二ProtoBuf消息结构体定义将所述二进制流的结果反序列化为ProtoBuf对象,再将其转换为HTTP传输格式的返回信息输出。
7.如权利要求5所述的基于ProtoBuf的Socket网络通信测试方法,其特征在于,所述通过Socket传输通道发送至服务端,之前,还包括:
判断与客户端的IP对应的Socket传输通道是否已建立;
若否,则创建与所述客户端的IP对应的Socket传输通道。
8.如权利要求1或5所述的基于ProtoBuf的Socket网络通信测试方法,其特征在于,所述HTTP传输格式为Json格式或者Xml格式。
9.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述程序在被处理器调用时,能够实现上述权利要求1至8任意一项所述的基于ProtoBuf的Socket网络通信测试方法所包含的所有步骤。
10.一种基于ProtoBuf的Socket网络通信测试系统,其特征在于,包括客户端、中间件以及服务端;
所述中间件,用于接收客户端以HTTP传输协议发送过来的传输信息;以及
将HTTP传输格式的所述传输信息实例化为ProtoBuf对象,然后再将其序列化后通过Socket传输通道发送至服务端;以及
接收服务端返回的结果,将其反序列化后,再转换为HTTP传输格式的返回信息输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810311635.1A CN108683704A (zh) | 2018-04-09 | 2018-04-09 | 一种Socket网络通信测试方法及其系统、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810311635.1A CN108683704A (zh) | 2018-04-09 | 2018-04-09 | 一种Socket网络通信测试方法及其系统、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108683704A true CN108683704A (zh) | 2018-10-19 |
Family
ID=63800851
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810311635.1A Withdrawn CN108683704A (zh) | 2018-04-09 | 2018-04-09 | 一种Socket网络通信测试方法及其系统、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108683704A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109474643A (zh) * | 2019-01-14 | 2019-03-15 | 广州虎牙信息科技有限公司 | 数据解析方法、装置、设备及存储介质 |
CN109560991A (zh) * | 2018-12-19 | 2019-04-02 | 中山大学 | 一种电控板的可视化测试系统及方法 |
CN109990769A (zh) * | 2019-04-08 | 2019-07-09 | 吉林大学 | 一种海洋水合物环境原位综合监测系统通信方法 |
WO2020186680A1 (zh) * | 2019-03-15 | 2020-09-24 | 集奥聚合(北京)人工智能科技有限公司 | 一种建模平台接口测试方法 |
CN111726260A (zh) * | 2019-03-21 | 2020-09-29 | 阿里巴巴集团控股有限公司 | 一种网络请求回复信息格式转换的测试方法、装置和系统 |
CN111787071A (zh) * | 2020-06-12 | 2020-10-16 | 新奇点智能科技集团有限公司 | 信息传输方法、信息传输装置和系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102694701A (zh) * | 2012-06-13 | 2012-09-26 | 青岛海信传媒网络技术有限公司 | 基于消息的测试方法及系统 |
CN103024790A (zh) * | 2012-11-26 | 2013-04-03 | 大唐移动通信设备有限公司 | 网络通信质量自动化测试方法及系统 |
CN104699612A (zh) * | 2015-03-25 | 2015-06-10 | 北京嘀嘀无限科技发展有限公司 | 用于软件测试中的处理方法、设备和系统 |
CN104917663A (zh) * | 2014-03-12 | 2015-09-16 | 深圳市赛格导航科技股份有限公司 | 一种基于ActiveMQ服务器的定位信息分发系统及方法 |
CN105068876A (zh) * | 2015-07-01 | 2015-11-18 | 北京博睿宏远科技发展有限公司 | 基于分布式部署真机采集手机app性能数据的方法 |
CN105573956A (zh) * | 2015-12-10 | 2016-05-11 | 盛趣信息技术(上海)有限公司 | 序列化方法以及基于序列化的网络通信方法 |
-
2018
- 2018-04-09 CN CN201810311635.1A patent/CN108683704A/zh not_active Withdrawn
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102694701A (zh) * | 2012-06-13 | 2012-09-26 | 青岛海信传媒网络技术有限公司 | 基于消息的测试方法及系统 |
CN103024790A (zh) * | 2012-11-26 | 2013-04-03 | 大唐移动通信设备有限公司 | 网络通信质量自动化测试方法及系统 |
CN104917663A (zh) * | 2014-03-12 | 2015-09-16 | 深圳市赛格导航科技股份有限公司 | 一种基于ActiveMQ服务器的定位信息分发系统及方法 |
CN104699612A (zh) * | 2015-03-25 | 2015-06-10 | 北京嘀嘀无限科技发展有限公司 | 用于软件测试中的处理方法、设备和系统 |
CN105068876A (zh) * | 2015-07-01 | 2015-11-18 | 北京博睿宏远科技发展有限公司 | 基于分布式部署真机采集手机app性能数据的方法 |
CN105573956A (zh) * | 2015-12-10 | 2016-05-11 | 盛趣信息技术(上海)有限公司 | 序列化方法以及基于序列化的网络通信方法 |
Non-Patent Citations (1)
Title |
---|
黎二荣: "移动云计算环境下即时通讯框架的研究与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109560991A (zh) * | 2018-12-19 | 2019-04-02 | 中山大学 | 一种电控板的可视化测试系统及方法 |
CN109474643A (zh) * | 2019-01-14 | 2019-03-15 | 广州虎牙信息科技有限公司 | 数据解析方法、装置、设备及存储介质 |
WO2020186680A1 (zh) * | 2019-03-15 | 2020-09-24 | 集奥聚合(北京)人工智能科技有限公司 | 一种建模平台接口测试方法 |
CN111726260A (zh) * | 2019-03-21 | 2020-09-29 | 阿里巴巴集团控股有限公司 | 一种网络请求回复信息格式转换的测试方法、装置和系统 |
CN111726260B (zh) * | 2019-03-21 | 2023-09-08 | 阿里巴巴集团控股有限公司 | 一种网络请求回复信息格式转换的测试方法、装置和系统 |
CN109990769A (zh) * | 2019-04-08 | 2019-07-09 | 吉林大学 | 一种海洋水合物环境原位综合监测系统通信方法 |
CN111787071A (zh) * | 2020-06-12 | 2020-10-16 | 新奇点智能科技集团有限公司 | 信息传输方法、信息传输装置和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108683704A (zh) | 一种Socket网络通信测试方法及其系统、存储介质 | |
CN105302732B (zh) | 一种移动终端的自动测试方法及装置 | |
US20190392395A1 (en) | Worry-free meeting conferencing | |
CN103124267B (zh) | 通过移动终端进行登录/注册的方法、系统和云端服务器 | |
CN110442524A (zh) | 一种针对带有认证授权的web服务接口测试方法和装置 | |
CN104618182A (zh) | 一种支持多种移动业务协议的模拟测试系统 | |
CN103970614A (zh) | 一种业务测试方法及装置 | |
CN103780641B (zh) | 接入云桌面的方法、家庭网关和系统 | |
CN105656763A (zh) | 一种消息推送方法和装置 | |
CN104967644A (zh) | 消息推送方法、装置及系统 | |
CN109379742A (zh) | 一种无线局域网的接入方法、装置和存储介质 | |
CN110069413A (zh) | 测试数据通信、测试方法、装置、设备及存储介质 | |
CN109831466A (zh) | 微服务业务处理方法及nginx服务器 | |
CN112073923A (zh) | 兼容多运营商的通信方法、装置、网关及可读存储介质 | |
CN105427857B (zh) | 生成文字记录的方法及系统 | |
US20100268992A1 (en) | Method and system for protocol embedded automated test control | |
CN105049280B (zh) | 业务管理平台的接口行为模拟测试系统和方法 | |
CN103684913B (zh) | 协议栈的测试方法、物理设备、终端和系统 | |
CN103595611B (zh) | 即时通信应用的实现方法及系统、与设备 | |
CN107018045A (zh) | 基于rpc的分布式存储系统测试方法及系统 | |
CN103997437A (zh) | 一种测试云服务器注册功能的方法 | |
CN113553257A (zh) | 测试方法、装置、存储介质及电子设备 | |
CN109874034A (zh) | 电视语音遥控方法、装置及终端设备 | |
CN104142882B (zh) | 基于数据处理的测试方法及装置、系统 | |
CN106488269A (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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20181019 |