接入网协议栈测试方法、系统及存储介质与流程

文档序号:29802776发布日期:2022-04-23 20:43阅读:387来源:国知局
接入网协议栈测试方法、系统及存储介质与流程

1.本技术涉及5g通信技术领域,尤其涉及一种接入网协议栈测试方法、系统及存储介质。


背景技术:

2.相关技术中,5g,也就是第五代移动通信技术,包括接入网ng-ran、核心网5gc及相关支撑系统,而接入网的架构包括集中处理单元cu(简称cu网元)和分布式处理单元du(简称du网元),cu网元与核心网5gc的交互消息的接口为ng口,cu网元与du网元的之间的交互消息的接口为f1口。然而,考虑到多平台移植与兼容性,以及不同厂商之间的互操作,第三代合作伙伴计划3gpp中规定了各接口间必须使用指定的端口号,在协议栈的软件代码实现过程中,常用的实现方案是各网元之间基于套接字socket方式进行通信,并且每一个网元都需要配一套ip+端口号进行socket通信。
3.接入网协议栈在多网元、多接口及多连接场景下进行系统级测试时,为了符合socket通信环境,通常需要对测试用例进行配置,修改方式采用手动修改并使用非实际应用环境的端口号来对不同网元进行通信,然而,针对不同的多网元场景,每一场景都需要人工修改所配置的参数,操作繁琐,也容易产生人工修改所带来的失误;此外,采用非实际应用环境的端口号,并不是真实的实际应用场景,测试结果并不能完全反应实际应用情况,测试效果不佳。


技术实现要素:

4.本技术旨在至少解决现有技术中存在的技术问题之一。为此,本技术提出一种接入网协议栈测试方法、系统及存储介质,能够解决端口号相互冲突的问题,不需人工操作,方便快捷,并且测试时更加接近实际应用场景,测试结果更加准确。
5.根据本技术的第一方面实施例的接入网协议栈测试方法,应用于测试平台,包括:
6.接管预设的操作系统的网络服务;
7.通过接管后的网络服务截取预设的第一网元的第一通信请求;其中,所述第一通信请求包括第一端口号;
8.当所述第一端口号不可用,根据预设的第一通信策略,获取预设的第一可用端口号,并将所述第一可用端口号和所述第一网元进行绑定;
9.根据预设的第二网元的连接请求中的所述第一端口号,查找所述第一网元对应的第一识别信息,获取第一识别信息对应的所述第一可用端口号;
10.通过所述第一可用端口号和所述第二网元预设的第二端口号,建立所述第一网元和所述第二网元的链路;其中,所述第二端口号与所述第一可用端口号不同。
11.根据本技术的一些实施例,所述当所述第一端口号不可用,根据预设的第一通信策略,获取预设的第一可用端口号,并将所述第一可用端口号和所述第一网元进行绑定,包括:
12.获取预设的端口数据集;其中,所述端口数据集包括多个正在使用的第三端口号;
13.将所述第一端口号与每一所述第三端口号进行比较并判断是否相同;
14.当所述第一端口号与所述第三端口号相同时,从预设的可用端口链表中提取所述第一可用端口号;
15.将所述第一端口号替换为第一可用端口号,再将所述第一可用端口号与所述第一网元进行绑定;
16.将所述第一可用端口号、所述第一端口号、所述第一通信请求中的第一识别信息存储到预设的替换端口链表;其中,所述第一识别信息分别和所述第一可用端口号、所述第一端口号一一映射。
17.根据本技术的一些实施例,所述根据预设的第二网元的连接请求中的所述第一端口号,查找所述第一网元对应的第一识别信息,获取第一识别信息对应的所述第一可用端口号,包括:
18.接收所述第二网元的连接请求;其中,所述连接请求包括所述第一端口号;
19.根据所述第一端口号,获取所述第一端口号对应的所述第一网元;
20.根据所述第一网元,查找所述替换端口链表中所述第一网元对应的所述第一识别信息,并获取所述第一识别信息对应的第一可用端口号。
21.根据本技术的一些实施例,在所述根据预设的第二网元的连接请求中的所述第一端口号,查找所述第一网元对应的第一识别信息,获取第一识别信息对应的所述第一可用端口号之前,包括:
22.通过接管后的网络服务截取预设的第二网元的第二通信请求;其中,所述第二通信请求包括第二端口号;
23.当所述第二端口号可用,将所述第二端口号和所述第二网元进行绑定。
24.根据本技术的一些实施例,所述接入网协议栈测试方法还包括:
25.当所述第二端口号不可用,根据预设的第二通信策略,获取预设的第二可用端口号,并将所述第二可用端口号和所述第二网元进行绑定;
26.通过所述第一可用端口号和所述第二可用端口号,建立所述第一网元和所述第二网元的链路;其中,所述第二可用端口号与所述第一可用端口号不同。
27.根据本技术的一些实施例,所述当所述第二端口号不可用,根据预设的第二通信策略,获取预设的第二可用端口号,并将所述第二可用端口号和所述第二网元进行绑定,包括:
28.更新并获取所述端口数据集;
29.将所述第二端口号与每一所述第三端口号进行比较并判断是否相同;
30.当所述第二端口号与所述第三端口号相同时,从所述可用端口链表中提取第二可用端口号;
31.将所述第二端口号替换为第二可用端口号,再将所述第二可用端口号与所述第二网元进行绑定;
32.将所述第二可用端口号、所述第二端口号、所述第二通信请求中的第二识别信息存储到所述替换端口链表;其中,所述第二识别信息分别和所述第二可用端口号、所述第二端口号一一映射。
33.根据本技术的一些实施例,所述更新并获取所述端口数据集,包括:
34.将所述第一可用端口号存入所述端口数据集;
35.获取所述端口数据集。
36.根据本技术的一些实施例,在所述通过接管后的网络服务截取预设的第一网元的第一通信请求之前,包括:
37.创建所述可用端口链表和所述替换端口链表;
38.根据所述测试用例分别向所述第一网元、所述第二网元发送启动通信的信号。
39.根据本技术的第二方面实施例的接入网协议栈测试系统,包括:
40.至少一个存储器;
41.至少一个处理器;
42.至少一个程序;
43.所述程序被存储在所述存储器中,所述处理器执行至少一个所述程序以实现如第一方面实施例所述的接入网协议栈测试方法。
44.根据本技术的第三方面实施例的计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如第一方面实施例所述的接入网协议栈测试方法。
45.根据本技术实施例的接入网协议栈测试方法,至少具有如下有益效果:首先,接管预设的操作系统的网络服务,并通过接管后的网络服务截取预设的第一网元的第一通信请求,其中,第一通信请求包括第一端口号;之后,当第一端口号不可用,就根据预设的第一通信策略,获取预设的第一可用端口号,并将第一可用端口号和第一网元进行绑定,进而完成第一网元的初始化;然后,根据预设的第二网元的连接请求中的第一端口号,查找第一网元对应的第一识别信息,获取第一识别信息对应的第一可用端口号;最后,通过第一可用端口号和第二网元预设的第二端口号,建立第一网元和第二网元的链路,并且第二端口号与第一可用端口号不同。本技术的接入网协议栈测试方法,通过对第一网元和第二网元建立的链路进行端口号替换,一方面,不用人工操作对端口号进行修改,去除了人工修改带来的复杂操作以及人工操作容易引起的失误;另一方面,第一可用端口号为实际应用场景所使用的端口号,采用第一可用端口号建立链路,可以使得测试环境更加准确接近实际应用,测试结果更加准确。因此,本技术的接入网协议栈测试方法,能够解决端口号相互冲突的问题,不需人工操作,方便快捷,并且测试时更加接近实际应用场景,测试结果更加准确。
46.本技术的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实践了解到。
附图说明
47.下面结合附图和实施例对本技术做进一步的说明,其中:
48.图1为5g系统在实际使用时各个网元的连接接口示意图;
49.图2为现有测试方法中5g系统的连接示意图;
50.图3为本技术一个实施例所提供的接入网协议栈测试系统的连接示意图;
51.图4为本技术实施例所提供的多用户场景下的接入网协议栈与测试框架模块的交互示意图;
52.图5为本技术实施例所提供的测试时的交互流程图;
53.图6为本技术实施例所提供的amf网元和cucp网元链路建立的工作流程图;
54.图7为本技术实施例所提供的测试框架模块的内部工作流程图;
55.图8为本技术实施例所提供的多个cucp网元和cuup网元的sctp链路建立示意图;
56.图9为本技术一个实施例所提供的接入网协议栈测试方法的流程示意图;
57.图10为本技术另一实施例所提供的接入网协议栈测试系统的连接示意图。
58.附图标记:
59.模拟核心网100、接入网110、测试框架模块120、测试用例模块130、模拟终端140、存储器200、处理器300。
具体实施方式
60.下面详细描述本技术的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本技术,而不能理解为对本技术的限制。
61.需要说明的是,虽然在系统示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于系统中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
62.在本技术的描述中,若干的含义是一个以上,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
63.本技术的描述中,除非另有明确的限定,设置、安装、连接等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本技术中的具体含义。
64.本技术的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
65.5g,为第五代移动通信技术,5g系统包括接入网(ng-ran)、核心网(5gc)及相关支撑系统。而接入网包括集中处理单元cu(以下简称cu网元)和分布式处理单元du(以下简称du网元),其中,cu网元包括集中式控制面处理单元cucp(以下简称cucp网元)和集中式用户面处理单元cuup(以下简称cuup网元),核心网包括接入和移动管理功能单元amf(以下简称amf网元)、用户面管理功能单元upf(以下简称upf网元)。cu网元与核心网5gc的交互消息的接口为ng口,cu网元与du网元的之间的交互消息的接口为f1口。具体地,接入网的cucp网元与核心网的amf网元是通过基于sctp连接的ng-c接口传输核心网与接入网之间的控制面消息;接入网的cucp网元与接入网的du网元之间是通过基于sctp连接的f1-c接口传输接入网内的控制面消息;cucp网元与cuup网元之间通过基于sctp连接的e1-c接口传输与终端pdu
会话相关的控制面消息;核心网的upf网元与接入网的cuup网元之间通过基于gtp-u的ng-u接口承载核心网与接入网之间的用户面数据传输,cuup网元与du网元之间通过基于gtp-u的f1-u接口承载接入网内部的用户面数据传输。
66.需要说明的是,stcp(stream control transmission protocol)为流控制传输协议,是一种在网络连接两端之间同时传输多个数据流的协议。gtp(gprs tunneling protocol)为gprs隧道协议,gtp包括gtp-u,gtp-u用于在gprs核心网内,无线接入网与核心网之间传送用户数据,用户数据包可以以ipv4,ipv6或ppp中的任何格式传输;其中,gprs(general packet radio service)为通用无线分组业务。
67.考虑到多平台移植与兼容性,以及不同厂商之间的互操作,3gpp协议中规定了各接口间必须使用指定的端口号;其中,3gpp为第三代合作伙伴计划。具体地,如图1所示,在实际应用中,ng-c接口使用sctp端口号38412,f1-c接口使用sctp端口号38472,e1-c接口使用sctp端口号38462,ng-u接口、f1-u接口使用udp端口号2152;其中,udp(user data protocol,用户数据报协议)是与tcp相对应的协议,是属于tcp/ip协议族中的一种;tcp/ip(transmission control protocol/internet protocol)即传输控制协议/网间协议,是一个工业标准的协议集,是为广域网(wans)设计的。
68.在协议栈的代码实现过程中,一种主流的实现方案是各网元之间基于socket方式进行通信;具体地,一套amf网元+upf网元+cucp网元+cuup网元+du网元构成网络,并且各个网元都需要一套ip+端口号进行socket通信。
69.需要说明的是,socket为套接字,套接字就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。从所处的地位来讲,套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议栈进行交互的接口。
70.在多网元、多接口及多连接场景下,在对接入网协议栈进行系统级测试时,如图2所示,通常采用的测试用例配置方式为:一个核心网连接多cucp网元,cucp网元连接多cuup网元和多du网元。
71.针对这种多网元测试场景,第一种实现方式是手动或脚本修改配置,使用非标端口号,非标端口号可以理解为于实际应用区别交大的端口号,第一种方式的弊端是针对不同的多网元场景需要人工修改配置参数,不利于自动化测试;同时所使用的配置参数并非现网所使用真实参数,测试效果不佳;
72.第二种实现方式是为各网元分配不同的主机或ip,通过给相同网元多实例分配不同的ip进行socket通信。第二种实现方式的弊端是每个网元都需要占用一个ip或主机,对同一测试人员来讲是对硬件物理资源的极大浪费,同时也不利于不同测试人员的并行测试。
73.第三种实现方式是近几年流行的docker容器技术,将网元应用程序与应用程序所需的操作系统环境依赖打包成docker容器实例,在测试环境操作系统上运行docker容器实例;其中,docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的linux或windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。第三种实现方式,只是解决了应用程序运行在不同版本的操作系统平台上时,配置不同及依赖不一致的问题,运
行在操作系统之上的不同docker容器实例之间,依然不能复用网络端口号,同时在应用程序出现问题时,程序的调试复杂。
74.基于以上存在的技术问题,本技术提供了一种接入网协议栈测试系统及方法,实现了一套测试框架,在同一台测试pc且同一ip主机环境上,能够部署运行多测试用户、多网元实例,并且各网元依然使用与现网真实场景一致的应用程序文件与配置参数,也就是各网元使用的是与现网真实场景一致的标准端口号,解决了多用户并行测试及多网元配置下,对操作系统的相同网络配置的请求冲突问题,使得多测试用户的协议栈的多网元能够同时运行,从而能提高接入网协议栈的测试效率与测试准确性,节省测试所需的硬件资源。
75.协议栈可以理解为:各种通信协议架构化、层次化的表达,包括各层协议之间的层次关系和接口。协议栈有时候还表示具体的实现某种协议的代码。
76.下面参照图3描述根据本技术实施例的接入网协议栈测试系统。
77.可以理解的是,如图3所示,接入网协议栈测试系统,包括:测试用例模块130,测试框架模块120,模拟核心网100,接入网110和模拟终端140。
78.需要说明的是,接入网110的协议栈相当于被测软件;测试用例模块130用于提供测试用例并控制测试流程;模拟核心网100、模拟终端140均用于提供协议栈在测试流程中的外部交互,其中,模拟核心网100、模拟终端140均为辅助测试模块;测试框架模块120用于接管操作系统的网络服务并提供socket服务需求;具体地,如图4所示,测试框架模块120用于截获各网元向操作系统申请的网络需求服务,对具有相同socket服务需求的网元进行封装替换,进而使得不同测试用户的多网元能够正常启动与运行,保证并行化测试。
79.需要说明的是,如图5所示,测试用户一次完整的测试流程为:
80.步骤1:用户操作测试用例模块130,测试用例模块130将测试框架模块120加载入操作系统;
81.步骤2:测试框架模块120接管操作系统的网络服务;其中,测试框架模块120用于截获网元向操作系统提出的网络服务请求;
82.步骤3:测试用例模块130向测试框架模块120发起测试环境初始化请求;
83.步骤4和步骤5:测试框架模块120依次完成可用端口链表的初始化,替换端口链表的初始化;
84.步骤6:测试用例模块130根据测试用例配置加载启动各个网元;
85.步骤7:各个网元间完成控制面和用户面的链路建立;也就是ng-c、e1-c、f-c、ng-u或f1-u接口中的一个或多个的建链过程。
86.步骤8:网元链接建立成功后,测试框架模块完成测试环境初始化响应;
87.步骤9:测试用户模块加载运行测试用例。
88.下面对步骤7进行详细描述。
89.各网元程序启动后,模拟核心网100的amf网元需要完成ng-c sctp server的建立,多个cucp网元完成ng-c sctp client的建立,cucp网元向amf网元发起ng-c sctp connect的建立,在上述三个建立过程中,测试框架模块120会截获并优化各网元的sctp请求;解决各网元的sctp请求中相同端口号的问题;之后f1-c,e1-c,ng-u,f1-u的链路建立与ng-c链路建立流程相同;各链路建立之后,完成测试环境的初始化动作,测试用例模块130启动并完成测试用例。
90.测试框架模块120针对多网元的sctp bind/udp bind事件进行端口号的重复替换,从可用端口链表中取出可用端口号,然后执行sctp bind/udp bind操作,并将相关替换信息写入替换端口链表。
91.测试框架模块120针对多网元的sctp/udp connect事件进行端口号的重复替换,从替换端口链表中找出替换后的端口号执行connect操作。
92.需要说明的是,如图6所示,当模拟核心网100的amf网元与接入网110的cucp网元建立链路时,相关过程如下:
93.sctp/udp server初始化:
94.步骤7.1.1:amf网元读取预先设置好的配置;其中,amf网元的配置包括有第一端口号。
95.步骤7.1.2:amf网元向操作系统发起sctp bind请求,amf网元的sctp bind请求包含有预先配置好的第一端口号;amf网元发起sctp bind请求,可以理解为向操作系统申请与第一端口号进行绑定。
96.步骤7.1.2.1:测试框架模块120会截获amf网元的sctp bind请求,提取其中携带的第一端口号并判断第一端口号是否可用,若第一端口号不可用,则从预设的可用端口链表取出第一可用端口号并替换第一端口号后,将第一端口号、第一可用端口号和amf网元进程id,存储到替换端口链表中;id可以理解为每一进程的识别信息,每一进程对应一个不同的id,id具有唯一性。
97.步骤7.1.2.2:根据第一可用端口号调用操作系统的sctp bind子程序,执行端口号绑定操作。
98.步骤7.1.2.3:测试框架模块120向amf网元返回sctp bind子程序执行结果,amf网元完成端口号绑定。
99.步骤7.1.2.4:amf网元通过绑定的第一可用端口号进行监听(listen)和接收(accept)操作,用以进行后续的链路连接。
100.sctp/udp client的初始化:
101.7.1.3cucp网元读取预先设置好的配置;其中,cucp网元的配置包括有第二端口号。
102.步骤7.1.4.1:测试框架模块120会截获cucp网元的sctp bind请求,提取其中携带的第二端口号并判断第二端口号是否可用,若第二端口号不可用,则从的可用端口链表取出第二可用端口号并替换第二端口号。之后,将第二端口号、第二可用端口号和cucp网元进程id,存储到替换端口链表中,这个步骤主要是为多个网元建立链路时,以查找cucp网元的第二可用端口号。
103.步骤7.1.2.2:根据第二可用端口号调用操作系统的sctp bind子程序,执行端口号绑定操作。
104.步骤7.1.2.3:测试框架模块120向cucp网元返回sctp bind子程序执行结果,cucp网元完成端口号绑定。
105.步骤7.1.2.4:cucp网元根据预先设置的配置,调用操作系统的sctp connect对应的子程序发起sctp connect请求,cucp网元请求包括第一端口号;
106.步骤7.1.2.5:测试框架模块120通过截获sctp connect请求并读取第一端口号,
查找正在监听(listen)和接收(accept)的amf网元,进一步查找amf网元对应的id,进而获取id对应的第一可用端口号;测试框架模块120根据第一可用端口号以及sctp connect请求,调用操作系统的对应的子程序建立amf网元和cucp网元的链路。
107.步骤7.1.2.6:测试框架模块120向cucp网元返回sctp connect请求的结果。
108.步骤7.1.5:测试框架模块120根据这一次测试用例中已经使用的端口号重置可用端口链表,并且,此时,上一个测试用例部分端口号已经结束使用,因此还需并遍历操作系统,以获取上一个测试用例中结束使用的可用端口号,并将新的可用端口号添加到可用端口链表中。
109.步骤7.1.6:ng-c链路建立完成。
110.在ng-c链路建立过程中,如图7所示,测试框架模块120的具体工作流程与工作原理如下:
111.sctp/udp server初始化:在amf网元启动后建立sctp server时,amf网元向操作系统发起的sctp bind操作会被测试框架模块120捕获,测试框架模块120提取出sctp bind操作中携带的第一端口号(ng-c接口服务端的端口号),并判断端口号是否可用,如果端口号可用,则使用该端口号调用sctp bind操作,如果port不可用,则从可用端口链表中取出第一可用端口号,执行sctp bind操作,并将原端口号,和新端口号,进程名字,进程id信息存储到替换端口链表;然后测试框架模块120通知amf网元sctp bind操操作完成,之后amf网元执行listen和accpet操作,上述操作完成了amf网元sctp server的初始化;
112.sctp/udp client初始化:cucp网元作为ng-c的sctp client向amf网元发起sctp链接建立,包括两个步骤。首先,cucp网元执行sctp bind操作携带第二端口号(ng-c接口服务端的端口号),如果该端口号不可用,测试框架模块120会在可用端口链表中查找可用的端口号,取出并使用新的端口号向操作系统发起sctp bind,同时测试框架模块120会将cucp网元的进程id,进程名字,原端口号,新端口号,添加到替换端口链表中;其中,cucp网元的新端口号和amf网元的新端口号是不同的。之后,cucp网元发起sctp connect操作,携带有需要链接到的sctp server的ip地址和amf网元的原端口号,测试框架模块120收到connect请求后,会了解到cucp网元发起的connect请求需要连接到amf网元,测试框架模块120从替换端口链表中查找amf网元进程的id对应的amf网元的新端口号,测试框架模块120用amf网元的新端口号向操作系统发起sctp connect操作,之后测试框架模块120返回,完成cucp网元的sctp client的初始化。
113.上述内容为步骤7中两个网元之间的链路建立过程。
114.下面讲述步骤7中两个以上网元之间的链路建立过程。
115.如图2所示,在多网元测试环境下,需要解决不同网元的连接冲突问题:cuupn-1如何正确连接到cucpn,而不是连接到cucp1;类似问题:dun-1如何正确连接到cucpn,而不是连接到cucp1;这类问题的解决方法时一样的,下面以测试框架模块120如何保证cuup能正确连接到对应的cucp为例:
116.测试框架模块120根据配置要求,如图8所示,先启动cucp1网元和cuup1...cuupn-1网元进程,cucp1网元、cuup1网元...cuupn-1网元依次发送通信请求,在cucp1网元完成sctp server初始化后,测试框架模块120会记录cucp1网元进程id,及cucp1网元用于listen的端口号,也就是第一个新端口号(new port1),这样在后续cuup1网元...cuupn-1
网元向cucp网元发起sctp connect时,测试框架模块120根据当前记录的cucp1网元用于listen的端口号,完成与cuup 1网元...cuupn-1网元的sctp client的初始化,同理完成du1网元...dun-1网元与cucp1网元的sctp connect。
117.进一步地,测试框架模块120启动cucpn网元和cuupn-1网元...cuupn-n网元进程,当有新的cucpn-1需要完成sctp server初始化时,测试框架模块120会完成cucpn-1的sctp server初始化,同时测试框架模块120会存储的cucpn的进程id,及cucpn网元用于listen的端口号,也就是第n个新端口号(new portn),完成存储数据更新,之后所启动的cucpn-1...cuupn-n网元进程的sctp连接请求,都会被测试框架模块120关联到cucpn网元用于listen的端口号。
118.按照如上流程即可完成配置的测试初始化,之后即可运行test1测试用例;并且不用等待test1的用测试用例结束,即可进行tester n的测试用例初始化,初始化完成即可进行tester n的测试用例;而且相对于分钟,小时级别的测试用例的运行时间,上述流程中测试初始化的时间极短(秒级),所以从整个测试过程来讲,达到了单一主机环境下,并行多用户,多网元同时测试的效果。
119.下面参照图9描述根据本技术实施例的接入网协议栈测试方法。
120.可以理解的是,如图9所示,接入网协议栈测试方法,应用于测试平台,包括:
121.步骤s100,接管预设的操作系统的网络服务;
122.步骤s110,通过接管后的网络服务截取预设的第一网元的第一通信请求;其中,第一通信请求包括第一端口号;
123.步骤s120,当第一端口号不可用,根据预设的第一通信策略,获取预设的第一可用端口号,并将第一可用端口号和第一网元进行绑定;
124.步骤s130,根据预设的第二网元的连接请求中的第一端口号,查找第一网元对应的第一识别信息,获取第一识别信息对应的第一可用端口号;
125.步骤s140,通过第一可用端口号和第二网元预设的第二端口号,建立第一网元和第二网元的链路;其中,第二端口号与第一可用端口号不同。
126.需要说明的是,第一网元可以理解为模拟核心网100的网元或接入网110的网元,第二网元可以理解为接入网110的网元。
127.可以理解的是,当第一端口号不可用,根据预设的第一通信策略,获取预设的第一可用端口号,并将第一可用端口号和第一网元进行绑定,包括:
128.获取预设的端口数据集;其中,端口数据集包括多个正在使用的第三端口号;
129.将第一端口号与每一第三端口号进行比较并判断是否相同;
130.当第一端口号与第三端口号相同时,从预设的可用端口链表中提取第一可用端口号;
131.将第一端口号替换为第一可用端口号,再将第一可用端口号与第一网元进行绑定;
132.将第一可用端口号、第一端口号、第一通信请求中的第一识别信息存储到预设的替换端口链表;其中,第一识别信息分别和第一可用端口号、第一端口号一一映射。
133.需要说明的是,第一网元启动后会随机分配一个进程id,这个id具有唯一性,这个进程id可以理解为第一识别信息。
134.可以理解的是,根据预设的第二网元的连接请求中的第一端口号,查找第一网元对应的第一识别信息,获取第一识别信息对应的第一可用端口号,包括:
135.接收第二网元的连接请求;其中,连接请求包括第一端口号;
136.根据第一端口号,获取第一端口号对应的第一网元;
137.根据第一网元,查找替换端口链表中第一网元对应的第一识别信息,并获取第一识别信息对应的第一可用端口号。
138.可以理解的是,在根据预设的第二网元的连接请求中的第一端口号,查找第一网元对应的第一识别信息,获取第一识别信息对应的第一可用端口号之前,包括:
139.通过接管后的网络服务截取预设的第二网元的第二通信请求;其中,第二通信请求包括第二端口号;
140.当第二端口号可用,将第二端口号和第二网元进行绑定。
141.根据本技术的一些实施例,接入网协议栈测试方法还包括:
142.当第二端口号不可用,根据预设的第二通信策略,获取预设的第二可用端口号,并将第二可用端口号和第二网元进行绑定;
143.通过第一可用端口号和第二可用端口号,建立第一网元和第二网元的链路;其中,第二可用端口号与第一可用端口号不同。
144.可以理解的是,当第二端口号不可用,根据预设的第二通信策略,获取预设的第二可用端口号,并将第二可用端口号和第二网元进行绑定,包括:
145.更新并获取端口数据集;
146.将第二端口号与每一第三端口号进行比较并判断是否相同;
147.当第二端口号与第三端口号相同时,从可用端口链表中提取第二可用端口号;
148.将第二端口号替换为第二可用端口号,再将第二可用端口号与第二网元进行绑定;
149.将第二可用端口号、第二端口号、第二通信请求中的第二识别信息存储到替换端口链表;其中,第二识别信息分别和第二可用端口号、第二端口号一一映射。
150.需要说明的是,第二网元启动后会随机分配一个进程id,进程id具有唯一性,这个进程id为第二识别信息。
151.可以理解的是,更新并获取端口数据集,包括:
152.将第一可用端口号存入端口数据集;
153.获取端口数据集。
154.可以理解的是,在通过接管后的网络服务截取预设的第一网元的第一通信请求之前,包括:
155.创建可用端口链表和替换端口链表;
156.根据测试用例分别向第一网元、第二网元发送启动通信的信号。
157.根据本技术实施例的接入网协议栈测试方法,首先,接管预设的操作系统的网络服务,并通过接管后的网络服务截取预设的第一网元的第一通信请求,其中,第一通信请求包括第一端口号;之后,当第一端口号不可用,就根据预设的第一通信策略,获取预设的第一可用端口号,并将第一可用端口号和第一网元进行绑定,进而完成第一网元的初始化;然后,根据预设的第二网元的连接请求中的第一端口号,查找第一网元对应的第一识别信息,
获取第一识别信息对应的第一可用端口号;最后,通过第一可用端口号和第二网元预设的第二端口号,建立第一网元和第二网元的链路,并且第二端口号与第一可用端口号不同。本技术的接入网协议栈测试方法,通过对第一网元和第二网元建立的链路进行端口号替换,一方面,不用人工操作对端口号进行修改,去除了人工修改带来的复杂操作以及人工操作容易引起的失误;另一方面,第一可用端口号为实际应用场景所使用的端口号,采用第一可用端口号建立链路,可以使得测试环境更加准确接近实际应用,测试结果更加准确。因此,本技术的接入网协议栈测试方法,能够解决端口号相互冲突的问题,不需人工操作,方便快捷,并且测试时更加接近实际应用场景,测试结果更加准确。
158.下面参照图3描述根据本技术实施例的接入网协议栈测试系统。
159.可以理解的是如图10所示,接入网协议栈测试系统,包括:
160.至少一个存储器200;
161.至少一个处理器300;
162.至少一个程序;
163.程序被存储在存储器200中,处理器300执行至少一个程序以实现上述的接入网协议栈测试方法。图10以一个处理器300为例。
164.处理器300和存储器200可以通过总线或其他方式连接,图10以通过总线连接为例。
165.存储器200作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态性计算机可执行程序以及信号,如本技术实施例中的接入网协议栈测试系统对应的程序指令/信号。处理器300通过运行存储在存储器200中的非暂态软件程序、指令以及信号,从而执行各种功能应用以及数据处理,即实现上述方法实施例的接入网协议栈测试方法。
166.存储器200可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储上述接入网协议栈测试方法的相关数据等。此外,存储器200可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器200可选包括相对于处理器300远程设置的存储器,这些远程存储器可以通过网络连接至该接入网协议栈测试系统。上述网络的实例包括但不限于物联网、软件定义网络、传感器网络、互联网、企业内部网、局域网、移动通信网及其组合。
167.一个或者多个信号存储在存储器200中,当被一个或者多个处理器300执行时,执行上述任意方法实施例中的接入网协议栈测试方法。例如,执行以上描述的图9中的方法步骤s100至s140。
168.下面参照图10描述根据本技术实施例的计算机可读存储介质。
169.如图10所示,计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器300执行,例如,被图10中的一个处理器300执行,可使得上述一个或多个处理器300执行上述方法实施例中的接入网协议栈测试方法。例如,执行以上描述的图9中的方法步骤s100至s140。
170.以上所描述的系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的
部分或者全部单元来实现本实施例方案的目的。
171.通过以上的实施方式的描述,本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质和通信介质。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读信号、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
172.上面结合附图对本技术实施例作了详细说明,但是本技术不限于上述实施例,在所属技术领域普通技术人员所具备的知识范围内,还可以在不脱离本技术宗旨的前提下作出各种变化。此外,在不冲突的情况下,本技术的实施例及实施例中的特征可以相互组合。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1