一种测试方法和装置与流程

文档序号:18898660发布日期:2019-10-18 21:37阅读:158来源:国知局
一种测试方法和装置与流程

本发明涉及通信技术领域,特别是涉及一种测试方法和一种测试装置。



背景技术:

随着移动通讯向第五代移动通信技术(the5thgenerationmobilecommunicationtechnology,5g)的演进,其商用领域和业务场景,如虚拟增强现实、自动驾驶、超高清视频、智慧城市等应用,对网络带宽、可靠性、时延性、安全性提出了更高的要求,因此需要对5g通信系统中各设备的网络性能进行测试,如测试网络传输速率、吞吐量等等。

在测试过程中,通常采用专用仪器仪表如千兆/万兆高速以太网测试分析仪、比特误码率测试仪,进行网络性能测试,但专用仪器仪表的采购、维护的成本高;且在测试过程人工参与度高,导致测试效率低。



技术实现要素:

本发明实施例所要解决的技术问题是提供一种测试方法,以降低测试成本和提高测试效率。

相应的,本发明实施例还提供了一种测试装置,用以保证上述方法的实现及应用。

为了解决上述问题,本发明公开了一种测试方法,应用于网络性能测试系统,所述网络性能测试系统包括测试平台、待测设备和终端设备,其中,所述待测设备和终端设备,均分别与测试平台连接,所述方法包括:测试平台检测终端设备登录,为所述终端设备创建对应的虚拟机;所述虚拟机接收终端设备发送的网络性能测试指令,所述网络性能测试指令包括数据包的构造信息和待测设备的设备信息;所述虚拟机依据所述构造信息构造第一数据包,并将所述第一数据包发送至所述设备信息对应的待测设备;所述虚拟机接收第二数据包,所述第二数据包是待测设备针对第一数据包发送的响应包;所述虚拟机依据所述网络性能测试指令对第一数据包和第二数据包进行分析,将分析结果返回给终端设备;其中,所述待测设备包括以下至少一种:核心网设备、基站和用户终端。

可选地,所述为所述终端设备创建对应的虚拟机,包括:测试平台采用设定虚拟引擎创建虚拟机;在测试平台中虚拟机的用户空间和物理机的用户空间,分别部署对应的收发包程序,所述收发包程序采用轮询方式收发数据。

可选地,所述将所述第一数据包发送至所述设备信息对应待测设备,包括:虚拟机对应的收发包程序依据所述构造信息构造第一数据包,并将第一数据包通过虚拟机的内核发送至物理机的用户空间;物理机对应的收发包程序,通过物理机的内核将所述第一数据包发送至所述设备信息对应的网卡;网卡依据所述设备信息将所述第一数据包发送至对应的待测设备。

可选地,所述虚拟机依据所述网络性能测试指令对第一数据包和第二数据包进行分析,包括:所述虚拟机确定所述网络性能测试指令对应测试的网络性能类型,所述网络性能类型包括以下至少一种:网络传输速率、网络延迟、网络吞吐量、抖动、丢帧率;依据所述性能类型,对所述第一数据包和第二数据包进行分析。

可选地,还包括:所述测试平台检测终端设备退出,销毁所述终端设备对应的虚拟机。

本发明实施例还提供了一种测试装置,应用于网络性能测试系统中的测试平台中,所述装置包括:创建模块,用于检测终端设备登录,为所述终端设备创建对应的虚拟机;第一接收模块,用于调用虚拟机接收终端设备发送的网络性能测试指令,所述网络性能测试指令包括数据包的构造信息和待测设备的设备信息;构造模块,用于调用虚拟机依据所述构造信息构造第一数据包,并将所述第一数据包发送至所述设备信息对应的待测设备;第二接收模块,用于调用虚拟机接收第二数据包,所述第二数据包是待测设备针对第一数据包发送的响应包;分析模块,用于调用虚拟机依据所述网络性能测试指令对第一数据包和第二数据包进行分析,将分析结果返回给终端设备;其中,所述待测设备包括以下至少一种:核心网设备、基站和用户终端。

可选地,所述创建模块,用于采用设定虚拟引擎创建虚拟机;在测试平台中虚拟机的用户空间和物理机的用户空间,分别部署对应的收发包程序,所述收发包程序采用轮询方式收发数据。

可选地,所述构造模块,用于调用虚拟机对应的收发包程序依据所述构造信息构造第一数据包,并将第一数据包通过虚拟机的内核发送至物理机的用户空间;调用物理机对应的收发包程序,通过物理机的内核将所述第一数据包发送至对应的网卡;调用网卡依据所述设备信息将所述第一数据包发送至对应的待测设备。

可选地,所述分析模块,用于调用所述虚拟机确定所述网络性能测试指令对应测试的网络性能类型,所述网络性能类型包括以下至少一种:网络传输速率、网络延迟、网络吞吐量、抖动、丢帧率;依据所述性能类型,对所述第一数据包和第二数据包进行分析。

可选地,还包括:销毁模块,用于检测终端设备退出,销毁所述终端设备对应的虚拟机。

与现有技术相比,本发明实施例包括以下优点:

本发明实施例中,测试平台在检测终端设备登录后,可以为所述终端设备创建对应的虚拟机,由虚拟机完成对待测设备的性能测试,即在用户在终端设备中输入数据包的构造信息并发送网络性能测试指令后,虚拟机可接收终端设备发送的网络性能测试指令并构造第一数据包,然后将所述第一数据包发送至对应的待测设备;在待测设备对所述第一数据包进行响应后,虚拟机可接收待测设备发送的第二数据包,并对第一数据包和第二数据包进行分析,再将分析结果返回给终端设备;进而可将核心网设备、基站和用户终端等待测设备中任意一种或多种设备的网络性能测试的分析结果返回给用户。本发明实施例中的测试平台相比于专用仪器仪表的成本相对较低,且测试过程中用户只需通过终端设备输入数据包的构造信息,即可获得对应测试性能的分析结果,测试效率高。

附图说明

图1是本发明实施例的一种网络性能测试系统结构框架示意图;

图2是本发明的一种测试方法实施例的步骤流程图;

图3是本发明实施例的另一种网络性能测试系统结构框架示意图;

图4是本发明的另一种测试方法实施例的步骤流程图;

图5是本发明实施例的一种测试平台的系统框架图;

图6是本发明实施例的一种收发包程序的处理流程图;

图7是本发明实施例的一种虚拟机抓包流程图;

图8是本发明的一种测试装置实施例的结构框图;

图9是本发明的另一种测试装置实施例的结构框图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

本发明实施提供的一种测试方法,应用于网络性能测试系统中,如图1所示,所述网络性能测试系统包括测试平台、待测设备和终端设备(如pc(personalcomputer,个人计算机)、工作站等),所述终端设备和待测设备,均分别与所述测试平台连接,所述网络测试系统中的终端设备和待测设备,均可以是多个;其中,所述待测设备可以是核心网设备(如epc(evolvedpacketcore,演进的分组核心网))、基站和用户终端(如移动终端)等待测设备中的任意一种设备,也可以是其中的任意多种设备;所述测试平台包括服务器集群,所述服务器可以是通用型服务器。

参照图2,示出了本发明的一种测试方法实施例的步骤流程图,具体可以包括如下步骤:

步骤201、测试平台检测终端设备登录,为所述终端设备创建对应的虚拟机。

步骤202、虚拟机接收终端设备发送的网络性能测试指令,所述网络性能测试指令包括数据包的构造信息和待测设备的设备信息。

本发明实施例中,用户可通过终端设备登录测试平台,以指示测试平台完成网络性能测试;即用户采用终端设备登录测试平台时,测试平台可检测终端设备登录,然后可为所述终端设备在测试平台中创建对应的虚拟机,进而由所述虚拟机完成对应的网络性能测试。待测试平台完成创建虚拟机后,可为终端设备提供对应的虚拟用户图形界面,用户可在终端设备展示的虚拟用户图形界面中选择需要测试的网络性能和对应的待测设备;其中,用户在选择需要测试的网络性能后,可在界面中输入数据包的构造信息如发包速率、数据包内容等等并执行测试操作后,终端设备即可生成对应的网络性能指令,然后将所述网络性能指令发送至对应的虚拟机中;其中,所述网络性能指令用于指示对应虚拟机进行网络性能测试,可包括所述构造信息和待测设备的设备信息。进而虚拟机可以接收终端设备发送的网络性能测试指令,然后依据所述网络性能测试指令进行对应的网络性能测试。其中,所述设备信息用于描述待测设备,可包括多种信息,如待测设备的设备标识如设备id、待测设备的ip(internetprotocol,网络之间互连协议)地址和mac(mediaaccesscontrol,媒体访问控制)地址和待测设备的配置信息如基站类型,基站/核心网设备的网络性能、机框或单板类型号、固件版本号等等,以及待测设备与测试平台的连接端口信息等等。

步骤203、虚拟机依据所述构造信息构造第一数据包,并将所述第一数据包发送至所述设备信息对应的待测设备。

步骤204、所述虚拟机接收第二数据包,所述第二数据包是待测设备针对第一数据包发送的响应包。

虚拟机接收到所述网络性能测试指令后,可对所述网络性能测试指令进行解析,然后依据所述解析的结果中的构造信息构造对应的第一数据包,然后依据解析结果中的设备信息,确定所述第一数据包对应的目的地址,进而将所述第一数据发送至所述设备信息对应的待测设备。待测设备接收到所述第一数据包后,可对所述第一数据包进行响应,生成对应的第二数据包,例如,若待测设备为核心网设备,虚拟及发送网络数据请求,则核心网设备可依据所述网络数据请求获取对应的数据,并将所述数据打包生成第二数据包,将所述第二数据包返回给虚拟机。其中,所述第一数据包的类型可按照需求设置,如vlan(virtuallocalareanetwork,虚拟局域网)包、arp(addressresolutionprotocol,地址解析协议)包、udp(userdatagramprotocol,用户数据报协议)包、ftp(filetransferprotocol,文件传输协议)包和http(hypertexttransferprotocol,超文本传输协议)包等;对应的,第二数据包的类型与第一数据包的类型相对应。

本发明实施例中,若所述网络性能测试指令对应构造的数据包多于一个,则所述虚拟机依据所述网络性能测试指令构造对应数量的第一数据包,进而所述第一数据包构成第一数据流,然后向对应的待测设备发送该数据流;对应的,待测设备接收到第一数据流后,对第一数据流中各第一数据包进行处理得到对应的第二数据包,然后采用第二数据包构成第二数据流,将所述第二数据流返回给虚拟机。虚拟机可接收所述第二数据包,然后可通过对第一数据包和第二数据包的比对,确定网络性能的测试结果。

步骤205、所述虚拟机依据所述网络性能测试指令对第一数据包和第二数据包进行分析,将分析结果返回给终端设备。

本发明实施例中,测试的网络性能不同,对应对数据包的分析方法不同,例如测试网络延迟,可依据对特定序列号的数据包,通过计算在指定端口发出与接收的时间戳差值确定。又例如测试丢帧率,可分析指定端口总发包数与收包数差值等等;因此虚拟机可依据所述网络性能测试指令确定对应需要测试的网络性能,再对所述第一数据包和第二数据包进行分析,得到对应的分析结果(即网络性能测试结果),然后将所述分析结果返回给对应的终端设备。终端设备可对所述分析结果进行展示如丢帧率:0.3%,网络延迟:0.1s等等,以使用户获取对应网络性能的测试结果。

本发明一个可选实施例中,所述测试平台可支持同时多个终端设备登测试平台,然后同时为各终端设备创建对应的虚拟机,由各虚拟机完成对应终端设备的网络性能的测试;即支持多用户同时在线对待测设备的网络性能进行测试。当然所述测试平台也可以支持同时多个待测设备的接入,即可同时对多个待测设备的网络性能进行测试。

综上,本发明实施例中,测试平台在检测终端设备登录后,可以为所述终端设备创建对应的虚拟机,由虚拟机完成对待测设备的性能测试,即在用户在终端设备中输入数据包的构造信息并发送网络性能测试指令后,虚拟机可接收终端设备发送的网络性能测试指令并构造第一数据包,然后将所述第一数据包发送至对应的待测设备;在待测设备对所述第一数据包进行响应后,虚拟机可接收待测设备发送的第二数据包,并对第一数据包和第二数据包进行分析,再将分析结果返回给终端设备;进而可将核心网设备、基站和用户终端等待测设备中任意一种或多种设备的网络性能测试的分析结果返回给用户。本发明实施例中的测试平台相比于专用仪器仪表的成本相对较低,且测试过程中用户只需通过终端设备输入数据包的构造信息即可获得对应测试性能的分析结果,测试效率高。

本发明的另一个实施例中,提供了一种测试平台框架,以及基于该测试平台框架的数据包收发程序,并将所述收发程序部署在测试平台上,以提高测试平台的网络数据的处理能力,进而提高测试平台的测试效率。

本发明的另一个实施例中,可为所述测试平台添加磁盘阵列,以增加测试平台的数据吞吐效率;其中,所述磁盘阵列可通过光纤交换机连接至测试平台上,所述待测设备也可通过光纤交换机连接至测试平台上,所述用户终端可通过以太交换机连接至测试平台上,可参照图3,示出了本发明的另一种网络性能测试系统结构框架示意图。进而可在该网络性能测试系统的基础上,实现本发明实施例的测试方法,具体如下:

参照图4,示出了本发明的另一种测试方法实施例的步骤流程图,具体可以包括如下步骤:

步骤401、测试平台检测终端设备登录,测试平台采用设定虚拟引擎创建虚拟机。

步骤402、在虚拟机的用户空间和物理机的用户空间,分别部署对应的收发包程序。

本发明实施例中,测试平台可与终端设备通过以太网交换机连接,以实现测试平台与终端设备的数据交互,进而用户可通过终端设备登录测试平台,通过指示测试平台完成网络性能测试。用户在采用终端设备登录测试平台时,测试平台可检测终端设备登录,然后可为所述终端设备在测试平台中创建对应的虚拟机,进而由所述虚拟机完成对应的网络性能测试。测试平台在创建虚拟机时,为提高虚拟机的网络数据处理能力,可采用设定虚拟引擎创建虚拟机,所述设定虚拟引擎可按照需求设置,如qemu(quickemulator,快速模拟器)+kvm(kernel-basedvirtualmachine,基于内核的虚机);虚拟机创建成功后,所述测试平台可包括虚拟机和物理机,所述虚拟机包括用户空间和内核,所述物理机包括用户空间、内核和硬件资源如网卡。然后在虚拟机的用户空间和物理机的用户空间部署对应的收发包程序,以采用收发包程序发送和接收数据包;当然还可以在虚拟机的用户空间和物理机的用户空间部署其他的程序如驱动接口程序等等,在此不一一举例。其中,所述收发包程序是采用轮询方式收发数据的,如基于dpdk(dataplanedevelopmentkit,数据平面开发套链)的收发包程序;进而可提高测试平台的数据处理能力。可参照图5,示出了本发明实施例的一种测试平台的系统框架图,其中,所述guestvmo(虚拟机)的kernel(内核)中包括virtiodrive(半虚拟化hypervisor(管理程序)中位于设备之上的抽象层驱动),即半虚拟化驱动,用于实现数据通信;所述测试平台中host(物理机)的userspace(用户空间)还可以包括openvswitch(开放虚拟交换标准),并在userspace采用vhost-user(虚拟机管理系统-用户态)架构,以减少用户态/内核态切换时间和包的拷贝次数,从而更进一步的提升了性能;所述host的userspace还可以包括pmd(physicalmediadependent,物理介质关联接口),用于转发数据;所述host的kernel中包括bridge(桥),硬件资源包括nic(networkinterfacecard,网卡),所述nic包括多个端口,userspace的数据通过内核的bridge与nic进行通信。当然,本发明实施例还可以在guestvmo的userspace部署其他功能的程序如抓包程序、数据分析程序等等,在此不作限制。其中,所述pktgen是包生成器(即收发包程序,是以dpdk为基础的),所述pdump是抓包程序(包含libpcap库和libpcap-dev库),在后续说明收发程序和抓包程序的数据处理过程。

本发明一个示例中,以基于pktgen(packetgenetor,包生成器)的应用层收发包程序为例,说明在虚拟机的用户空间部署对应的收发包程序,其中,所述收发包程序是采用dpdk的支持库,具体包括子步骤21-子步骤23:

子步骤21、安装libpcap库,编译dpdk、pktgen等源码,设置环境变量。

子步骤22、向内核插入dpdk模块,分配大页内存,绑定网卡驱动。

子步骤23、设置pktgen启动参数,将cpu逻辑核与网卡端口进行绑定,设置端口内存大小。

步骤403、所述虚拟机接收终端设备发送的网络性能测试指令。

待测试平台完成创建虚拟机后,可为终端设备提供对应的虚拟用户图形界面,用户可在终端设备展示的虚拟用户图形界面中执行测试的操作。具体的:所述用户图形界面中可提供用于各种不同类型的网络性能的测试,所述网络性能至少包括以下一种:网络传输速率、网络延迟、网络吞吐量、抖动、丢帧率,当然还可以包括其他的网络性能如网络带宽等,在此不一一举例;用户可在虚拟用户图形界面选取需要测试的网络性能和需要测试的待测设备,然后虚拟用户图形界面可展示数据包构造界面,用户可在数据包构造界面输入对应的构造信息如数据包的协议类型、数据包的长度、数据包填充内容等等,然后执行测试操作。例如确定协议类型是udp,即确定用户需要构造udp包,则虚拟用户图形界面的数据链路层(l2)对应的页面中,需要用户填写源mac地址和目标mac,网络层(l3)对应的页面,需要填写源ip地址和目的ip地址,传输层(l4)对应的页面,需要用户填写源端口号和目的端口号;若要构造由udp包组成的一个数据流,则设置数据流中数据包数量、数据流中每个数据包的帧长(如递增、递减、随机长度等)、端口发送速率等等。当然还可以设置多个数据流,按mac地址及ip构造多流,如发送10个流,在发端可添加多流规则,如mac地址按00:00:00:00:00:01步进递增,ip地址按00:00:00:01递增。终端设备可依据用户选择的网络性能、待测设备和输入的构造信息,生成对应的网络性能测试指令,并发送至所述终端设备对应的虚拟机。进而虚拟机可以接收终端设备发送的网络性能测试指令,然后依据所述网络性能测试指令进行对应的网络性能测试。

步骤404、虚拟机对应的收发包程序依据所述构造信息构造第一数据包,并将第一数据包通过虚拟机的内核发送至物理机的用户空间。

步骤405、物理机对应的收发包程序,通过物理机的内核将所述第一数据包发送至对应的网卡。

步骤406、网卡依据所述设备信息将所述第一数据包发送至对应的待测设备。

虚拟机接收到所述网络性能测试指令后,可对所述网络性能指令进行解析,确定对应的构造信息和待测设备的设备信息;然后调用所述虚拟机对应的收发包程序依据所述构造信息构造第一数据包,例如,构造udp包,虚拟机可将构造信息中的参数,填充至udp数据帧的对应位置,生成udp包;然后将所述第一数据包发送至所述设备信息对应的待测设备,具体的,所述虚拟机对应的收发包程序可以将所述第一数据包由虚拟机的用户空间,发送至虚拟机内核的virtiodrive,再由virtiodrive发送至物理机的用户空间;所述物理机可调用对应的收发包程度接收所述第一数据包,并将所述第一数据包发送至pmd,pmd将所述第一数据包发送至内核中的bridge,所述bridge再依据设备信息将所述第一数据包转发给对应的网口。本发明实施例中,所述测试平台和待测设备可通过光纤交换连接,进而网口可依据设备信息通过光纤交换机将所述第一数据包发送给对应的待测设备;其中,所述测试平台与待测设备可处于同一网段。

步骤407、所述虚拟机接收第二数据包。

待测设备接收到所述第一数据包后,可对所述第一数据包进行响应,生产对应的第二数据包,例如当被测设备是核心网设备epc(evolvedpacketcore,核心分组网演进)时,当测试平台发送下行数据流,假设测试平台和被测设备均是通过10ge网卡连接的,通过发送10000个256字节帧长、带序列号tag、带时间戳信息的udp包,按100%速率发送;第一数据包的格式如表1所示:

表1

其中,eth(以太网)字段包括测试平台的mac地址、待测设备的mac地址和以太网标识位;

ip字段包括测试平台的ip地址和待测设备的ip地址;

udp字段包括测试平台的端口号和待测设备的端口号;

payload(负载)字段用于承载负载数据;

fcs(帧校验序列)字段用于填充校验序列。

若待测设备对第一数据包正常处理后,返回第二数据包,格式如表2所示:

表2

其中,eth(以太网)字段包括测试平台的mac地址、待测设备的mac地址和以太网标识位;

第二个字段-ip字段包括测试平台的ip地址和待测设备的ip地址;

第三个字段-udp字段包括测试平台的端口号和待测设备的端口号;

gtp-u(用户面的gprs(通用分组无线服务技术)隧道协议)字段用于填充gtp-u协议标识;

第五个字段-ip字段是待测设备内层的ip地址;

第六个字段-udp字段是待测设备内层的端口号;

payload(负载)字段用于承载负载数据;

fcs(帧校验序列)字段用于填充校验序列。

然后通过光纤交换机返回给对应的网卡,由所述网卡将所述第二数据包发送给虚拟机,进而虚拟机可接收所述第二数据包。其中,第二数据包由网卡发送至虚拟机的流程与虚拟机发送第一数据包的流程相反,即网卡-内核的bridge-pmd-物理机的收发包程序-虚拟机的virtiodrive-虚拟机的收发包程序。

本发明的一个示例中,可在上一个示例的基础上,对虚拟机对应的收发程序初始化和数据包收发的过程进行说明,具体可参照图6,示出了本发明实施例的一种收发包程序的处理流程图;具体可包括步骤601-步骤609:

步骤601、调用pktgen_cpu_init()初始化cpu,以及调用rte_eal_init()初始化环境抽象层。

步骤602、调用pktgen_parse_args(),解析命令行参数、获取端口、cpu核数。

步骤603、调用pktgen_config_ports(),驱动网卡、创建内存池的映射、以及初始化发送接收队列。

步骤604、调用pktgen_launch_one_lcore(),开启数据包收发模式。

步骤605、接收应用层程序的网络性能测试指令。

步骤606、调用ui_server_udp_creat(),创建用户态多用户通信进程,完成解析、数据构造等处理,构造第一数据包。

步骤607、从网卡的端口发送第一数据包。

步骤608、从网卡的端口接收第二数据包。

步骤609、调用ui_server_udp_creat(),完成数据包解析等处理。

本发明实施例中,所述收发包程序可以包括数据分析的功能,也可不包括数据分析的功能;若所述收发包程序包括数据分析的功能,则虚拟机的收发包程序接收到所述二数据包后,可对第二数据包进行解析,然后依据第一数据包对应的解析结果和第二数据包的解析结果进行分析。若所述收发包程序不包括数据分析的功能,可虚拟机的收发包程序接收到所述二数据包后,可对第二数据包进行解析,然后将第一数据包对应的解析结果和第二数据包的解析结果发送至用户空间的数据分析程序,由数据分析程序完成对解析的数据的分析。其中,所述虚拟机依据所述网络性能测试指令对第一数据包和第二数据包,进行分析的步骤具体如下:

步骤408、所述虚拟机确定所述网络性能测试指令对应测试的网络性能类型。

步骤409、依据所述性能类型,对所述第一数据包和第二数据包进行分析。

步骤410、将分析结果返回给终端设备。

本发明实施例中,可依据所述网络性能测试指令确定对应测试的性能类型,然后依据所述网络性能类型对所述第一数据包对应的解析结果和第二数据包对应的解析结果进行分析,确定该网络性能类型对应的分析结果,并将所述分析结果返回至终端设备;所述终端设备可对所述分析结果进行展示。

以下以几个性能类型为例,对依据所述性能类型,对所述第一数据包和第二数据包进行分析进行说明:

例如,当被测设备是核心网设备epc时,当测试平台发送下行数据流,假设测试平台和被测设备均是通过10ge网卡连接的,通过发送10000个256字节帧长、带序列号tag、带时间戳信息的udp数据包,按100%速率发送。

1、测试丢帧率,则可以对比第一数据包和第二数据包的数量。

若测试平台未接收到第二数据包,在排除环境搭建和软件配置问题的情况下,可说明待测设备没有正确转发出来,即确定故障或软硬件配置问题。

若测试平台收到部分第二数据包,可根据发送的第一数据包数量和接收的第二数据包数量的差值,统计出单位时间内该端口丢帧率。

若测试平台发送的第一数据包与接收的第二数据包数量一致,则确定丢帧率为0。

2、测试乱序。

选取设定时长的第一数据包和对应的第二数据包,将第一数据包的序列号第二数据包的序列号进行比对,判断第二数据包是否乱序;若第二数据包的序列号与第一数据包的序列号不同,则统计乱序的数据包数量,并计算乱序的数据包数量与第二数据包数量的比值,则该比值作为乱序率。若第二数据包的序列号与第一数据包的序列号相同,则确定第二数据包未发生乱序。

3、测试网络时延、抖动。

若测试平台发送的第一数据包与接收的第二数据包数量一致,且校验均通过,则会提取数据部分内容,根据发送的时间戳和接收的时间戳,计算出平均时延、最大时延、最小时延,及平均抖动、最大、最小抖动等性能。

当然还可以通过对第一数据包和第二数据包的分析,测试其他的网络性能如网络吞吐量、网络传输速率等等,在此不一一举例说明。

步骤411、所述测试平台检测终端设备退出,销毁所述终端设备对应的虚拟机。

在完成网络性能测试后,用户可通过终端设备退出测试平台,所述测试平台可检测到终端设备退出,可销毁所述终端设备对应的虚拟机,释放对应的资源如cpu、总线和内存等。

本发明一个可选实施例中,虚拟机的用户空间还可以部署抓包工具,抓取发送/接收的数据,以对设定时间段内发送/接收的数据进行分析。本发明的一个示例中,可采用基于libpcap和libpcap-dev库进行修改封装pdump应用来实现,可参照图7,示出了本发明实施例的一种虚拟机抓包流程图,具体包括步骤701-步骤714:

步骤701、调用rte_pdump_init(),初始化抓包框架、创建线程和服务端socke(套接字)。

步骤702、调用rte_pdump_enable(),在某端口队列开启抓包。

步骤703、调用rte_pdump_enable_by_deviceid(),在某设备id和队列抓包。

步骤704、pdump库创建客户端socket,发送"pdumpenable"请求flag到服务端。

步骤705、服务端侦听,注册回调函数。

步骤706、服务端复制数据包到内存池,进入队列,并返回应答消息。

步骤707、客户端socket关闭。

步骤708、调用rte_pdump_disable(),在某端口队列停止抓包。

步骤709、调用rte_pdump_disable_by_deviceid(),停止在一个设备id(如pci地址)和队列抓包。

步骤710、pdump库创建客户端socket,发送"pdumpdisable"请求flag到服务端。

步骤711、服务端侦听,删除回调函数。

步骤712、服务端发送处理结果到客户端。

步骤713、客户端socket关闭。

步骤714、调用rte_pdump_uninit(),清理并退出抓包框架。

上述客户端socke和服务端socke是虚拟机中的一对虚拟端口。

综上,本发明实施例中,测试平台在检测终端设备登录后,可以为所述终端设备创建对应的虚拟机,由虚拟机完成对待测设备的性能测试,即在用户在终端设备中输入数据包的构造信息并发送网络性能测试指令后,虚拟机可接收终端设备发送的网络性能测试指令并构造第一数据包,然后将所述第一数据包发送至对应的待测设备;在待测设备对所述第一数据包进行响应后,虚拟机可接收待测设备发送的第二数据包,并对第一数据包和第二数据包进行分析,再将分析结果返回给终端设备;进而可将核心网设备、基站和用户终端中任意一种或多种设备的网络性能测试的分析结果返回给用户。本发明实施例中的测试平台相比于专用仪器仪表的成本相对较低,且测试过程中用户只需通过终端设备输入数据包的构造信息,即可获得对应测试性能的分析结果,测试效率高。且可支持多用户登录,即可同时模拟多用户在线的状态,测试待测设备的网络性能,测试结果更准确。

进一步,本发明实施例在创建虚拟机时,采用设定虚拟引擎创建虚拟机;以及在测试平台中虚拟机的用户空间和物理机的用户空间,分别部署对应的收发包程序,所述收发包程序采用轮询方式收发数据;提高了虚拟机数据处理的效率,进而提高了测试效率。

再次,本发明实施例中,所述测试平台检测终端设备退出,销毁所述终端设备对应的虚拟机,进而能够提高虚拟平台资源利用率。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。

本发明还提供了一种测试装置,应用于网络性能测试系统中的测试平台中,具体如下:

参照图8,示出了本发明一种测试装置实施例的结构框图,具体可以包括如下模块:创建模块801、第一接收模块802、构造模块803、第二接收模块804和分析模块805,其中,

创建模块801,用于检测终端设备登录,为所述终端设备创建对应的虚拟机;

第一接收模块802,用于调用虚拟机接收终端设备发送的网络性能测试指令,所述网络性能测试指令包括数据包的构造信息和待测设备的设备信息;

构造模块803,用于调用虚拟机依据所述网络性能测试指令构造第一数据包,并将所述第一数据包发送至所述设备信息对应的待测设备;

第二接收模块804,用于调用虚拟机接收第二数据包,所述第二数据包是待测设备针对第一数据包发送的响应包;

分析模块805,用于调用虚拟机依据所述网络性能测试指令对第一数据包和第二数据包进行分析,将分析结果返回给终端设备。

参照图9,示出了本发明一种测试装置实施例的结构框图,所述装置还可以包括:销毁模块806,用于检测终端设备退出,销毁所述终端设备对应的虚拟机。

本发明另一个实施例中,所述创建模块801,用于采用设定虚拟引擎创建虚拟机;在测试平台中虚拟机的用户空间和物理机的用户空间,分别部署对应的收发包程序,所述收发包程序采用轮询方式收发数据。

本发明另一个实施例中,所述构造模块803,用于调用虚拟机对应的收发包程序依据所述构造信息构造第一数据包,并将第一数据包通过虚拟机的内核发送至物理机的用户空间;调用物理机对应的收发包程序,通过物理机的内核将所述第一数据包发送至对应的网卡;网卡依据所述设备信息将所述第一数据包发送至对应的待测设备。

本发明另一个实施例中,所述分析模块805,用于调用所述虚拟机确定所述网络性能测试指令对应测试的网络性能类型,所述网络性能类型包括以下至少一种:网络传输速率、网络延迟、网络吞吐量、抖动、丢帧率;依据所述性能类型,对所述第一数据包和第二数据包进行分析。

本发明实施例中,测试平台在检测终端设备登录后,可以为所述终端设备创建对应的虚拟机,由虚拟机完成对待测设备的性能测试,即在用户在终端设备中输入数据包的构造信息并发送网络性能测试指令后,虚拟机可接收终端设备发送的网络性能测试指令并构造第一数据包,然后将所述第一数据包发送至对应的待测设备;在待测设备对所述第一数据包进行响应后,虚拟机可接收待测设备发送的第二数据包,并对第一数据包和第二数据包进行分析,再将分析结果返回给终端设备;进而可将核心网设备、基站和用户终端等待测设备中任意一种或多种设备的网络性能测试的分析结果返回给用户。本发明实施例中的测试平台相比于专用仪器仪表的成本相对较低,且测试过程中用户只需通过终端设备输入数据包的构造信息,即可获得对应测试性能的分析结果,测试效率高。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本发明所提供的一种测试方法和一种测试装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1