网络协议测试方法、装置、电子设备及存储介质与流程

文档序号:33623440发布日期:2023-03-25 13:49阅读:28来源:国知局
1.本技术属于协议测试的
技术领域
:,涉及一种协议测试方法,特别是涉及一种网络协议测试方法、装置、电子设备及存储介质。
背景技术
::2.目前,随着网络技术的发展,以太网技术的应用越来越普遍,例如以太网技术在车辆中的应用越来越多。在车载以太网中,在相关组织中存在多个技术委员会(techcommittee,简称tc),对不同方面的技术细节进行量化定义,并发布相应规范。其中tc8规范了包括车载以太网ecu(electroniccontrolunit,电子控制单元)从物理层到应用层的各层互操作性以及常规基础功能服务,目的在于提高不同ecu之间的兼容性。3.然而,当前只有少数测试机构具备有关tc8测试的测试技术以及测试能力,且测试设备昂贵。而汽车行业的以太网相关测试需求旺盛,所以导致相关测试周期长且测试费用昂贵。技术实现要素:4.本技术的目的在于提供一种网络协议测试方法、装置、电子设备及存储介质,用于解决tc8网络协议测试成本高的问题。5.本技术实施例第一方面提供一种网络协议测试方法,所述方法包括:向被测目标发送端口绑定指令;响应于端口绑定成功,向所述被测目标发送指定端口连接指令;响应于控制器发出的第一协议标志等于所述被测目标发送的同步请求报文,作出同步请求响应,发出确认接收报文;响应于所述被测目标发出的第二协议标志等于所述确认接收报文,检测所述被测目标是否已连接成功,生成协议测试结果。6.在第一方面的一种实施方式中,所述生成协议测试结果的步骤,包括:生成测试成功或测试失败的检测报告。7.在第一方面的一种实施方式中,在所述生成协议测试结果的步骤之后,所述方法还包括响应于生成测试失败的检测报告,查询测试失败的原因。8.在第一方面的一种实施方式中,利用vector工具链提供所述网络协议测试方法的开发环境及测试环境。9.在第一方面的一种实施方式中,所述第一协议标志是指控制器发出的tcp标志,所述同步请求报文是指tcp标志等于同步序列表编号的报文,所述确认接收报文是指所述tcp标志等于所述同步序列表编号和确认字符报文。10.在第一方面的一种实施方式中,所述网络协议测试方法应用于tc8协议测试;所述tc8协议测试包括arp测试、ipv4测试、icmp测试、udp测试以及tcp测试。11.本技术实施例第二方面提供一种网络协议测试装置,所述装置包括:测试系统和被测目标;所述测试系统包括控制器;所述测试系统向被测目标发送端口绑定指令;响应于端口绑定成功,所述测试系统向所述被测目标发送指定端口连接指令;响应于所述控制器发出的第一协议标志等于所述被测目标发送的同步请求报文,所述测试系统作出同步请求响应,向所述被测目标发出确认接收报文;响应于所述被测目标发出的第二协议标志等于所述确认接收报文,所述测试系统检测所述被测目标是否已连接成功,生成协议测试结果。12.在第二方面的一种实施方式中,所述测试系统利用vector工具链作为开发环境及测试环境,包括下层测试器;所述被测目标包括被测目标协议栈和上层测试器。13.在第二方面的一种实施方式中,所述测试系统直接与所述上层测试器通信连接,形成控制通道;或所述测试系统通过所述下层测试器与所述被测目标协议栈通信连接,形成下层测试通道,通过所述被测目标协议栈与所述上层测试器通信连接,形成上层测试通道,通过所述下层测试通道和所述上层测试通道形成所述控制通道。14.本技术实施例第三方面提供一种电子设备,包括:处理器及存储器;所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述电子设备执行所述的方法。15.本技术实施例第四方面提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的方法。16.如上所述,本技术所述的网络协议测试方法、装置、电子设备及存储介质,具有以下有益效果:17.本技术解决了当前需要使用国外设备进行tc8测试的问题;避免了当前测试需要委托专业设备与机构导致费用高周期长的问题。本技术无需新增专业测试设备、在现有设备(vectorvn5640)基础上即可完成对tc8(l3-l7)的测试。使用自编程方式完成测试端开发,一方面无第三方黑盒或者白盒支持,完全实现代码自控;另一方面使代码适配性大大提高,提高测试准确性。本技术提供的协议测试方案能够发现存在协议层的漏洞,防止后期顶层协议在使用时出现一些无法预料的错误。附图说明18.图1显示为本技术实施例所述的网络协议测试方法的应用架构图。19.图2显示为本技术实施例所述的网络协议测试方法的原理流程图。20.图3显示为本技术实施例所述的网络协议测试方法的测试流程图。21.图4显示为本技术实施例所述的网络协议测试装置的结构原理图。22.图5a显示为本技术一实施例所述的网络协议测试装置的通信示意图。23.图5b显示为本技术另一实施例所述的网络协议测试装置的通信示意图。24.图6显示为本技术实施例所述的电子设备的结构连接示意图。25.元件标号说明[0026]4ꢀꢀꢀꢀꢀꢀꢀꢀꢀ网络协议测试装置[0027]41ꢀꢀꢀꢀꢀꢀꢀꢀ测试系统[0028]42ꢀꢀꢀꢀꢀꢀꢀꢀ被测目标[0029]6ꢀꢀꢀꢀꢀꢀꢀꢀꢀ电子设备[0030]61ꢀꢀꢀꢀꢀꢀꢀꢀ处理器[0031]62ꢀꢀꢀꢀꢀꢀꢀꢀ存储器[0032]63ꢀꢀꢀꢀꢀꢀꢀꢀ通信接口[0033]64ꢀꢀꢀꢀꢀꢀꢀꢀ系统总线[0034]s21~s24步骤[0035]s31~s37步骤具体实施方式[0036]以下通过特定的具体实例说明本技术的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本技术的其他优点与功效。本技术还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本技术的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。[0037]需要说明的是,以下实施例中所提供的图示仅以示意方式说明本技术的基本构想,遂图式中仅显示与本技术中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。[0038]本技术以下实施例提供了网络协议测试方法、装置、电子设备及存储介质,包括但不限于一测试设备中,测试设备与被测目标通信连接进行协议测试,生成检测报告,以下将以该硬件应用场景为例进行描述。[0039]如图1所示,本实施例提供一种测试设备与被测目标通信连接构成的硬件应用场景,具体包括:测试设备与被测目标通信连接进行协议测试,生成检测报告。[0040]被测目标可以是服务端(sever端),使用c++语言完成了基于linux系统下的uppertester(以下简称ut)开发,并可使用makefile中替换不同的编译器实现对不同平台的支持(例如高通8155、820和ti的td2ax),ut且可通过宏定义方式完成对各个平台控制器的参数切换,和log日志记录功能。其中,服务端可以根据功能、负载等多种因素布置在一个或多个实体服务器上,也可以是由分布的或集中的服务器集群构成的云服务器,本实施例不作限定。[0041]测试设备可以是客户端(client端),使用vector工具链,平台核心软硬件为:vn5640带canoepro、ethpro许可,使用vectorcapl语言完成对基于《oa_automotive_ethernet_ecu_testspecification_layer_3-7_v3.0_final.pdf》中各个测试用例的测试支持,并生成测试报告。[0042]由此,本技术通过所提供的tc8协议测试方式完成了client测试系统和下层测试器、server端中的上层测试器双端开发。[0043]本技术硬件背景中涉及的专业技术名称定义或解释说明。[0044]tc8概述:tc8属于车用以太网协议,由open联盟制定的《tc8ecuandnetworktest》标准,旨在验证产品是否符合rfc、ieee以及autosar中定义的需求,该规范被oem和tier1广泛地作为车载以太网控制器产品的基础通信协议测试的参考测试标准。主要的测试包括:[0045]arp(addressresolutionprotocol,地址解析协议)测试组中主要对arp报文的请求,响应格式,arpentry学习,arpentry的更新以及arp的timeout时间进行测试。[0046]ipv4(internetprotocolversion4,互联网通信协议第4版)测试组包括ipv4的报头,ipv4checksum,ipv4ttl,ipv4版本号字段,dut(deviceundertest,被测目标或被测设备)所接收ipv4数据包的目的地址字段,ipv4的分片,ipv4重组的验证。[0047]icmp(internetcontrolmessageprotocol,网络控制报文协议)测试组包括icmpoption字段的测试、icmp重组的验证。[0048]udp(userdatagramprotocol,用户数据报协议)测试组包括对udp帧结构测试、udp的flag测试、udp的接收发送、udp重组的验。[0049]tcp(transmissioncontrolprotocol,传输控制协议)测试组包括对tcp状态机测试、tcp帧结构测试、tcp的flag测试、tcp的接收发送、tcp重组的验。[0050]下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行详细描述。[0051]如图2所示,本实施例提供一种网络协议测试方法,所述方法具体包括以下步骤:[0052]s21,向被测目标发送端口绑定指令。[0053]具体地,所述被测目标为dut(deviceundertest,被测目标或被测设备)。[0054]s22,响应于端口绑定成功,向所述被测目标发送指定端口连接指令。[0055]s23,响应于控制器发出的第一协议标志等于所述被测目标发送的同步请求报文,作出同步请求响应,发出确认接收报文。[0056]具体地,所述第一协议标志是指控制器发出的tcp标志,同步请求报文是指tcp标志等于syn(synchronizesequencenumbers,同步序列表编号)的报文,确认接收报文是指tcp标志等于syn和ack(acknowledgecharacter,确认字符)报文。[0057]s24,响应于所述被测目标发出的第二协议标志等于所述确认接收报文,检测所述被测目标是否已连接成功,生成协议测试结果。[0058]具体地,所述第二协议标志是指被测目标发出的tcp标志。[0059]于一实施例中,所述生成协议测试结果的步骤,包括:生成测试成功或测试失败的检测报告。[0060]进一步地,响应于生成测试失败的检测报告,查询测试失败的原因。具体地,响应于生成测试失败的检测报告,输出并显示测试失败的测试报告,通过测试报告中呈现的各个步骤执行通过或执行失败的报告信息查询测试失败的原因。[0061]具体地,以tcp为例,生成测试成功的检测报告包括以下内容:[0062]cause_dut_to_synsent——pass:测试系统令dut进入syn-sent状态;[0063]testersendasyn,ack:下层测试器对syn请求做出ack响应;[0064]dutsendaack/messagetcpprotcolcheckpass/messagetcpflagcheckpass:dut对下层测试器的syn-ack进行ack响应;[0065]testerverifythatthedutinestablishedstate/verf_dut_in_established——pass:验证控制器是否已处于连接成功状态确认连接成功,即测试成功。[0066]具体地,以tcp为例,生成测试失败的检测报告包括以下内容:[0067]cause_dut_to_established_act——pass:测试系统令dut进入连接成功状态;[0068]testersendadatasegmentsatisfyingoneofthefollowingcases:case2datasegmentwith[0069]anunacceptableacknumber——下层测试器发出一个含有非预期ack序号的报文;[0070]dutsendaack/nomessagesendout——fail:期望被测目标发出一个ack响应报文,实际没有,即测试失败。[0071]进一步地,查询测试失败的原因:该项测试failed为底层协议栈配置问题,可能导致实际使用场景中的通信异常。[0072]具体地,以udp为例,生成测试成功的检测报告包括以下内容:[0073]configureduttolistentotheport:测试系统令被测目标进入端口监听状态;[0074]ut_udp_creatandbind:excuteok:测试系统令被测目标开始准备接收一个udp报文;[0075]sendanudpmessagetodut(incorrectchecksum):下层测试器发送一个含有错误校验信息的报文;[0076]checkrecivedata/nodatarecived:观察控制器是否未能收到该报文,并未收到错误校验信息的报文,即测试成功。[0077]于一实施例中,利用vector工具链提供所述网络协议测试方法的开发环境及测试环境。[0078]于一实施例中,所述网络协议测试方法应用于tc8协议测试;所述tc8协议测试包括arp测试、ipv4测试、icmp测试、udp测试以及tcp测试。[0079]本技术上述的网络协议测试方法基于vector工具链搭建的环境,采用自编程方式,在从一个项目迁移至另一个项目时,仅需要修改另一项目中差异化的接口文件即可,因此使代码适配性大大提高,提高测试准确性。[0080]如图3所示,于一具体实际应用中,结合图5b,以tcp_basics_07为例举例说明,所述网络协议测试方法包括以下步骤:[0081]s31,在测试开始后,测试系统向被测目标上层测试器发送端口绑定指令。[0082]具体地,由测试系统向被测目标协议栈发送创建绑定指令,被测目标协议栈对收到的指令进行响应,测试系统判断响应结果。[0083]s32,判断端口绑定是否成功,若否,判定为测试失败。[0084]s33,若是,测试系统向被测目标上层测试器发送对指定端口进行连接的指令。[0085]s34,判断控制器发出tcp标志是否等于syn报文,若否,判定为测试失败。[0086]具体地,如正确响应创建绑定后,测试系统再次向被测目标协议栈发送tcp连接指令(被测目标协议栈与上层测试器建立连接),并等待dut发送syn请求,即进入syn-sent状态。[0087]然后,测试系统判断dut发出的tcp报文中flag字段(tcp标志字段)是否等于syn。[0088]s35,若是,下层测试器发出对被测目标的syn请求做出syn、ack响应。[0089]s36,判断被测目标发出tcp标志是否等于ack报文,若否,判定为测试失败。[0090]具体地,dut对下层测试器的syn-ack进行ack后,测试系统对dut的ack结果进行判定。[0091]s37,若是,判断被测目标是否已连接成功,若是,判定为测试成功;若否,判定为测试失败。[0092]具体地,判断验证控制器是否已处于连接成功状态,若是,判定为测试成功;若否,判定为测试失败。[0093]本技术实施例所述的网络协议测试方法的保护范围不限于本实施例列举的步骤执行顺序,凡是根据本技术的原理所做的现有技术的步骤增减、步骤替换所实现的方案都包括在本技术的保护范围内。[0094]本技术实施例还提供一种网络协议测试装置,所述网络协议测试装置可以实现本技术所述的网络协议测试方法,但本技术所述的网络协议测试方法的实现装置包括但不限于本实施例列举的网络协议测试装置的结构,凡是根据本技术的原理所做的现有技术的结构变形和替换,都包括在本技术的保护范围内。[0095]如图4所示,本实施例提供一种网络协议测试装置,所述装置4包括:测试系统41和被测目标42;所述测试系统41包括控制器。[0096]所述测试系统41向被测目标42发送端口绑定指令。[0097]响应于端口绑定成功,所述测试系统41向所述被测目标42发送指定端口连接指令。[0098]响应于所述控制器发出的第一协议标志等于所述被测目标42发送的同步请求报文,所述测试系统41作出同步请求响应,向所述被测目标42发出确认接收报文。[0099]响应于所述被测目标42发出的第二协议标志等于所述确认接收报文,所述测试系统41检测所述被测目标42是否已连接成功,生成协议测试结果。[0100]如图5a所示,于一实施例中,所述测试系统利用vector工具链作为开发环境及测试环境,包括下层测试器;所述被测目标包括被测目标协议栈和上层测试器。所述测试系统直接与所述上层测试器通信连接,形成控制通道。[0101]如图5b所示,于另一实施例中,所述测试系统利用vector工具链作为开发环境及测试环境,包括下层测试器;所述被测目标包括被测目标协议栈和上层测试器。所述测试系统通过所述下层测试器与所述被测目标协议栈通信连接,形成下层测试通道,通过所述被测目标协议栈与所述上层测试器通信连接,形成上层测试通道,通过所述下层测试通道和所述上层测试通道形成所述控制通道。[0102]图5a和图5b为tc8测试方案的两种实现方式,控制通道为测试系统对上层测试器发送的控制指令,两种方式主要的区别为控制通道对上层测试器的下发指令通道不同,图5a为系统测试和上层测试器直接交互,图5b为测试系统通过被测实现后再与上层测试器的交互方式。[0103]需要说明的是,本技术中网络协议测试装置中,测试系统和被测目标中包括上层测试器和下层测试器等各个模块或单元中所执行的网络协议测试步骤,均为自编程方式实现,因此,无第三方黑盒或者白盒支持,可以完全实现代码自控。[0104]在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置或方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅是示意性的,例如,模块/单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或单元可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。[0105]作为分离部件说明的模块/单元可以是或者也可以不是物理上分开的,作为模块/单元显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块/单元来实现本技术实施例的目的。例如,在本技术各个实施例中的各功能模块/单元可以集成在一个处理模块中,也可以是各个模块/单元单独物理存在,也可以两个或两个以上模块/单元集成在一个模块/单元中。[0106]本领域普通技术人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。[0107]如图6所示,本发明的电子设备6包括:处理器61、存储器62、通信接口63或/和系统总线64。存储器62和通信接口63通过系统总线64与处理器61连接并完成相互间的通信,存储器62用于存储计算机程序,通信接口63用于和其他设备进行通信,处理器61用于运行计算机程序,使所述电子设备6执行所述方法的各个步骤。[0108]上述的处理器61可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(扫描应用程序licationspecificintegratedcircuit,简称asic)、现场可编程门阵列(fieldprogrammablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。[0109]上述的存储器62可能包含随机存取存储器(randomaccessmemory,简称ram),也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。[0110]上述提到的系统总线64可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该系统总线64可以分为地址总线、数据总线、控制总线等。通信接口用于实现数据库访问装置与其他设备(如客户端、读写库和只读库)之间的通信。[0111]所述电子设备作为客户端,例如可以是包括存储器、存储控制器、一个或多个处理单元(cpu)、外设接口、rf电路、音频电路、扬声器、麦克风、输入/输出(i/o)子系统、显示屏、其他输出或控制设备,以及外部端口等所有或部分组件的计算机;所述计算机包括但不限于如台式电脑、笔记本电脑、平板电脑、智能手机、个人数字助理(personaldigitalassistant,简称pda)等个人电脑,还可以是能够执行网络协议测试方法的车载电子设备。[0112]本技术实施例还提供了一种计算机可读存储介质。本领域普通技术人员可以理解实现上述实施例的方法中的全部或部分步骤是可以通过程序来指令处理器完成,所述的程序可以存储于计算机可读存储介质中,所述存储介质是非短暂性(non-transitory)介质,例如随机存取存储器,只读存储器,快闪存储器,硬盘,固态硬盘,磁带(magnetictape),软盘(floppydisk),光盘(opticaldisc)及其任意组合。上述存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digitalvideodisc,dvd))、或者半导体介质(例如固态硬盘(solidstatedisk,ssd))等。[0113]上述各个附图对应的流程或结构的描述各有侧重,某个流程或结构中没有详述的部分,可以参见其他流程或结构的相关描述。[0114]上述实施例仅例示性说明本技术的原理及其功效,而非用于限制本技术。任何熟悉此技术的人士皆可在不违背本技术的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属
技术领域
:中具有通常知识者在未脱离本技术所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本技术的权利要求所涵盖。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1