网关测试系统
技术领域
本申请涉及通信设备技术领域,特别是涉及一种网关测试系统。
背景技术
随着移动通信网络的全面快速发展,运营商网络建设的规模不断增长,用户对高速移动通信的要求不断提高。因此,用户对移动通信网络的可靠性和稳定性也提出了更高的要求。网关作为移动通信系统重要的中间网元,需要不断迭代新的版本以适应日益增长的市场需求。而版本的增加则会带来更多的业务测试工作,此外,出于高可靠性的要求,需要对网关进行持续的稳定性和可靠性测试,需要消耗大量的人力物力。
随着自动化技术的发展,给通信领域的网关自动化测试提供了可能。然而,传统的网关测试方式仍然是以手动测试为主,自动化技术的应用尚少,还没有一套成熟有效的网关自动测试方案。在实现本发明的过程中,发明人发现传统的网关测试方式中至少存在着测试效率较低的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够大幅提高测试效率的网关测试系统。
为实现上述目的,本发明实施例提供一种网关测试系统,包括测试控制装置、网络传输设备、被测网关、网管设备、接入侧装置、核心网设备和应用服务器;所述测试控制装置通信连接所述接入侧装置,所述网络传输设备分别通信连接所述测试控制装置、所述被测网关、所述网管设备和所述接入侧装置,所述核心网设备分别通信连接所述被测网关和所述应用服务器;
所述测试控制装置用于根据预设测试用例,对所述接入侧装置、所述被测网关、所述网管设备和所述核心网设备进行测试控制,以及输出测试结果;所述网络传输设备、所述接入侧装置、所述被测网关、所述网管设备和所述核心网设备用于组成业务测试网络,所述应用服务器用于向所述业务测试网络提供测试业务数据。
在其中一个实施例中,所述被测网关包括通信连接的安全网关和业务网关,所述安全网关通信连接所述网络传输设备,所述业务网关通信连接所述核心网设备。
在其中一个实施例中,还包括持续集成工具服务器,所述持续集成工具服务器通信连接所述网络传输设备;所述持续集成工具服务器用于执行所述预设测试用例,对所述被测网关进行测试,以及接收所述测试控制装置输出的所述测试结果。
在其中一个实施例中,所述持续集成工具服务器还用于对所述被测网关进行测试时,通过调用配置关键字对所述被测网关进行配置导入或导出控制。
在其中一个实施例中,所述接入侧装置包括用户终端和基站,所述用户终端分别通信连接所述基站和所述测试控制装置,所述基站分别通信连接所述测试控制装置和所述网络传输设备。
在其中一个实施例中,所述用户终端与所述基站之间的通信连接包括有线连接或无线连接。
在其中一个实施例中,所述用户终端与所述基站之间的通过射频电缆连接。
在其中一个实施例中,所述用户终端通过USB接口连接所述测试控制装置,所述基站通过网口连接所述测试控制装置。
在其中一个实施例中,所述测试控制装置、所述被测网关、所述网管设备、所述核心网设备和所述基站分别通过线缆连接所述网络传输设备。
在其中一个实施例中,还包括干扰屏蔽装置,所述干扰屏蔽装置用于屏蔽外部干扰信号对所述接入侧装置的干扰。
在其中一个实施例中,所述网络传输设备包括交换机或路由器。
在其中一个实施例中,所述应用服务器包括FTP文件服务器、媒体播放服务器和/或WEB服务器。
上述技术方案中的一个技术方案具有如下优点和有益效果:
上述网关测试系统,通过被测网关、网管设备、接入侧装置、核心网设备组成业务测试网络。测试控制装置通过网络传输设备接入LTE业务测试网络,通过执行预先载入的预设测试用例与各网元进行指令交互,模拟被测网关在相应实际应用场景中的业务通信过程,从而完成对被测网关的自动化业务测试。最后通过测试控制装置收集可以输出给外部测试人员的测试结果,有效实现被测网关的自动化测试,大大提高网关测试的效率。
附图说明
图1为一个实施例中网关测试系统的结构框图;
图2为一个实施例中网关测试系统的结构示意图;
图3为另一个实施例中网关测试系统的结构示意图;
图4为一个实施例中网关测试系统的进一步结构示意图;
图5为另一个实施例中网关测试系统的进一步结构示意图;
图6为一个实施例中网关测试系统的应用部署示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
随着自动化技术的发展,出现了多种现代化的自动化测试框架,常见的自动化测试框架例如:模块化测试脚本框架(Test Modularity Framework)、测试库框架(TestLibrary Architecture)、关键字驱动或表驱动的测试框架、数据驱动测试框架以及混合测试自动化框架(Hybrid Test Automation)等。自动化测试框架为各行业不同设备的自动化测试提供了有效途径。
在自动化测试框架中,RobotFramework是一款开源软件,采用python语言编写的功能自动化测试框架。具备良好的可扩展性、支持关键字驱动以及类同C语言中的函数调用。基于RobotFramework可以构建所需的各种自动测试用例,用于实现所需测试项目的自动测试。Jenkins是应用较广的持续集成工具,可灵活以多种方式构建版本计划,从而完成版本自动下载、环境自动部署和自动执行测试用例等一系列自动化测试活动,从而可以很好地胜任包括开发测试部署在内的持续集成测试工作。下面以在测试系统上应用上述两种工具(RobotFramework和Jenkins)为基础实现工具为例进行详细说明。
请参阅图1,在一个实施例中,提供了一种网关测试系统100,包括测试控制装置12、网络传输设备14、被测网关16、网管设备18、接入侧装置20、核心网设备22和应用服务器24。测试控制装置12通信连接接入侧装置20。网络传输设备14分别通信连接测试控制装置12、被测网关16、网管设备18和接入侧装置20。核心网设备22分别通信连接被测网关16和应用服务器24。测试控制装置12用于根据预设测试用例,对接入侧装置20、被测网关16、网管设备18和核心网设备22进行测试控制,以及输出测试结果。网络传输设备14、接入侧装置20、被测网关16、网管设备18和核心网设备22用于组成业务测试网络。应用服务器24用于向业务测试网络提供测试业务数据。
其中,预设测试用例为预先构建的自动测试用例,例如利用上述的自动化测试框架构建的各种测试用例,如测试环境的部署、网关升级、配置下发、冒烟测试、测试结果管理等各类网关测试活动对应的测试用例。预设测试用例用于指示测试控制装置12对网络传输设备14、接入侧装置20、被测网关16、网管设备18和核心网设备22组成的业务测试网络中,各网元进行测试控制,以完成对被测网关16的自动测试。预设测试用例可以根据对被测网关16的测试项目类型、数量和测试环境等需要通过自动化测试框架进行构建,进而使用持续集成工具集成后载入测试控制装置12以待执行。可以理解,上述的业务测试网络可以是LTE标准网络架构组成LTE业务测试网络。测试控制装置12可以是PC机,也可以是服务器,只要能够提供自动化测试的控制过程中所需的测试控制性能均可。
具体地,网络传输设备14、接入侧装置20、被测网关16、网管设备18和核心网设备22按照LTE标准网络架构的形式,相应通信连接组成业务测试网络。测试控制装置12通过网络传输设备14接入被测网关16所在的业务测试网络。在测试开始时,测试控制装置12通过根据预先载入的预设测试用例,分别与业务测试网络中的各网元进行相应的指令交互,控制业务测试网络中的各网元的工作状态,以使业务测试网络中的各网元开展相应的通信业务。例如向被测网关16进行数据和配置参数等各项初始化,网关配置下发,触发应用服务器24提供通信过程的业务数据,控制接入侧装置20的行为(如附着、去附着、重启、查询空口参数等移动业务的发起和终止)以及在核心网侧的状态等,从而自动测试被测网关16的可靠性、稳定性或者网关升级等测试。测试控制装置12可以通过网管设备18收集被测网关16在测试过程中的告警信息、性能报表和其他所需的测试结果等。测试控制装置12获得的测试结果可以对外部进行输出,以便测试人员及时获取被测网关16的测试状况。
上述网关测试系统100中,通过被测网关16、网管设备18、接入侧装置20、核心网设备22组成业务测试网络。测试控制装置12通过网络传输设备14接入LTE业务测试网络,通过执行预先载入的预设测试用例与各网元进行指令交互,模拟被测网关16在相应实际应用场景中的业务通信过程,从而完成对被测网关16的自动化业务测试。最后通过测试控制装置12收集可以输出给外部测试人员的测试结果,有效实现被测网关16的自动化测试,大大提高网关测试的效率。
在其中一个实施例中,应用服务器24包括FTP文件服务器、媒体播放服务器和/或WEB服务器。
可以理解,上述的应用服务器24上可以至少设置有FTP文件服务器、媒体播放服务器和WEB服务器等服务器,用于提供被测网关16在测试过程中所需的各类数据业务。应用服务器24也可以是设置FTP文件服务器、媒体播放服务器和WEB服务器中的一种或者几种,具体的设置方式可以根据被测网关16的测试需要进行选择。通过上述的应用服务器24可以有效确保被测网关16,在测试过程中所需的数据业务,而无需额外搭建相应的数据业务源,测试成本低。
请参阅图2,在其中一个实施例中,接入侧装置20包括用户终端202和基站204。用户终端202分别通信连接基站204和测试控制装置12。基站204分别通信连接测试控制装置12和网络传输设备14。
可以理解,用户终端202可以是各种类型的UE设备,基站204可以是实际拥有中的各型基站204设备。具体的,测试控制装置12分别连接用户终端202和基站204,分别向用户终端202和基站204进行指令交互,控制用户终端202的行为以及设置基站204的参数、状态和获取接入侧装置20日期等信息。如此,测试控制装置12可以有效控制用户终端202和基站204的测试过程中的行为和状态,协同其他网元,共同完成对被测网关16的自动测试。测试过程所需的接入侧控制无需人工干预,测试持续性好,有效提高测试效率。
在其中一个实施例中,用户终端202与基站204之间的通信连接包括有线连接或无线连接。其中,有线连接可以是通信电缆连接或光缆连接。无线连接可以是本领域中各种无线通信的接入方式。可选的,接入侧的用户终端202可以通过有线连接的方式与基站204进行通信,也可以通过无线连接的方式与基站204进行通信,只要能够实现用户终端202与基站204之间的有效通信均可。上述的用户终端202与基站204之间的通信连接方式选择灵活,可以根据测试所处环境的电磁干扰或信号衰减程度等进行选择,以提高通信效率,确保测试结果的可靠性。
在其中一个实施例中,用户终端202与基站204之间的通过射频电缆连接。优选的,在本实施例中,用户终端202与基站204之间可以通过射频电缆的方式通信连接,如此可以大大减少用户终端202与基站204之间的信号衰减,提高被测网关16的测试准确性。
在其中一个实施例中,用户终端202通过USB接口连接测试控制装置12。基站204通过网口连接测试控制装置12。优选的,用户终端202在测试过程中,可以采用USB接口实现与测试控制装置12之间的连接。如此,测试控制装置12可以通过USB方式生成的虚拟串口,从而于虚拟串口发送指令控制用户终端202的行为,例如附着、去附着、重启和查询空口参数等;测试控制装置12可以通过USB方式生成的虚拟网络口进行移动业务的发起和终止,实现对用户终端202的高效控制,提高被测网关16的自动测试效率。测试控制装置12可以通过网口控制基于http协议的基站204,例如快速实现查询、设置基站204的参数和状态,及获取接入侧各设备的日志等信息,控制实现的成本较低且可靠性好。
请参阅图3,在其中一个实施例中,网关测试系统100还包括干扰屏蔽装置25,用于屏蔽外部干扰信号对用户终端202和基站204的干扰。可以理解,干扰屏蔽装置25可以是但不限于信号屏蔽箱、信号屏蔽网或者信号屏蔽室,只要能够有效屏蔽测试过程中,外部环境对用户终端202和基站204的信号干扰即可。前述的干扰信号可以是电磁信号或者其他可以干扰到用户终端202与基站204之间正常通信的干扰信号。通过上述的干扰屏蔽装置25可以避免外部环境对接入侧的各设备之间正常通行的干扰,提高被测网关16的测试可靠性。
在其中一个实施例中,测试控制装置12、被测网关16、网管设备18、核心网设备22和基站204分别通过线缆连接网络传输设备14。其中,线缆可以是本领域常用的各类通信线缆,用于提供业务测试网络中,各网元的通信信号传输均可。具体的,测试控制装置12可以通过线缆,例如网线连接到网络传输设备14,从而接入到各网友所在的业务测试网络中,以便进行相应的测试控制。被测网关16、网管设备18、核心网设备22和基站204分别通过线缆,例如网线或者光缆连接到网络传输设备14,以确保各网元之间的进行业务通信的可靠网络,减少信号衰减,提高对被测网关16的测试效率。
请参阅图4,在其中一个实施例中,被测网关16包括通信连接的安全网关162和业务网关164。安全网关162通信连接网络传输设备14。业务网关164通信连接核心网设备22。可以理解,被测网关16可以是一体的设备,具体数量可以多于一台,各被测网关16的连接关系同上理解。相应的,用户终端202和基站204的测试部署数量也可以对应配置。被测网关16具体可以包含安全网关162和业务网关164两台物理实体服务器。测试控制装置12可以通过网络传输设备14分别与安全网关162和业务网关164进行指令交互,例如网关升级、网关可靠性测试等,从而可以充分实现对安全网关162和业务网关164的自动化测试。
在其中一个实施例中,网络传输设备14包括交换机或路由器。具体的,上述的网络传输设备14可以是本领域各种类型的交换机,也可以是路由器,只要能够提供测试控制装置12机各网元组网所需的通信接口均可。通过采用交换机或者路由器,测试控制装置12可以快速可靠接入业务测试网络,与业务测试网络中的各网元进行通信,已实现对被测网关16的自动测试的控制。交换机或路由器技术成熟且可靠,确保对被测网关16的测试效率同时,降低网关测试系统100的搭建成本和测试成本。
请参阅图5和图6,在其中一个实施例中,上述的网关测试系统100还包括持续集成工具服务器26。持续集成工具服务器26通信连接网络传输设备14。持续集成工具服务器26用于执行预设测试用例,对被测网关16进行测试,以及接收测试控制装置12输出的测试结果。
其中,持续集成工具服务器26为持续集成工具(即Jenkins)所在的服务器。可以理解,在上述实施例中,持续集成工具Jenkins可以部署于测试控制装置12中,通过测试控制装置12直接完成对被测网关的自动化测试及控制。优选的,在本实施例中,通过持续集成工具服务器26来具体执行预设测试用例,对被测网关16进行相应的测试,持续集成工具服务器26在执行预设测试用例时,可触发测试控制装置12根据预设测试用例进行各网元的控制与测试结果收集。持续集成工具服务器26独立部署(例如直接调用第三方提供的集成工具服务器),拓展系统资源可有效提升测试的执行能力。测试控制装置12收集得到被测网关16的测试结果后,可以直接上传到持续集成工具服务器26。
持续集成工具服务器26可以用于通信连接外部的测试监控设备,例如测试人员或者开发人员使用的终端设备。如此,持续集成工具服务器26可以将接收到的测试结果推送给测试监控设备,从而方便测试管理用户(例如订阅测试报告的测试人员或开发人员)高效获得被测网关16的测试结果,掌握被测网关16的版本升级状况、性能、可靠性或其他测试指标,形成闭环测试系统。通过持续集成工具服务器26的部署,可以实时向测试控制装置12部署对应于新的测试用例的测试环境和进行相应的测试,从而进一步提高对被测网关16的测试效率。
在一个实施例中,持续集成工具服务器26还用于对被测网关16进行测试时,通过调用配置关键字对被测网关16进行配置导入或导出控制。
其中,配置关键字为基于网关配置导入、导出或配置参数修改等功能封装的关键字,用于在持续集成工具服务器26执行预设测试用例对被测网关16进行测试时,被持续集成工具服务器26调用以实现对被测网关16的配置文件导入、导出或配置参数修改等配置下发功能。配置关键字可以通过自定义的网关通信控制库来实现封装,如基于python调用网关的动态链接库,将导入配置文件、导出配置文件和更改指定配置参数等功能封装成底层关键字,实现持续集成工具服务器26与被测网关16的网关数据库的交互。例如将底层关键字利用robot framework的操作系统库和XML库进行动作层的封装,进而按测试业务流程的逻辑进行二次封装成业务事件层的关键字,从而形成可直接调用的配置关键字。形成的配置关键字可以至少包含配置导入文件的关键字。
具体的,测试人员可以预先将对被测网关16进行测试时,所需的各测试用例可预先存储到代码仓库服务器SVN上,代码仓库服务器SVN从而可以向测试控制装置12提供其测试控制过程中所需用到的测试程序/脚本。代码仓库服务器SVN同时向持续集成工具服务器26提供当前的被测网关16的网关版本,以使持续集成工具服务器26自动下载当前的网关版本到被测网关16的指定路径下作为工作区,并在工作区内执行预先构建好的测试用例。例如执行一键部署用例时,持续集成工具服务器26调用配置关键字,以控制被测网关16的配置文件导入与修改,进而对被测网关16进行相应的版本升级测试,例如有限次数或不限次数的网关升级测试。执行其他类型的测试用例过程中需要修改被测网关16的配置参数时,也可以调用配置关键字实现。通过配置下发功能可以快速自动完成被测网关16的测试环境(如配置参数导入、修改等)部署,提高自动化测试效率。
为使上述的网关自动测试系统更清楚且易于理解,如图6所示的全局部署示意图:测试人员可以根据被测网关16的测试项目需要,向持续集成工具服务器26提供当前的自动化测试软件版本,以使持续集成工具服务器26完成测试控制装置12的测试环境部署。测试控制装置12则可以根据接收到的测试用例完成被测网关16测试控制。在测试完成后,测试控制装置12将测试结果上传到持续集成工具服务器26,以便持续集成工具服务器26推送给相应的测试人员。测试人员也可以在需要开发新的测试功能(例如对被测网关16进行全新的测试项目时)时,将测试需求反馈给持续集成工具服务器26的供应方,以便供应方对持续集成工具服务器26进行管理或更新维护,以提供更多新的自动化测试功能,供测试人员指示持续集成工具服务器26部署相应的测试环境时调用。各网元组网后,相关具体的测试过程可以如下:
开发人员将产品(如上述的被测网关16)软件版本(如新的网关系统版本)提交到代码仓库服务器SVN;测试人员将产品的自动化测试软件版本(如上述的预设测试用例)提交到代码仓库服务器SVN。
持续集成工具服务器26上的Jenkins持续集成工具为每一个测试项目创建一个单独的工作区。当检测到版本更新(产品软件版本或自动化测试软件版本)、定时任务或请求一次新的构建时,Jenkins持续集成工具将把代码仓库服务器SVN路径下的版本检出(checkout)到对应的工作区。
持续集成工具服务器26完成版本检出后触发测试控制装置12对产品进行对应的自动化测试,也即Jenkins持续集成工具会在对应的工作区内执行构建好的测试用例的测试过程。
新的测试用例构建完成后,Jenkins持续集成工具会在一个新的测试用例中执行该新的测试用例中定义的一套测试流程。完成测试后,测试控制装置12收集到的测试结果将会上传到持续集成工具服务器26,持续集成工具服务器26则将测试结果推送给相关订阅人员。
上述的预设测试用例的实现与执行,可以被测网关16测试时的一键部署用例为例:
底层采用的是RobotFramework的基础库以及自定义库。基础库主要包括SSH的库、XML的库和操作系统库。自定义库为基于python实现的网关通信控制库,各库实现的关键字如下:
SSH库:SSH登陆、SSH中命令输入、关闭SSH、获取SSH命令输出等;
XML库:读取XML性能文件;
操作系统库:进行Ping包、获取本地文件等;
网关通信控制库:导入配置文件、导出配置文件、更改指定配置参数等,各关键字基于python调用网关的动态链接库而封装起来,以实现和网关数据库的交互,从而实现配置导入、导出功能。
动作层是基于底层的关键字以及同层的用户关键字,将其按手动测试的逻辑封装后形成新的关键字,过程如下:
利用RobotFramework的基础库中的SSH库,将登陆被测网关16获取匹配升级包的动作封装成“检查升级包”关键字。按同样方法继续封装用户关键字“升级前kill所有进程”、“执行版本升级命令”、“检查升级日志”和“清除升级大包”。基于操作系统库和XML库,将修改网关配置文件的动作封装成“定制xml配置文件”和“还原xml配置文件”的用户关键字。基于自定义的网关通信控制库,将配置导入和导出的动作封装成用户关键字“导入配置文件”和“导出配置文件”。
业务事件层是基于底层库和动作层封装的用户关键字,按业务流程的逻辑进行二次用户关键字的封装。被测网关16测试时的一键部署业务流程描述可以如下:
第一步,检查网关的升级包文件,使用“SSH登陆”登陆被测网关16,使用“SSH中命令输入”检查升级包的MD5值和被测网关16的MD5值,再使用基础库中的关键字对两者进行比对,最后“关闭SSH”。
第二步,网关升级前将所有的现有进程杀掉;
第三步,执行版本升级命令;
第四步,检查升级日志;
第五步,清除升级包文件;
第六步,网关配置导入;
前五步封装成“一键升级”的业务关键字,进行的业务流程主要是登陆被测网关16进行的命令输入,所用到的关键字是“SSH登陆”、“SSH中命令输入”和“关闭SSH”,以使被测网关16对不同的输入命令作出响应。第六步的配置导入,封装成“配置导入”的业务关键字,使用“定制xml配置文件”来更改匹配具体的被测网关16型号,使用自定义的“导入配置文件”关键字来导入需要的配置文件,再用“还原xml配置文件”来还原前面被修改的配置文件,恢复测试初始环境。
用例层可设置不同的参数,调用业务关键字,对不同的被测网关16进行测试。在网关部署测试中,调用“一键升级”的业务关键字,在输入参数中,可输入被测网关16的IP地址、用户名、密码和测试次数,即可对被测网关16进行不限次数的升级操作。再调用“配置导入”关键字,在输入参数中输入被测网关16的产品型号和不同的配置文件,就能实现配置文件导入的功能。在用例层中,只要给出具体参数即可。对于其他的预设测试用例可以同理预先构建。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。