CN112003759A - 硬件tcp/ip网络加速器自动测试方法及装置 - Google Patents
硬件tcp/ip网络加速器自动测试方法及装置 Download PDFInfo
- Publication number
- CN112003759A CN112003759A CN202010681726.1A CN202010681726A CN112003759A CN 112003759 A CN112003759 A CN 112003759A CN 202010681726 A CN202010681726 A CN 202010681726A CN 112003759 A CN112003759 A CN 112003759A
- Authority
- CN
- China
- Prior art keywords
- test
- receiving
- board card
- sending
- receiving end
- 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.)
- Granted
Links
Images
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/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- 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/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
- H04L43/0847—Transmission error
-
- 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/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0894—Packet rate
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种硬件TCP/IP网络加速器自动测试方法及装置,其中,该方法包括:发送端控制用网卡和接收端控制用网卡建立通信连接;发送端获取测试次数,通过通信连接将准备开始测试信号发送至接收端;接收端根据准备开始测试信号开启接收端板卡的接收功能,监测数据接收;接收端通过通信连接发送接收准备完毕信号至发送端;发送端根据接收准备完毕信号开启发送端板卡的发送功能,以执行测试程序发送用例数据;若接收端监测到接收端板卡接收完毕用例数据,发送完成本次测试的信号至发送端;发送端若根据依据测试次数记录的测试次数完成状态判断是最后一次,断开通信连接;接收端板卡和/或发送端板卡为待测网络加速器。通过上述方案能够提高测试效率。
Description
技术领域
本发明涉及对硬件测试技术领域,尤其涉及一种硬件TCP/IP网络加速器自动测试方法及装置。
背景技术
在硬件TCP/IP网络加速器的开发过程中,测试环节是必不可少的。每次设计向硬件TCP/IP网络加速器中添加新功能时,都需要进行测试来判断硬件TCP/IP网络加速器是否能按照设计预期工作。目前,在对硬件TCP/IP网络加速器进行测试时,需要根据硬件TCP/IP网络加速器的不同功能,手动运行发送、接收、数据比较等脚本,每次测试都需手工操作。随着对硬件TCP/IP网络加速器开发的深入,手动测试逐渐变得繁琐起来,这使得产品迭代浪费了很长的时间。
发明内容
有鉴于此,本发明提供了一种硬件TCP/IP网络加速器自动测试方法及装置,以提高对硬件TCP/IP网络加速器进行测试的效率。
为了达到上述目的,本发明采用以下方案实现:
根据本发明实施例的一个方面,提供了一种硬件TCP/IP网络加速器自动测试方法,包括:
在发送端控制用网卡和接收端控制用网卡之间建立通信连接;
在发送端获取手动输入的测试次数,并通过所述通信连接将准备开始测试的信号发送至接收端;
在接收端根据所述准备开始测试的信号开启接收端板卡的接收功能,并开始监测接收端板卡的数据接收状态;
在所述接收端板卡的接收功能开启完毕的情况下,在接收端通过所述通信连接发送接收准备完毕的信号至发送端;
在发送端根据所述接收准备完毕的信号开启发送端板卡的发送功能,以执行测试程序,使所述发送端板卡向所述接收端板卡发送测试用例数据;
在接收端监测到所述接收端板卡接收完毕测试用例数据的情况下,通过所述通信连接发送完成本次测试的信号至发送端;
在发送端根据依据所述测试次数记录的测试次数完成状态判断本次测试是最后一次测试的情况下,根据所述完成本次测试的信号断开所述通信连接;
其中,所述接收端板卡和/或所述发送端板卡为待测试硬件TCP/IP网络加速器。
在一些实施例中,所述的硬件TCP/IP网络加速器自动测试方法,还包括:
在发送端根据依据所述测试次数记录的测试次数完成状态判断本次测试不是最后一次测试的情况下,通过所述通信连接将再次准备开始测试的信号发送至接收端;
接收端板卡的接收功能已关闭的情况下,在接收端根据再次准备开始测试的信号开启接收端板卡的接收功能,并再次开始监测接收端板卡的数据接收状态;
在所述接收端板卡的接收功能再次开启完毕的情况下,在接收端通过所述通信连接再次发送接收准备完毕的信号至发送端;
发送端板卡的发送功能已关闭的情况下,在发送端根据再次接收准备完毕的信号再次开启发送端板卡的发送功能,以再次执行测试程序,再次使所述发送端板卡向所述接收端板卡发送测试用例数据;
在接收端再次监测到所述接收端板卡再次接收完毕测试用例数据的情况下,再次通过所述通信连接发送完成本次测试的信号至发送端;
在发送端根据依据所述测试次数再次记录的测试次数完成状态判断本次测试是最后一次测试的情况下,根据再次接收到的完成本次测试的信号断开所述通信连接。
在一些实施例中,在发送端获取手动输入的测试次数,通过所述通信连接将准备开始测试的信号发送至接收端,包括:在发送端接收手动输入的测试次数,通过所述通信连接将所述测试次数和准备开始测试的信号发送至接收端。
在一些实施例中,所述的硬件TCP/IP网络加速器自动测试方法,还包括:在发送端根据所述测试次数,记录测试次数完成状态。
在一些实施例中,在发送端根据所述测试次数,记录测试次数完成状态,包括:在发送端获取手动输入的测试次数,通过所述通信连接将准备开始测试的信号发送至接收端的同时或之后,根据所述测试次数记录测试次数完成状态。
在一些实施例中,在发送端根据所述测试次数,记录测试次数完成状态,包括:在发送端从所述测试次数开始倒计次,作为测试次数完成状态。
在一些实施例中,所述的硬件TCP/IP网络加速器自动测试方法,还包括:在接收端根据所述测试次数,记录测试次数完成状态。
在一些实施例中,在接收端根据所述测试次数,记录测试次数完成状态,包括:在接收端从所述测试次数开始倒计次,作为测试次数完成状态,以使测试程序根据记录的测试次数完成状态在记录的日志中记录相应测试次序。
在一些实施例中,所述的硬件TCP/IP网络加速器自动测试方法,还包括:发送端将其记录的测试次数完成状态通过所述通信连接发送至接收端,以使测试程序根据记录的测试次数完成状态在记录的日志中记录相应测试次序。
在一些实施例中,所述的硬件TCP/IP网络加速器自动测试方法,还包括:在接收端监测到所述接收端板卡接收完毕测试用例数据的情况下,获取执行比对程序后得到的发送端板卡发送的测试用例数据和接收端板卡实际接收的数据的比对结果;若比对结果为不一致,则获取本次测试的测试用例数据的用例标识,并将包含用例标识的重新测试信号发送至发送端;在发送端根据重新测试信号启动执行测试程序,以额外重新进行设定次数的从发送端板卡向接收端板卡发送该用例标识对应的测试用例数据的测试;根据所述设定次数的测试的结果输出报错分析结果。
在一些实施例中,所述的硬件TCP/IP网络加速器自动测试方法,还包括:在接收端监测接收端板卡接收数据所用的接收进程与比对发送端板卡发送的测试用例数据和接收端板卡实际接收到的数据所用的比对进程,若接收进程阻塞超过设定时长,则跳过接收进程执行比对进程,若比对进行阻塞超过设定时长,则停止比对进程并重启比对程序。
在一些实施例中,所述的硬件TCP/IP网络加速器自动测试方法,还包括:在发送端根据依据所述测试次数记录的测试次数完成状态判断本次测试是最后一次测试的情况下,在接收端获取记录的日志中的所述测试次数的所有测试结果,统计所述所有测试结果中的报错率;根据记录的发送端板卡首次开始发送测试用例数据的时间和接收端板卡末次结束接收数据的时间计算得到所述测试次数的总数据传输时间,在接收端获取所有测试用例数据的总数据量,根据所述总数据量和所述总数据传输时间计算得到数据传输速率。
在一些实施例中,所述通信连接为TCP连接;和/或,所述发送端板卡和所述接收端板卡其中一个为待测试硬件TCP/IP网络加速器时,另一个为MELLANOX网卡。
在一些实施例中,在接收端根据所述准备开始测试的信号开启接收端板卡的接收功能,包括:在接收端根据所述准备开始测试的信号调用用于开启接收端板卡的接收功能的脚本,以开启接收端板卡的接收功能。在发送端根据所述接收准备完毕的信号开启发送端板卡的发送功能,包括:在发送端根据所述接收准备完毕的信号调用用于开启发送端板卡的发送功能的脚本,以开启发送端板卡的发送功能。
在一些实施例中,开始监测接收端板卡的数据接收状态,包括:通过监测接收端板卡向接收端内存写入数据的状态,监测接收端板卡的数据接收状态。
根据本发明实施例的另一方面,还提供了一种硬件TCP/IP网络加速器自动测试方法,包括:
在发送端控制用网卡和接收端控制用网卡之间建立通信连接;
在接收端获取手动输入的测试次数,并通过所述通信连接将准备开始测试的信号发送至发送端;
在发送端根据所述准备开始测试的信号开启发送端板卡的发送功能;
在所述发送端板卡的发送功能开启完毕的情况下,在发送端通过所述通信连接发送发送准备完毕的信号至接收端;
在接收端根据所述发送准备完毕的信号开启接收端板卡的接收功能,以执行测试程序,使所述发送端板卡向所述接收端板卡发送测试用例数据;并且,在接收端开始监测接收端板卡的数据接收状态;
在接收端监测到所述接收端板卡接收完毕测试用例数据的情况下,在接收端根据依据所述测试次数记录的测试次数完成状态判断本次测试是最后一次测试的情况下,断开所述通信连接;
其中,所述接收端板卡和/或所述发送端板卡为待测试硬件TCP/IP网络加速器。
根据本发明实施例的另一方面,还提供了一种硬件TCP/IP网络加速器自动测试装置,包括:
通信连接建立模块,用于在发送端控制用网卡和接收端控制用网卡之间建立通信连接;
测试次数获取模块,用于在发送端获取手动输入的测试次数;
准备开始测试模块,用于通过所述通信连接将准备开始测试的信号发送至接收端;
接收功能开启模块,用于在接收端根据所述准备开始测试的信号开启接收端板卡的接收功能;
数据接收状态监测模块,用于开始监测接收端板卡的数据接收状态;
接收准备完毕通知模块,用于在所述接收端板卡的接收功能开启完毕的情况下,在接收端通过所述通信连接发送接收准备完毕的信号至发送端;
发送功能开启模块,用于在发送端根据所述接收准备完毕的信号开启发送端板卡的发送功能,以执行测试程序,使所述发送端板卡向所述接收端板卡发送测试用例数据;
完成一次测试通知模块,用于在接收端监测到所述接收端板卡接收完毕测试用例数据的情况下,通过所述通信连接发送完成本次测试的信号至发送端;
通信连接断开模块,用于在发送端根据依据所述测试次数记录的测试次数完成状态判断本次测试是最后一次测试的情况下,根据所述完成本次测试的信号断开所述通信连接;
其中,所述接收端板卡和/或所述发送端板卡为待测试硬件TCP/IP网络加速器。
在一些实施例中,所述的硬件TCP/IP网络加速器自动测试装置,还包括:
发送端计次模块,用于在发送端根据所述测试次数,记录测试次数完成状态;和/或,
接收端计次模块,用于在接收端根据所述测试次数,记录测试次数完成状态。
在一些实施例中,所述的硬件TCP/IP网络加速器自动测试装置,还包括:
比对结果获取模块,用于在接收端监测到所述接收端板卡接收完毕测试用例数据的情况下,获取执行比对程序后得到的发送端板卡发送的测试用例数据和接收端板卡实际接收的数据的比对结果;
重新测试信号发送模块,用于若比对结果为不一致,则获取本次测试的测试用例数据的用例标识,并将包含用例标识的重新测试信号发送至发送端;
报错重测试模块,用于在发送端根据重新测试信号启动执行测试程序,以额外重新进行设定次数的从发送端板卡向接收端板卡发送该用例标识对应的测试用例数据的测试;
报错分析结果输出模块,用于根据所述设定次数的测试的结果输出报错分析结果。
在一些实施例中,所述的硬件TCP/IP网络加速器自动测试装置,还包括:
进程监控模块,用于在接收端监测接收端板卡接收数据所用的接收进程与比对发送端板卡发送的测试用例数据和接收端板卡实际接收到的数据所用的比对进程,若接收进程阻塞超过设定时长,则跳过接收进程执行比对进程,若比对进行阻塞超过设定时长,则停止比对进程并重启比对程序。
在一些实施例中,所述的硬件TCP/IP网络加速器自动测试装置,还包括:
数据传输速率获取模块,用于在发送端根据依据所述测试次数记录的测试次数完成状态判断本次测试是最后一次测试的情况下,在接收端获取记录的日志中的所述测试次数的所有测试结果,统计所述所有测试结果中的报错率;根据记录的发送端板卡首次开始发送测试用例数据的时间和接收端板卡末次结束接收数据的时间计算得到所述测试次数的总数据传输时间,在接收端获取所有测试用例数据的总数据量,根据所述总数据量和所述总数据传输时间计算得到数据传输速率。
在一些实施例中,所述通信连接为TCP连接;和/或,所述发送端板卡和所述接收端板卡其中一个为待测试硬件TCP/IP网络加速器时,另一个为MELLANOX网卡。
根据本发明实施例的另一方面,还提供了一种电子设备,用于实现上述任一实施例所述方法的步骤。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一实施例所述方法的步骤。
本发明实施例的硬件TCP/IP网络加速器自动测试方法、硬件TCP/IP网络加速器自动测试装置、电子设备、及计算机可读存储介质,能够基于现有手动测试的程序实现对硬件TCP/IP网络加速器的自动测试,提高对硬件TCP/IP网络加速器进行测试的效率,节省人力,加快产品迭代速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本发明一实施例的硬件TCP/IP网络加速器自动测试方法的流程示意图;
图2是本发明另一实施例的硬件TCP/IP网络加速器自动测试方法的流程示意图;
图3是本发明一实施例的硬件TCP/IP网络加速器自动测试装置的结构示意图;
图4是本发明一具体实施例的硬件TCP/IP网络加速器自动测试方法的整体流程示意图;
图5是本发明一具体实施例中一次测试的流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
首先,对本文可能涉及的专业术语做一下介绍:
TCP/IP协议:是网络通信中广泛使用的基本通信协议,它对互联网中各个部分进行通信的标准和方法进行了规定;
FPGA(现场可编程门阵列):是可使用硬件编程语言进行编写的可编程板卡。
KPU:是本申请人研发的高速运算芯片;
硬件TCP/IP网络加速器:普通网络通信采用CPU对TCP/IP协议进行卸载获取数据和对TCP/IP协议进行装载发送数据,而硬件TCP/IP网络加速器将对TCP/IP协议卸载和装载等的操作下降到硬件层,即实现TOE(TCP offload engine)使用硬件TCP/IP网络加速器对TCP/IP协议进行卸载,直接将获取到的数据传递给CPU,并可直接从缓冲区获取待发送数据进行装载发送,通过对TCP/IP协议进行硬件操作能够实现网络加速,释放CPU算力,实现运算加速;
MELLANOX网卡:是一款高速商用网卡,传输速度很快。
再者,举例说明手动测试的缺点。例如,本申请人在研究开发基于FPGA板卡的硬件TCP/IP网络加速器(可称为KPU板卡)时,以测试KPU板卡上新增添的某项接收功能为例,在对KPU板卡进行测试时:需要先在装有KPU板卡的服务器上手动运行命令行指令打开KPU板卡的接收功能,再转到装有MELLANOX网卡的服务器上手动运行命令行指令打开其发送功能,实现已创建的测试用例的发送。待KPU板卡和MELLANOX网卡通信结束后,再通过手动运行命令行指令打开比对程序比对KPU板卡端接收到的数据与MELLANOX网卡端发送出来的测试用例数据来分析KPU板卡的新增接收功能是否正常。之后,再对接收保存下来的数据进行清理,之后才能开始下一次测试。而有些BUG是概率性出现的,所以就需要进行多次的测试才能找到这些BUG,而每次都需要人工操作进行手动测试。由此可见,手动测试劳神又费时。
为了提高对硬件TCP/IP网络加速器进行测试的效率,本发明实施例提供了一种硬件TCP/IP网络加速器自动测试方法,以实现提供对硬件TCP/IP网络加速器进行测试的效率,节省人力,加快硬件TCP/IP网络加速器产品的迭代效率。
图1是本发明一实施例的硬件TCP/IP网络加速器自动测试方法的流程示意图。如图1所示,该些实施例的硬件TCP/IP网络加速器自动测试方法,可包括以下:步骤S110~步骤S170。
下面将对步骤S110至步骤S170的具体实施方式进行详细说明。
步骤S110:在发送端控制用网卡和接收端控制用网卡之间建立通信连接;其中,所述接收端板卡和/或所述发送端板卡为待测试硬件TCP/IP网络加速器。
该步骤S110中,发送端控制用网卡位于发送端,可以是内嵌在发送端服务器的普通网卡。接收端控制用网卡位于接收端,可以是内嵌在接收端服务器的普通网卡。当接收端板卡和发送端板卡中有一个为待测硬件TCP/IP网络加速器时,另一个板卡可以是现有的商用板卡,例如,MELLANOX网卡。商用板卡可以插接在服务器主板上。
该通信连接是指可以使发送端控制用网卡和接收端控制用网卡进行通信的各种通信方式,可以是需要预先建立连接的,或者可以是不需预先建立连接的。具体实施时,可以使用需要预先建立连接的通信方式建立通信连接,例如,该通信连接可以为TCP连接,以此,可使发送端控制用网卡和接收端控制用网卡之间的通信更稳定、可靠。
在对硬件TCP/IP网络加速器进行研发的过程中,可能会在硬件TCP/IP网络加速器增加新功能,或改进其中的新功能。待测试硬件TCP/IP网络加速器可以插接在发送端服务器/接收端服务器的主板上。当只有发送端板卡为待测试硬件TCP/IP网络加速器时,可以测试待测试硬件TCP/IP网络加速器的发送功能等是否正常;当只有接收端板卡为待测试硬件TCP/IP网络加速器,可以测试待测试硬件TCP/IP网络加速器的接收功能等是否正常;当发送端板卡为一个待测试硬件TCP/IP网络加速器,接收端板卡为另一个待测试硬件TCP/IP网络加速器,不仅可以测试这两个硬件TCP/IP网络加速器的收发功能配合等是否正常,其中,这两个硬件TCP/IP网络加速器可以是相同或不同硬件TCP/IP网络加速器。
步骤S120:在发送端获取手动输入的测试次数,并通过所述通信连接将准备开始测试的信号发送至接收端。
上述步骤S120中,可以由人工从发送端服务器输入测试次数,在此情况下,可以将输入的测试次数通过上述通信连接发送至接收端。
具体实施时,该步骤S120,具体可包括:S121,在发送端接收手动输入的测试次数,通过所述通信连接将所述测试次数和准备开始测试的信号发送至接收端。该实施例中,可以将测试次数和准备开始测试的信号一起发送至接收端。
在其他实施例中,由人工从发送端服务器输入测试次数的情况下,也可以由人工从接收端服务器输入测试次数;或者,可以由人工从接收端服务器输入测试次数,然后,再从接收端将测试次数发送至接收端。
发送端获取到测试次数后,可以进行计次,并可以知道测试的次数进展情况;接收端得到测试次数后,可以得知所需记录数据对应的测试次序。
示例性地,图1所示的方法,步骤S120中在发送端获取手动输入的测试次数之后,还可包括步骤:S180,在发送端根据所述测试次数,记录测试次数完成状态。
其中,该测试次数完成状态可以是从测试次数开始倒数计次的次数,示例性地,该步骤S180,即,在发送端根据所述测试次数,记录测试次数完成状态,具体可包括步骤:S181,在发送端从所述测试次数开始倒计次,作为测试次数完成状态。或者,可以是正数记录的次数与该测试次数比较的结果,比较的结果可以是还剩的次数,或者可以是是否为最后一次测试的判断结果。
可以在上述步骤S120中发送准备开始测试的信号时,记录测试次数完成状态。具体实施时,该步骤S180,具体可包括步骤:S182,在发送端获取手动输入的测试次数,通过所述通信连接将准备开始测试的信号发送至接收端的同时或之后,根据所述测试次数记录测试次数完成状态。该实施例中,可以在测试开始之前进行记录测试次数完成状态。其他实施例中,可以在完成一次测试后记录测试次数完成状态。
接收端所需的测试次数完成状态,可以在该接收端记录得到。例如,在发送端发送测试次数至接收端的情况下,如执行上述步骤S121的情况下,图1所示的方法,还可包括步骤:S190,在接收端根据所述测试次数,记录测试次数完成状态。在接收端得到的测试次数完成状态可以用于在记录日志时记录相应测试次序。该测试次数完成状态可以是从测试次数开始倒数计次的次数,示例性地,该步骤S190,具体可包括步骤:在接收端从所述测试次数开始倒计次,作为测试次数完成状态,以使测试程序根据记录的测试次数完成状态在记录的日志中记录相应测试次序。或者,可以是正数记录的次数与该测试次数比较的结果,比较的结果可以是还剩的次数,或者可以是是否为最后一次测试的判断结果。该实施例,通过在接收端记录测试次数完成状态,可以减少收发两端的通信环节。
在其他实施例中,接收端所需的测试次数完成状态,可以是通过将发送端记录的测试次数完成状态通过通信连接发送至接收端得到的。示例性地,在包含上述步骤S180的情况下,图1所述的方法还可包括步骤:S1100,发送端将其记录的测试次数完成状态通过所述通信连接发送至接收端,以使测试程序根据记录的测试次数完成状态在记录的日志中记录相应测试次序。该实施例,通过发送测试次数完成状态,可以使收发两端更容易地同步。
该步骤S180,即,在发送端根据所述测试次数,记录测试次数完成状态,具体可包括步骤:S181,在发送端从所述测试次数开始倒计次,作为测试次数完成状态。
步骤S130:在接收端根据所述准备开始测试的信号开启接收端板卡的接收功能,并开始监测接收端板卡的数据接收状态。
上述步骤S130中,此时可以开始监测数据接收状态,监测过程可以持续整个测试过程周期,如上述测试次数的测试。
上述步骤S130中,在接收端根据所述准备开始测试的信号开启接收端板卡的接收功能,具体可包括步骤:S1311,在接收端根据所述准备开始测试的信号调用用于开启接收端板卡的接收功能的脚本,以开启接收端板卡的接收功能。其中,该用于开启接收端板卡的接收功能的脚本可以是目前手动测试时开启接收端板卡的接收功能所用的脚本。
上述步骤S130中,开始监测接收端板卡的数据接收状态,具体可包括步骤:S1312,通过监测接收端板卡向接收端内存写入数据的状态,监测接收端板卡的数据接收状态。接收端板卡可以插接在接收端服务器上,接收端接收从发送端板卡发来的数据时,需要从接收端板卡硬件写入接收端服务器的内存,从而实现利用接收端板卡这一硬件接收数据,所以通过监测接收端板卡向其所在端内存写入数据的情况,可以得知接收端板卡的数据接收状态。另外,数据接收状态可以是是否正在接收数据,是否停止接收数据,具体可以根据若超过一定时间没有从接收端板卡向相应内存写入数据,可以认为停止了接收数据。
步骤S140:在所述接收端板卡的接收功能开启完毕的情况下,在接收端通过所述通信连接发送接收准备完毕的信号至发送端。
上述步骤S140中,在接收端可以通过调用用于开启接收端板卡的接收功能的脚本,来开启接收端板卡的接收功能。若开启接收功能完毕,该用于开启接收端板卡的接收功能的脚本可以得到表示接收功能开启完毕的信息,那么,接收端可以根据表示接收功能开启完毕的信息确认开启接收端板卡的接收功能完毕。一旦确定接收功能开启完毕,则可以发送接收准备完毕的信号至发送端。
步骤S150:在发送端根据所述接收准备完毕的信号开启发送端板卡的发送功能,以执行测试程序,使所述发送端板卡向所述接收端板卡发送测试用例数据。
上述步骤S150中,在发送端根据所述接收准备完毕的信号开启发送端板卡的发送功能,具体可包括步骤:S151,在发送端根据所述接收准备完毕的信号调用用于开启发送端板卡的发送功能的脚本,以开启发送端板卡的发送功能。其中,该用于开启发送端板卡的发送功能的脚本可以是目前手动测试所用的用于开启发送端板卡的发送功能的脚本。当开启发送功能成功后,该用于开启发送端板卡的发送功能的脚本可以得到表示发送功能开启完毕的信息,那么,发送端可以根据表示发送功能开启完毕的信息确认开启发送端板卡的发送功能完毕。目前手动测试过程中,开启发送功能后可以触发执行测试程序,开始测试,所以此处一旦确定发送功能开启完毕,则可以触发执行测试程序。其中该测试程序可以是目前手动测试所用的测试程序,可以用于实现将用例数据从发送端板卡发送至接收端板卡。另外,测试用例数据可以有一个或多个,不同测试过程所用测试用例数据可以不同。
步骤S160:在接收端监测到所述接收端板卡接收完毕测试用例数据的情况下,通过所述通信连接发送完成本次测试的信号至发送端。
该步骤S160中,具体实施时,可以根据超过一定时长,接收端板卡没有向接收端内存写入数据,则可认为接收完毕测试用例数据。此时,可以认为完成了一次测试。则接收端可以告知发送端本次测试完成。
步骤S170:在发送端根据依据所述测试次数记录的测试次数完成状态判断本次测试是最后一次测试的情况下,根据所述完成本次测试的信号断开所述通信连接。
该步骤S170中,所述的根据依据所述测试次数记录的测试次数完成状态,可以是从测试次数开始倒数计次的次数(如步骤S181),或者可以是正数记录的次数与该测试次数比较的结果(如还剩的次数,或是否为最后一次测试的判断结果)。
进一步的一些实施例中,在整个一轮测试完成后,可以对总体测试情况进行分析。例如,图1所示的方法,还可包括步骤:S1131,在发送端根据依据所述测试次数记录的测试次数完成状态判断本次测试是最后一次测试的情况下,在接收端获取记录的日志中的所述测试次数的所有测试结果,统计所述所有测试结果中的报错率。具体地,可以统计上述测试次数中报错的比率。接收端可以从测试程序在执行时所记录的日志中获取各次测试的测试结果(正常或报错)来统计报错率。
又例如,图1所示的方法,还可包括步骤:S1132,根据记录的发送端板卡首次开始发送测试用例数据的时间和接收端板卡末次结束接收数据的时间计算得到所述测试次数的总数据传输时间;在接收端获取所有测试用例数据的总数据量;根据所述总数据量和所述总数据传输时间计算得到数据传输速率。其中,测试的开始时间,可以是进行第一次测试时,在发送端开启发送端板卡的发送功能完毕(如上述步骤S150)时记录。测试的结束时间,可以是进行最后一次测试时,在接收端监测到所述接收端板卡接收完毕测试用例数据(如上述步骤S160)时记录。可以在接收端统计报错率,此时,可以让发送端记录开始时间后就通过通信连接发送至接收端。总数据量可以根据预先确定的用例数据来得到。
在另一些实施例中,若判断本次测试不是最后一次测试,则可以控制继续测试。示例性地,图1所示的方法,还可包括步骤:
S1721,在发送端根据依据所述测试次数记录的测试次数完成状态判断本次测试不是最后一次测试的情况下,通过所述通信连接将再次准备开始测试的信号发送至接收端;
S1722,接收端板卡的接收功能已关闭的情况下,在接收端根据再次准备开始测试的信号开启接收端板卡的接收功能,并再次开始监测接收端板卡的数据接收状态;
S1723,在所述接收端板卡的接收功能再次开启完毕的情况下,在接收端通过所述通信连接再次发送接收准备完毕的信号至发送端;
S1724,发送端板卡的发送功能已关闭的情况下,在发送端根据再次接收准备完毕的信号再次开启发送端板卡的发送功能,以再次执行测试程序,再次使所述发送端板卡向所述接收端板卡发送测试用例数据;
S1725,在接收端再次监测到所述接收端板卡再次接收完毕测试用例数据的情况下,再次通过所述通信连接发送完成本次测试的信号至发送端;
S1726,在发送端根据依据所述测试次数再次记录的测试次数完成状态判断本次测试是最后一次测试的情况下,根据再次接收到的完成本次测试的信号断开所述通信连接。
通过上述步骤S1721~步骤S1726,可以实现重复执行类似于前述步骤S120~步骤S170的过程,继续执行各次测试。所以,步骤S1721~步骤S1726可以参考步骤S120~步骤S170的对应步骤实施,故不再赘述。步骤S1722和步骤S1724中,测试程序每次执行完一次测试后可以关闭发送端板卡的发送功能和接收端板卡的接收功能,例如,在发送端完成发送动作后,可以关闭发送端板卡的发送功能,在接收端板卡完成接收数据后,可以关闭接收端板卡的接收功能。关闭发送功能和关闭接收功能可以是测试程序自有的功能。当然不排除,可以利用本发明的方法关闭发送端板卡的发送功能,关闭接收端板卡的接收功能。所以,在下一次测试时可能需要重新开启发送端板卡的发送功能和接收端板卡的接收功能。
在又一些实施例中,在进行所述测试次数的一轮测试过程中,若某次测试报错,则可以利用该次测试的数据额外重复进行测试(所述测试次数的测试之外的测试,不影响所述测试次数的测试,可以与所述测试次数的同时或在其之后进行),以分析报错原因。示例性地,图1所示方法,还可包括步骤:
S1111,在接收端监测到所述接收端板卡接收完毕测试用例数据的情况下,获取执行比对程序后得到的发送端板卡发送的测试用例数据和接收端板卡实际接收的数据的比对结果;
S1112,若比对结果为不一致,则获取本次测试的测试用例数据的用例标识,并将包含用例标识的重新测试信号发送至发送端;
S1113,在发送端根据重新测试信号启动执行测试程序,以额外重新进行设定次数的从发送端板卡向接收端板卡发送该用例标识对应的测试用例数据的测试;
S1114,根据所述设定次数的测试的结果输出报错分析结果。
上述步骤S1111中,一次测试结束后,可以利用目前的比对程序得到发送端板卡发送的测试用例数据和接收端板卡实际接收的数据的比对结果,可以在接收端获取该比对结果。若比对结果一致,则说明本次发送端板卡向接收端板卡发送数据正常。
上述步骤S1112中,若比对结果不一致,则说明本次发送端板卡向接收端板卡发送数据发生异常,在此情况下,接收端可以从记录的日志获取用例标识,得知本次使用的是哪个用例,并告知发送端。
上述步骤S1113中,发送端得知本次所使用的用例后,可以从用例库找到相应的用例数据,进行额外的一次或多次测试,该额外测试可以是独立于所述测试次数之外的测试,而且,这些额外测试均使用所找到的用例数据进行测试。在所述测试次数的整个测试过程中进行额外测试的情况下,可以在某次测试(如报错的这次)结束后,通过类似于上述步骤S1721~步骤S1726的过程重复进行额外测试,直到达到设定次数。具体地,例如,步骤S1113具体可包括步骤:通过所述通信连接将再次准备开始测试的信号发送至接收端;在接收端根据再次准备开始测试的信号开启接收端板卡的接收功能,并再次开始监测接收端板卡的数据接收状态;在所述接收端板卡的接收功能再次开启完毕的情况下,在接收端通过所述通信连接再次发送接收准备完毕的信号至发送端;在发送端根据再次接收准备完毕的信号再次开启发送端板卡的发送功能,以再次执行测试程序,再次使所述发送端板卡向所述接收端板卡发送测试用例数据;在接收端再次监测到所述接收端板卡再次接收完毕测试用例数据的情况下,再次通过所述通信连接发送完成本次测试的信号至发送端;记录进行额外测试的次数,直到达到设定次数,停止重复进行额外测试。
上述步骤S1114中,额外进行的每次测试后,均可以利用目前的比对程序比对发送数据和接收数据的一致性,并可以根据比对结果分析报错原因。例如,重复进行多次额外测试后,若均无报错,则说明之前的报错可能是由于网络不稳定导致的,可以先不用处理;重复进行多次额外测试后,若多次出现同样报错,则说明该报错很有可能是由于待测板卡存在缺陷导致的,则可以对待测板卡进行改进。
该实施例中,通过利用同样用例数据额外进行测试,可以初步分析报错的原因,有助于人工分析实际报错原因。
在再一些实施例中,在自动控制测试网络加速器的过程中,可以对测试过程中启动的进程进行监控。示例性地,图1所示方法,还可包括步骤:S1120,在接收端监测接收端板卡接收数据所用的接收进程与比对发送端板卡发送的测试用例数据和接收端板卡实际接收到的数据所用的比对进程,若接收进程阻塞超过设定时长,则跳过接收进程执行比对进程,若比对进行阻塞超过设定时长,则停止比对进程并重启比对程序。目前,硬件TCP/IP网络加速器的测试过程中,启动的进行主要可包括发送进程、接收进程、比对进程,其中,发送进程可以用于处理发送端板卡发送用例数据的过程,接收进程可以用于处理接收端板卡接收发送端板卡发送过来的数据的过程,比对程序可以用于处理比对发送端板卡发送的用例数据和接收端板卡实际接收的数据的过程。该些进程的启动顺序可以依次是发送进程、接收进程、比对进程。发送进程一般很少出现阻塞,所以可以不用监控;接收进程若出现阻塞,可以直接跳过,执行下一个进程;比对进程若发生阻塞,可以直接杀掉该进程,并重启比对程序。如此一来,可以避免测试过程因进程阻塞而卡住,提高测试效率。
此外,本发明实施例还提供了另一种硬件TCP/IP网络加速器自动测试方法,该方法与图1所示的硬件TCP/IP网络加速器自动测试方法相比,区别主要在于,本些实施例是先开启发送端板卡的发送功能,再开启接收端板卡的接收功能,而图1所示方法是先开启接收端板卡的接收功能,再开启发送端板卡的发送功能。
图2是本发明另一实施例的硬件TCP/IP网络加速器自动测试方法的流程示意图,如图2所示,该些是实施例的方法,可包括:
步骤S210:在发送端控制用网卡和接收端控制用网卡之间建立通信连接;其中,所述接收端板卡和/或所述发送端板卡为待测试硬件TCP/IP网络加速器;
步骤S220:在接收端获取手动输入的测试次数,并通过所述通信连接将准备开始测试的信号发送至发送端;
步骤S230:在发送端根据所述准备开始测试的信号开启发送端板卡的发送功能;
步骤S240:在所述发送端板卡的发送功能开启完毕的情况下,在发送端通过所述通信连接发送发送准备完毕的信号至接收端;
步骤S250:在接收端根据所述发送准备完毕的信号开启接收端板卡的接收功能,以执行测试程序,使所述发送端板卡向所述接收端板卡发送测试用例数据;并且,在接收端开始监测接收端板卡的数据接收状态;
步骤S260:在接收端监测到所述接收端板卡接收完毕测试用例数据的情况下,在接收端根据依据所述测试次数记录的测试次数完成状态判断本次测试是最后一次测试的情况下,断开所述通信连接。
上述步骤S210的具体实施方式,可以参见前述实施例所述方法的步骤S110。
上述步骤S230,即,在发送端根据所述准备开始测试的信号开启发送端板卡的发送功能,具体可包括:在发送端根据所述准备开始测试的信号调用用于开启发送端板卡的发送功能的脚本开启发送端板卡的发送功能。
上述步骤S250中,在接收端根据所述发送准备完毕的信号开启接收端板卡的接收功能,具体可包括:在接收端根据所述发送准备完毕的信号调用用于开启接收端板卡的接收功能开启接收端板卡的接收功能。
上述步骤S250中,在接收端开始监测接收端板卡的数据接收状态,具体可包括:通过监测接收端板卡向接收端内存写入数据的状态,监测接收端板卡的数据接收状态。
进一步实施例中,图2所示方法,还可包括步骤:
在接收端根据依据所述测试次数记录的测试次数完成状态判断本次测试不是最后一次测试的情况下,通过所述通信连接将再次准备开始测试的信号发送至发送端;发送端板卡的发送功能已关闭的情况下,在发送端根据所述再次准备开始测试的信号再次开启发送端板卡的发送功能;在所述发送端板卡的发送功能再次开启完毕的情况下,在发送端通过所述通信连接再次发送发送准备完毕的信号至接收端;接收端板卡的接收功能已关闭的情况下,在接收端根据再次接收的发送准备完毕的信号再次开启接收端板卡的接收功能,以再次执行测试程序,使所述发送端板卡再次向所述接收端板卡发送测试用例数据;并且,在接收端再次开始监测接收端板卡的数据接收状态;在再次接收端监测到所述接收端板卡接收完毕测试用例数据的情况下,在接收端根据依据所述测试次数记录的测试次数完成状态判断本次测试是最后一次测试的情况下,断开所述通信连接。
在一些实施例中,上述步骤S220,即,在接收端获取手动输入的测试次数,并通过所述通信连接将准备开始测试的信号发送至发送端,具体可包括:在接收端接收手动输入的测试次数,并通过所述通信连接将准备开始测试的信号发送至发送端。
在一些实施例中,图2所示方法,还包括:在接收端根据所述测试次数,记录测试次数完成状态。
在一些实施例中,在接收端根据所述测试次数,记录测试次数完成状态,具体可包括:在接收端获取手动输入的测试次数,并通过所述通信连接将准备开始测试的信号发送至发送端同时或之后,根据所述测试次数记录测试次数完成状态。
在一些实施例中,在接收端根据所述测试次数,记录测试次数完成状态,具体可包括:在接收端从所述测试次数开始倒计次,作为测试次数完成状态。
在一些实施例中,发送端需要得知测试次数完成状态的情况下,图2所示方法还可包括步骤:接收端将其记录的测试次数完成状态通过所述通信连接发送至发送端。在发送端可使测试程序根据记录的测试次数完成状态在记录的日志中记录相应测试次序。
在一些实施例中,图2所示方法,还可包括:在接收端监测到所述接收端板卡接收完毕测试用例数据的情况下,获取执行比对程序后得到的发送端板卡发送的测试用例数据和接收端板卡实际接收的数据的比对结果;若比对结果为不一致,则获取本次测试的测试用例数据的用例标识,并在将包含用例标识的重新测试信号发送至发送端;在发送端根据重新测试信号启动执行测试程序,以额外重新进行设定次数的从发送端板卡向接收端板卡发送该用例标识对应的测试用例数据的测试;根据所述设定次数的测试的结果输出报错分析结果。
在一些实施例中,图2所示方法,还可包括:在接收端监测接收端板卡接收数据所用的接收进程与比对发送端板卡发送的测试用例数据和接收端板卡实际接收到的数据所用的比对进程,若接收进程阻塞超过设定时长,则跳过接收进程执行比对进程,若比对进行阻塞超过设定时长,则停止比对进程并重启比对程序。
在一些实施例中,图2所示方法,还可包括:在接收端根据依据所述测试次数记录的测试次数完成状态判断本次测试是最后一次测试的情况下,在接收端获取记录的日志中的所述测试次数的所有测试结果,统计所述所有测试结果中的报错率;根据记录的发送端板卡首次开始发送测试用例数据的时间和接收端板卡末次结束接收数据的时间计算得到所述测试次数的总数据传输时间,在接收端获取所有测试用例数据的总数据量,根据所述总数据量和所述总数据传输时间计算得到数据传输速率。
在一些实施例中,所述通信连接为TCP连接;和/或,所述发送端板卡和所述接收端板卡其中一个为待测试硬件TCP/IP网络加速器时,另一个为MELLANOX网卡。
基于与图1所示的硬件TCP/IP网络加速器自动测试方法相同的发明构思,本发明实施例还提供了一种硬件TCP/IP网络加速器自动测试装置,如下面实施例所述。由于该硬件TCP/IP网络加速器自动测试装置解决问题的原理与硬件TCP/IP网络加速器自动测试方法相似,因此该硬件TCP/IP网络加速器自动测试装置的实施可以参见硬件TCP/IP网络加速器自动测试方法的实施,重复之处不再赘述。
图3是本发明一实施例的硬件TCP/IP网络加速器自动测试装置的结构示意图,如图3所示,该些实施例的硬件TCP/IP网络加速器自动测试装置,可包括:
通信连接建立模块310,用于在发送端控制用网卡和接收端控制用网卡之间建立通信连接;其中,所述接收端板卡和/或所述发送端板卡为待测试硬件TCP/IP网络加速器;
测试次数获取模块320,用于在发送端获取手动输入的测试次数;
准备开始测试模块330,用于通过所述通信连接将准备开始测试的信号发送至接收端;
接收功能开启模块340,用于在接收端根据所述准备开始测试的信号开启接收端板卡的接收功能;
数据接收状态监测模块350,用于开始监测接收端板卡的数据接收状态;
接收准备完毕通知模块360,用于在所述接收端板卡的接收功能开启完毕的情况下,在接收端通过所述通信连接发送接收准备完毕的信号至发送端;
发送功能开启模块370,用于在发送端根据所述接收准备完毕的信号开启发送端板卡的发送功能,以执行测试程序,使所述发送端板卡向所述接收端板卡发送测试用例数据;
完成一次测试通知模块380,用于在接收端监测到所述接收端板卡接收完毕测试用例数据的情况下,通过所述通信连接发送完成本次测试的信号至发送端;
通信连接断开模块390,用于在发送端根据依据所述测试次数记录的测试次数完成状态判断本次测试是最后一次测试的情况下,根据所述完成本次测试的信号断开所述通信连接。
在一些实施例中,图3所示的硬件TCP/IP网络加速器自动测试装置,其特征在于,还可包括:发送端计次模块和/或,接收端计次模块
发送端计次模块,用于在发送端根据所述测试次数,记录测试次数完成状态;接收端计次模块,用于在接收端根据所述测试次数,记录测试次数完成状态。
在一些实施例中,图3所示的硬件TCP/IP网络加速器自动测试装置,还可包括:
比对结果获取模块,用于在接收端监测到所述接收端板卡接收完毕测试用例数据的情况下,获取执行比对程序后得到的发送端板卡发送的测试用例数据和接收端板卡实际接收的数据的比对结果;
重新测试信号发送模块,用于若比对结果为不一致,则获取本次测试的测试用例数据的用例标识,并将包含用例标识的重新测试信号发送至发送端;
报错重测试模块,用于在发送端根据重新测试信号启动执行测试程序,以额外重新进行设定次数的从发送端板卡向接收端板卡发送该用例标识对应的测试用例数据的测试;
报错分析结果输出模块,用于根据所述设定次数的测试的结果输出报错分析结果。
在一些实施例中,图3所示的硬件TCP/IP网络加速器自动测试装置,还可包括:进程监控模块,用于在接收端监测接收端板卡接收数据所用的接收进程与比对发送端板卡发送的测试用例数据和接收端板卡实际接收到的数据所用的比对进程,若接收进程阻塞超过设定时长,则跳过接收进程执行比对进程,若比对进行阻塞超过设定时长,则停止比对进程并重启比对程序。
在一些实施例中,图3所示的硬件TCP/IP网络加速器自动测试装置,还可包括:数据传输速率获取模块,用于在发送端根据依据所述测试次数记录的测试次数完成状态判断本次测试是最后一次测试的情况下,在接收端获取记录的日志中的所述测试次数的所有测试结果,统计所述所有测试结果中的报错率;根据记录的发送端板卡首次开始发送测试用例数据的时间和接收端板卡末次结束接收数据的时间计算得到所述测试次数的总数据传输时间,在接收端获取所有测试用例数据的总数据量,根据所述总数据量和所述总数据传输时间计算得到数据传输速率。
在一些实施例中,所述通信连接为TCP连接。
在一些实施例中,所述发送端板卡和所述接收端板卡其中一个为待测试硬件TCP/IP网络加速器时,另一个为MELLANOX网卡。
此外,本发明实施例还提供,一种电子设备,第一设备和第二设备,其中第一设备包括第一存储器、第一处理器及存储在第一存储器上并可在第一处理器上运行的计算机程序,第二设备包括第二存储器、第二处理器及存储在第二存储器上并可在第二处理器上运行的计算机程序;所述第一处理器执行其对应的程序时和第二处理器执行其对应的程序时,分别实现如上述任一实施例所述方法中发送端相关的步骤和接收端相关的步骤。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一实施例所述方法的步骤。
为使本领域技术人员更好地了解本发明,下面将以具体实施例说明本发明的实施方式。
在一具体实施例中,可以采用Python3和shell语言编写运行在Linux环境下对硬件TCP/IP网络加速器的功能(例如,接收功能中的TOE功能需要比对接收到的数据与发送出来的数据是否相同;接收功能中的组包功能需要测试其是否能够按照设计的时间与包数限制将小数据包组合成为较大的数据包进行上报;发送功能中的切包功能需要测试其是否能够按照设计的长度限制将超过限制的较大数据包切分成较小数据包逐个进行发送)及性能(例如,测试两块KPU板卡之间的通信速度能够达到多快。)进行自动测试的程序,以正确且高效地对硬件TCP/IP网络加速器进行测试,节省人力、加快产品迭代速度。
硬件TCP/IP网络加速器自动测试装置可分为两层:控制层与测试层。本发明实施例的主体为其中的控制层,用来对测试层进行控制。
在自动测试开始前,可根据配置文件(可包括发送端板卡、接收端板卡的IP、端口等信息)建立控制用TCP通道,其中,传输的控制信号可将控制两端的服务器模拟手动操作进行测试。
图4是本发明一具体实施例的硬件TCP/IP网络加速器自动测试方法的整体流程示意图。图5是本发明一具体实施例中一次测试的流程示意图。参见图4和图5,以KPU板卡(待测硬件TCP/IP网络加速器/接收端板卡)接收、MELLANOX网卡(发送端板卡)发送为例进行说明(除了标注的步骤,其他步骤都将由自动测试装置自动完成),该方法可包括以下步骤:
S1:在开始前可以更改改好测试所需配置(发送及接收端服务器MAC地址及控制用端口、KPU板卡和MELLANOX网卡的MAC地址及相对应测试用端口、发送程序及接收程序路径等),以保证可以测试。该步骤可以通过人工手动进行配置。
S2:自动测试装置可根据配置文件(可包括普通网卡的IP和端口(用于建立通信连接),以及MELLANOX网卡和KPU板卡的IP和端口)在两服务器的普通网卡(内嵌于服务器的网卡)间建立一条控制用TCP通道。
S3:在控制用TCP通道建立成功之后,将根据输入进行相应次数的测试。该步骤可以由人工手动输入测试次数。
S4:发送端会对当前测试次数进行计数,并判断是否继续进行测试。
S5:若当前为最后一次测试则会给接收端发送信号结束测试并尝试断开连接,接收端收到结束信号会生成一个整体的测试报告记录;若之后仍需进行测试,则进入一轮收发测试。
S6:发送端发送ready_to_start(准备开始测试的信号)信号,接收端收到该信号会操作接收端服务器开启KPU板卡的接收功能,并开始监控板卡接收的状态;待接收准备完成后,接收端会向发送端发送recv_is_ready(接收准备完成的信号)信号,发送端收到该信号会操作发送端服务器开启MELLANOX网卡的发送功能向KPU板卡发送数据进行测试。
S7:之后自动测试装置会操作接收端服务器接收到的数据与发送端服务器发出的数据进行比对,以确定接收到的数据是否有缺失或错误。
S8:完成一轮收发测试后回到步骤S6继续执行。
具体地,建立自动测试控制用TCP通道时,该TCP通道建立在接收端服务器和发送端服务器主板上的普通网卡之间,它独立于待测试网卡/板卡之外,TCP传输可靠,可同步并用来控制测试两端进程,是本发明的根基。
可建立标准测试用例,并能支持自定义测试用例。标准测试用例有助于标准化测试,并可测试新功能是否对现有的功能有影响。自定义测试用例可以根据设计的不同功能进行定制以验证某些特殊功能。
自定义测试次数、自定义测试流程(默认可为先开启接收,再开启发送,再比对数据正确性);根据不同需要进行自定义次数的测试(可随时停止)、可以自定义测试流程即可以针对硬件TCP/IP网络加速器的不同功能进行不同的测试。
测试中自动完成(可调用原有程序)控制板卡/网卡进行收发、数据比对和记录日志;自动对错误进行分析,记录本次测试所使用的数据并重复该次测试以确定该错误是否可重现,初步进行错误类型分析,方便之后人工复核查看。
测试过程中对待测试进程进行状态监控;确定待测试进程是否仍正常运行或进入阻塞状态等特殊状态,并根据检测结果进行相应控制,保证自动测试能够顺利完成。
可自动分析版本性能,计算传输速率。对该版本性能有个整体了解。
本实施例中,用自动测试替代手动测试,可对已经经过手动测试大致确定基本功能正常的板卡进行大量、长时间的收发测试,继续测试新版板卡的功能、性能及稳定性。本实施例可将测试步骤系统化、用自动测试装置取代手动测试。本实施例的测试流程会更加标准,节省硬件TCP/IP网络加速器开发过程中测试环节所消耗的精力,拟发现硬件TCP/IP网络加速器产品的所有不足之处。
综上所述,本发明实施例的硬件TCP/IP网络加速器自动测试方法、硬件TCP/IP网络加速器自动测试装置、电子设备、及计算机可读存储介质,能够基于现有手动测试的程序实现对硬件TCP/IP网络加速器的自动测试,提高对硬件TCP/IP网络加速器进行测试的效率,节省人力,加快产品迭代速度。
在本说明书的描述中,参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本发明的实施,其中的步骤顺序不作限定,可根据需要作适当调整。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (24)
1.一种硬件TCP/IP网络加速器自动测试方法,其特征在于,包括:
在发送端控制用网卡和接收端控制用网卡之间建立通信连接;
在发送端获取手动输入的测试次数,并通过所述通信连接将准备开始测试的信号发送至接收端;
在接收端根据所述准备开始测试的信号开启接收端板卡的接收功能,并开始监测接收端板卡的数据接收状态;
在所述接收端板卡的接收功能开启完毕的情况下,在接收端通过所述通信连接发送接收准备完毕的信号至发送端;
在发送端根据所述接收准备完毕的信号开启发送端板卡的发送功能,以执行测试程序,使所述发送端板卡向所述接收端板卡发送测试用例数据;
在接收端监测到所述接收端板卡接收完毕测试用例数据的情况下,通过所述通信连接发送完成本次测试的信号至发送端;
在发送端根据依据所述测试次数记录的测试次数完成状态判断本次测试是最后一次测试的情况下,根据所述完成本次测试的信号断开所述通信连接;
其中,所述接收端板卡和/或所述发送端板卡为待测试硬件TCP/IP网络加速器。
2.如权利要求1所述的硬件TCP/IP网络加速器自动测试方法,其特征在于,还包括:
在发送端根据依据所述测试次数记录的测试次数完成状态判断本次测试不是最后一次测试的情况下,通过所述通信连接将再次准备开始测试的信号发送至接收端;
接收端板卡的接收功能已关闭的情况下,在接收端根据再次准备开始测试的信号开启接收端板卡的接收功能,并再次开始监测接收端板卡的数据接收状态;
在所述接收端板卡的接收功能再次开启完毕的情况下,在接收端通过所述通信连接再次发送接收准备完毕的信号至发送端;
发送端板卡的发送功能已关闭的情况下,在发送端根据再次接收准备完毕的信号再次开启发送端板卡的发送功能,以再次执行测试程序,再次使所述发送端板卡向所述接收端板卡发送测试用例数据;
在接收端再次监测到所述接收端板卡再次接收完毕测试用例数据的情况下,再次通过所述通信连接发送完成本次测试的信号至发送端;
在发送端根据依据所述测试次数再次记录的测试次数完成状态判断本次测试是最后一次测试的情况下,根据再次接收到的完成本次测试的信号断开所述通信连接。
3.如权利要求1所述的硬件TCP/IP网络加速器自动测试方法,其特征在于,在发送端获取手动输入的测试次数,通过所述通信连接将准备开始测试的信号发送至接收端,包括:
在发送端接收手动输入的测试次数,通过所述通信连接将所述测试次数和准备开始测试的信号发送至接收端。
4.如权利要求1所述的硬件TCP/IP网络加速器自动测试方法,其特征在于,还包括:
在发送端根据所述测试次数,记录测试次数完成状态。
5.如权利要求4所述的硬件TCP/IP网络加速器自动测试方法,其特征在于,在发送端根据所述测试次数,记录测试次数完成状态,包括:
在发送端获取手动输入的测试次数,通过所述通信连接将准备开始测试的信号发送至接收端的同时或之后,根据所述测试次数记录测试次数完成状态。
6.如权利要求4所述的硬件TCP/IP网络加速器自动测试方法,其特征在于,在发送端根据所述测试次数,记录测试次数完成状态,包括:
在发送端从所述测试次数开始倒计次,作为测试次数完成状态。
7.如权利要求3所述的硬件TCP/IP网络加速器自动测试方法,其特征在于,还包括:
在接收端根据所述测试次数,记录测试次数完成状态。
8.如权利要求7所述的硬件TCP/IP网络加速器自动测试方法,其特征在于,在接收端根据所述测试次数,记录测试次数完成状态,包括:
在接收端从所述测试次数开始倒计次,作为测试次数完成状态,以使测试程序根据记录的测试次数完成状态在记录的日志中记录相应测试次序。
9.如权利要求4所述的硬件TCP/IP网络加速器自动测试方法,其特征在于,还包括:
发送端将其记录的测试次数完成状态通过所述通信连接发送至接收端,以使测试程序根据记录的测试次数完成状态在记录的日志中记录相应测试次序。
10.如权利要求1所述的硬件TCP/IP网络加速器自动测试方法,其特征在于,还包括:
在接收端监测到所述接收端板卡接收完毕测试用例数据的情况下,获取执行比对程序后得到的发送端板卡发送的测试用例数据和接收端板卡实际接收的数据的比对结果;
若比对结果为不一致,则获取本次测试的测试用例数据的用例标识,并将包含用例标识的重新测试信号发送至发送端;
在发送端根据重新测试信号启动执行测试程序,以额外重新进行设定次数的从发送端板卡向接收端板卡发送该用例标识对应的测试用例数据的测试;
根据所述设定次数的测试的结果输出报错分析结果。
11.如权利要求1所述的硬件TCP/IP网络加速器自动测试方法,其特征在于,还包括:
在接收端监测接收端板卡接收数据所用的接收进程与比对发送端板卡发送的测试用例数据和接收端板卡实际接收到的数据所用的比对进程,若接收进程阻塞超过设定时长,则跳过接收进程执行比对进程,若比对进行阻塞超过设定时长,则停止比对进程并重启比对程序。
12.如权利要求1所述的硬件TCP/IP网络加速器自动测试方法,其特征在于,还包括:
在发送端根据依据所述测试次数记录的测试次数完成状态判断本次测试是最后一次测试的情况下,在接收端获取记录的日志中的所述测试次数的所有测试结果,统计所述所有测试结果中的报错率;根据记录的发送端板卡首次开始发送测试用例数据的时间和接收端板卡末次结束接收数据的时间计算得到所述测试次数的总数据传输时间,在接收端获取所有测试用例数据的总数据量,根据所述总数据量和所述总数据传输时间计算得到数据传输速率。
13.如权利要求1所述的硬件TCP/IP网络加速器自动测试方法,其特征在于,所述通信连接为TCP连接;和/或,所述发送端板卡和所述接收端板卡其中一个为待测试硬件TCP/IP网络加速器时,另一个为MELLANOX网卡。
14.如权利要求1所述的硬件TCP/IP网络加速器自动测试方法,其特征在于,
在接收端根据所述准备开始测试的信号开启接收端板卡的接收功能,包括:
在接收端根据所述准备开始测试的信号调用用于开启接收端板卡的接收功能的脚本,以开启接收端板卡的接收功能;
在发送端根据所述接收准备完毕的信号开启发送端板卡的发送功能,包括:
在发送端根据所述接收准备完毕的信号调用用于开启发送端板卡的发送功能的脚本,以开启发送端板卡的发送功能。
15.如权利要求1所述的硬件TCP/IP网络加速器自动测试方法,其特征在于,开始监测接收端板卡的数据接收状态,包括:
通过监测接收端板卡向接收端内存写入数据的状态,监测接收端板卡的数据接收状态。
16.一种硬件TCP/IP网络加速器自动测试方法,其特征在于,包括:
在发送端控制用网卡和接收端控制用网卡之间建立通信连接;
在接收端获取手动输入的测试次数,并通过所述通信连接将准备开始测试的信号发送至发送端;
在发送端根据所述准备开始测试的信号开启发送端板卡的发送功能;
在所述发送端板卡的发送功能开启完毕的情况下,在发送端通过所述通信连接发送发送准备完毕的信号至接收端;
在接收端根据所述发送准备完毕的信号开启接收端板卡的接收功能,以执行测试程序,使所述发送端板卡向所述接收端板卡发送测试用例数据;并且,在接收端开始监测接收端板卡的数据接收状态;
在接收端监测到所述接收端板卡接收完毕测试用例数据的情况下,在接收端根据依据所述测试次数记录的测试次数完成状态判断本次测试是最后一次测试的情况下,断开所述通信连接;
其中,所述接收端板卡和/或所述发送端板卡为待测试硬件TCP/IP网络加速器。
17.一种硬件TCP/IP网络加速器自动测试装置,其特征在于,包括:
通信连接建立模块,用于在发送端控制用网卡和接收端控制用网卡之间建立通信连接;
测试次数获取模块,用于在发送端获取手动输入的测试次数;
准备开始测试模块,用于通过所述通信连接将准备开始测试的信号发送至接收端;
接收功能开启模块,用于在接收端根据所述准备开始测试的信号开启接收端板卡的接收功能;
数据接收状态监测模块,用于开始监测接收端板卡的数据接收状态;
接收准备完毕通知模块,用于在所述接收端板卡的接收功能开启完毕的情况下,在接收端通过所述通信连接发送接收准备完毕的信号至发送端;
发送功能开启模块,用于在发送端根据所述接收准备完毕的信号开启发送端板卡的发送功能,以执行测试程序,使所述发送端板卡向所述接收端板卡发送测试用例数据;
完成一次测试通知模块,用于在接收端监测到所述接收端板卡接收完毕测试用例数据的情况下,通过所述通信连接发送完成本次测试的信号至发送端;
通信连接断开模块,用于在发送端根据依据所述测试次数记录的测试次数完成状态判断本次测试是最后一次测试的情况下,根据所述完成本次测试的信号断开所述通信连接;
其中,所述接收端板卡和/或所述发送端板卡为待测试硬件TCP/IP网络加速器。
18.如权利要求17所述的硬件TCP/IP网络加速器自动测试装置,其特征在于,还包括:
发送端计次模块,用于在发送端根据所述测试次数,记录测试次数完成状态;和/或,
接收端计次模块,用于在接收端根据所述测试次数,记录测试次数完成状态。
19.如权利要求17所述的硬件TCP/IP网络加速器自动测试装置,其特征在于,还包括:
比对结果获取模块,用于在接收端监测到所述接收端板卡接收完毕测试用例数据的情况下,获取执行比对程序后得到的发送端板卡发送的测试用例数据和接收端板卡实际接收的数据的比对结果;
重新测试信号发送模块,用于若比对结果为不一致,则获取本次测试的测试用例数据的用例标识,并将包含用例标识的重新测试信号发送至发送端;
报错重测试模块,用于在发送端根据重新测试信号启动执行测试程序,以额外重新进行设定次数的从发送端板卡向接收端板卡发送该用例标识对应的测试用例数据的测试;
报错分析结果输出模块,用于根据所述设定次数的测试的结果输出报错分析结果。
20.如权利要求17所述的硬件TCP/IP网络加速器自动测试装置,其特征在于,还包括:
进程监控模块,用于在接收端监测接收端板卡接收数据所用的接收进程与比对发送端板卡发送的测试用例数据和接收端板卡实际接收到的数据所用的比对进程,若接收进程阻塞超过设定时长,则跳过接收进程执行比对进程,若比对进行阻塞超过设定时长,则停止比对进程并重启比对程序。
21.如权利要求17所述的硬件TCP/IP网络加速器自动测试装置,其特征在于,还包括:
数据传输速率获取模块,用于在发送端根据依据所述测试次数记录的测试次数完成状态判断本次测试是最后一次测试的情况下,在接收端获取记录的日志中的所述测试次数的所有测试结果,统计所述所有测试结果中的报错率;根据记录的发送端板卡首次开始发送测试用例数据的时间和接收端板卡末次结束接收数据的时间计算得到所述测试次数的总数据传输时间,在接收端获取所有测试用例数据的总数据量,根据所述总数据量和所述总数据传输时间计算得到数据传输速率。
22.如权利要求17所述的硬件TCP/IP网络加速器自动测试装置,其特征在于,所述通信连接为TCP连接;和/或,所述发送端板卡和所述接收端板卡其中一个为待测试硬件TCP/IP网络加速器时,另一个为MELLANOX网卡。
23.一种电子设备,其特征在于,用于实现如权利要求1至16任一项所述方法的步骤。
24.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至16任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010681726.1A CN112003759B (zh) | 2020-07-15 | 2020-07-15 | 硬件tcp/ip网络加速器自动测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010681726.1A CN112003759B (zh) | 2020-07-15 | 2020-07-15 | 硬件tcp/ip网络加速器自动测试方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112003759A true CN112003759A (zh) | 2020-11-27 |
CN112003759B CN112003759B (zh) | 2022-06-24 |
Family
ID=73466473
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010681726.1A Active CN112003759B (zh) | 2020-07-15 | 2020-07-15 | 硬件tcp/ip网络加速器自动测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112003759B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113011117A (zh) * | 2021-02-18 | 2021-06-22 | 中科驭数(北京)科技有限公司 | 硬件加速板卡模拟仿真方法、系统和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7472311B1 (en) * | 2005-10-14 | 2008-12-30 | Sun Microsystems, Inc. | Method and apparatus for testing an interface between a TCP offload engine and an operating system |
CN101800669A (zh) * | 2009-02-06 | 2010-08-11 | 英业达股份有限公司 | 网口测试系统及方法 |
CN102231686A (zh) * | 2011-06-24 | 2011-11-02 | 北京天融信科技有限公司 | 一种实现网络安全设备自动化测试的系统和方法 |
CN110213126A (zh) * | 2019-05-24 | 2019-09-06 | 苏州浪潮智能科技有限公司 | 一种自动化检测网络链路crc报错的方法及装置 |
-
2020
- 2020-07-15 CN CN202010681726.1A patent/CN112003759B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7472311B1 (en) * | 2005-10-14 | 2008-12-30 | Sun Microsystems, Inc. | Method and apparatus for testing an interface between a TCP offload engine and an operating system |
CN101800669A (zh) * | 2009-02-06 | 2010-08-11 | 英业达股份有限公司 | 网口测试系统及方法 |
CN102231686A (zh) * | 2011-06-24 | 2011-11-02 | 北京天融信科技有限公司 | 一种实现网络安全设备自动化测试的系统和方法 |
CN110213126A (zh) * | 2019-05-24 | 2019-09-06 | 苏州浪潮智能科技有限公司 | 一种自动化检测网络链路crc报错的方法及装置 |
Non-Patent Citations (1)
Title |
---|
王祎辰: "基于FPGA的万兆以太网TCP硬件协议栈设计", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113011117A (zh) * | 2021-02-18 | 2021-06-22 | 中科驭数(北京)科技有限公司 | 硬件加速板卡模拟仿真方法、系统和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112003759B (zh) | 2022-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111786855B (zh) | 一种网卡的压力测试方法、装置、电子设备及存储介质 | |
CN111459794A (zh) | 通信网络测试方法、装置、计算机设备和存储介质 | |
CN113255271B (zh) | 一种芯片io引脚自动验证系统及方法 | |
US20090204851A1 (en) | Method and System for Software Testing | |
CN112003759B (zh) | 硬件tcp/ip网络加速器自动测试方法及装置 | |
CN109086175B (zh) | 一种板卡测试方法及装置 | |
CN109522181B (zh) | 一种分布式存储系统的性能测试方法、装置和设备 | |
CN101800672B (zh) | 设备检测方法和设备 | |
US10613963B2 (en) | Intelligent packet analyzer circuits, systems, and methods | |
CN114817213A (zh) | 一种服务器数据库调优测试方法、装置、终端及存储介质 | |
CN108009086B (zh) | 基于用例分解和功能学习的系统自动化测试方法 | |
US20220206887A1 (en) | Bus monitoring device and method, storage medium, and electronic device | |
CN117271178A (zh) | 一种参数配置方法、一种板卡故障诊断的方法 | |
CN101227346B (zh) | 通信设备自动化测试过程中故障监控方法与装置 | |
CN116841874A (zh) | 统一诊断服务功能的测试方法、装置、存储介质和电子设备 | |
US7721260B2 (en) | Embedded Test I/O Engine | |
CN113660139B (zh) | 一种基于多种消息层通信v2x协议一致性检测方法 | |
CN115616372A (zh) | 故障注入测试方法和系统 | |
CN111666200A (zh) | 一种pc软件冷启动耗时的测试方法及终端 | |
CN114925639A (zh) | 一种soc芯片仿真验证数据一致性的检测方法 | |
CN113032196A (zh) | 一种芯片测试方法及装置 | |
CN110958079A (zh) | 一种测试方法、装置及测试系统 | |
CN116382968B (zh) | 外部设备的故障检测方法以及装置 | |
CN113778770B (zh) | 一种用于硬盘芯片的检测方法及系统 | |
CN110519116B (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 | ||
CB02 | Change of applicant information |
Address after: 100089 room 801, 8 / F, building 3, yard 1, 81 Beiqing Road, Haidian District, Beijing Applicant after: YUSUR TECHNOLOGY Co.,Ltd. Address before: 100190 scientific research complex building, Institute of computing technology, Chinese Academy of Sciences, no.6, Academy of Sciences South Road, Haidian District, Beijing Applicant before: YUSUR TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |