一种自动化网闸测试系统及其工作方法与流程

文档序号:24887421发布日期:2021-04-30 13:10阅读:294来源:国知局
一种自动化网闸测试系统及其工作方法与流程

本发明涉及网络安全技术领域,尤其涉及一种自动化网闸测试系统及其工作方法。



背景技术:

随着信息化的蓬勃发展,不同网络之间越来越需要进行信息交互,其中就包含一些安全级别高和安全级别低的网络之间的信息交互。这种场景下,如果采用物理隔离卡,信息交互需求将无法满足,如果采用防火墙,则无法防止内部信息泄露和外部病毒、黑客的渗入,而网闸可以避免它们的不足,提供安全适度的应用数据交换,因此得到了越来越广泛的应用。但得到广泛应用后,也面临越来越严格、越来越复杂的测试要求。而由于网闸通常采用用户定制协议,而且设备运行程序类型多,应用组网复杂(存在和多台计算机搭建的多对多、集群通信组网),导致传统的测试方法存在以下问题:

1、针对不同类型的设备程序,通常需采用不同的测试工具甚至在不同的平台进行测试,导致针对测试场景的自动化开展难度大,对测试和维护人员技能要求高;

2、没有分离测试接口和设备的通信、协议接口,而被测网闸类型、版本多,导致自动化测试脚本兼容性差,维护工作量大;

3、脚本缺乏调度管理的设计,无法对复杂组网、多场景并发开展自动化测试,导致自动化覆盖率,难以提升测试效率。



技术实现要素:

本发明所要解决的技术问题是:针对上述存在的问题,提供了一种自动化网闸测试系统及其工作方法。

一方面,本发明提供一种自动化网闸测试系统,具体技术方案如下:

一种自动化网闸测试系统,包括用户表示层、逻辑处理层和驱动层;

其中,所述用户表示层负责接收并展示用户的测试任务请求和测试结果查询请求,以及负责展示请求结果;

所述逻辑处理层,负责把测试任务请求解析成多个顺序或并行执行的测试指令集合,下发给驱动层,并判断、记录、返回测试结果,以及返回测试结果查询数据;

所述驱动层负责将测试指令解析后下发给网闸,并将网闸响应数据解析后返回给逻辑处理层。

进一步的,所述用户表示层包括测试工具客户端,所述测试工具客户端运行在计算机上的web浏览器上,一方面用于接收用户的测试任务请求和测试结果查询请求,并将请求下发给逻辑处理层,一方面接收来自逻辑处理层的响应数据,展示用户请求结果,用户表示层的测试工具客户端数量可以任意增加。

进一步的,所述逻辑处理层包括:测试工具服务端、数据库和测试场景库,所述测试工具服务端、数据库和测试场景库都运行在调度服务器上;所述测试工具服务端与数据库和测试场景库进行通信,所述测试工具服务端连接数据库检索测试行为脚本目录,存储、读取测试任务的执行结果,所述测试工具服务端访问测试场景库的存储目录,编写、读取以及存储测试场景库中的测试行为脚本、测试数据文件和公共函数文件。

其中,所述测试工具服务端包括脚本搜索引擎和测试结果搜索引擎,所述脚本搜索引擎根据用户输入的测试任务请求特征值,从数据库检索出测试行为脚本目录,创建测试任务;一个测试任务可包含对多个测试场景的测试。测试任务生成后可再进行手动编辑,调整测试行为脚本目录,脚本执行顺序,执行次数。

所述测试结果搜索引擎根据用户输入的测试结果查询请求特征值,建立测试结果查询请求特征值、测试结果和缺陷库之间的关联,自动生成各个维度测试分析报告,且测试报告可转换成测试任务。

进一步的,所述驱动层包括网闸的api接口库和接口驱动软件,所述api接口库和接口驱动软件运行在测试机上;所述api接口库对网闸的通信协议和通信访问接口访问方法进行定义,所述接口驱动软件接收测试指令后,调用api接口库把测试指令转换成网闸可识别的设备指令和协议报文下发到网闸,并解析网闸响应数据返回给逻辑处理层。

其中,api接口库、接口驱动软件均可编译成不同操作系统平台、不同语言的文件,所述api接口库为动态库文件。如果网闸的通信方式、协议格式发生变化,但是其通信接口所需要的输入参数、返回值定义不发生变化,则只需要替换api接口库;如果通信接口的输入参数发生变化,则修改接口驱动软件内对api接口的调用方法,不涉及测试行为脚本的修改。

另一方面,本发明还提供一种自动化网闸测试系统的工作方法,包括:

步骤1:调度服务器、计算机、测试机、网闸启动后建立通信连接;

步骤2:用户在调度服务器上的测试工具客户端输入测试特征值并提交;

步骤3:测试工具服务端的脚本搜索引擎检索出测试脚本目录,并创建测试任务;

步骤4:编辑测试任务;调整脚本列表、运行模式;

步骤5:运行测试任务:测试工具服务端动态生成脚本执行队列,再按照队列逐个从测试场景库读取并解析测试组网和测试行为脚本,解析测试行为脚本后生成测试指令;通常一个脚本包含多个测试步骤,每个测试步骤对应一条测试指令,每条测试指令均指定负责执行的测试机;

其中,在执行脚本前需实例化测试组网并检测组网内设备是否已被占用或者设备间通信是否正常,若设备已被占用或通信不正常则停止执行任务;

步骤6:每次生成的测试指令由测试工具服务端通过ssh协议下发给对应的测试机的接口驱动软件;接口驱动软件调用api接口生成设备指令、报文后下发给网闸,并解析网闸响应数据返回给测试工具服务端;

步骤7:测试工具服务端判定该测试步骤的测试结果,如果判定成功则继续执行,否则判定该测试场景测试不通过并保存测试结果;脚本所有测试步骤执行完成并判定成功,则判定该测试场景通过并保存该测试项目测试结果;

步骤8:所有测试脚本执行完成后任务结束,保存任务测试结果。

与现有技术相比,采用上述技术方案的有益效果为:

本发明能实现了网闸复杂组网、复杂场景的自动化,提升了网闸测试自动化覆盖率和自动化脚本的可维护性、兼容性,降低了网闸测试的难度、成本和技术要求,提升了测试效率,使网闸自动化测试维护、扩展、配置更简单。

附图说明

图1是本发明实施例提供的一种自动化网闸测试系统结构示意图。

图2是本发明实施例提供的一种自动化网闸测试系统的工作方法流程示意图。

具体实施方式

下面结合附图对本发明做进一步描述。

首先对一些技术名词进行说明:

网闸:是一种提供物理隔离网络安全防护设备,提供适度可控的数据交换的软硬件系统。一般使用定制协议、接口提供消息、文件、邮件等数据传输功能,同时具备web配置软件功能。

ui:用户接口的简称。指的是测试人员提交测试任务请求、测试结果查询请求的输入口。

测试工具:基于web框架开发的b/s结构的软件,测试工具服务端软件,包含web服务器、测试行为脚本编写和编译、搜索引擎,数据库连接等功能。其客户端接收用户输入请求、展示请求响应结果。其服务端接收客户端的请求后,对请求进行分类处理:如果是测试结果查询请求,则直接连接数据库,查询历史测试数据,返回给测试工具客户端;如果是测试任务请求,则启用搜索引擎,根据输入的测试场景属性值,连接数据库,检索对应的测试行为脚本目录,创建测试任务。当测试工具服务端运行测试任务,按照设置的顺序逐个解析测试行为脚本,生成测试指令下发给驱动层的接口驱动软件;当测试场景对应的测试组网包含多台测试机,则需要给多台测试机下发指定的测试指令。测试工具客户端和服务端之间使用http协议进行通信。

搜索引擎:根据用户输入测试请求包含的测试特征值,如“稳定性测试”“功能测试”“系统设计验证”“xxx版本测试结果”,调用数据库存储过程,对数据库视图进行检索。

接口驱动软件:实现测试指令和设备指令、设备协议数据转换。其接收到逻辑处理层的测试工具服务端发送过来的测试指令后,按照约定的调用方法,调用api接口库内对应的函数,生成被测网闸能够识别的设备指令或协议数据,下发给网闸;并把网闸的响应数据后解析成测试指令语言,返回给逻辑处理层的测试工具服务端。

api接口库:提供网闸设备操作系统、应用程序通信接口的文件。本测试系统的api接口库包含对网闸设备指令(含操作系统、应用程序的通信指令)、定制协议通信接口的函数和约定,并编译成动态库。对网闸web应用程序的接口访问采用浏览器页面录制技术。

ssh:secureshell的缩写,是一种网络通信协议。本测试系统内使用的是openssh。ssh协议配置私钥访问后,设备之间指令通信不需要执行登录密码校验。

测试行为脚本:用脚本语言编写的文件。包含完成某个测试场景需要执行的多个测试操作步骤、每个操作步骤执行结果判断、测试场景的执行结果判断、测试场景的环境判断和清理。一个测试行为脚本对应一个测试场景。一个测试行为脚本和不同的测试数据结合,可以构成不同的测试指令,完成不同的测试组网覆盖、不同的测试接口范围覆盖、不同参数格式输入等。

测试数据文件:记录静态变量值的文件。包含测试组网的定义(被测网闸通信ip、版本、测试机通信ip、组网定义变量等)、测试接口输入的参数范围、测试对象版本等内容。

测试指令:使用测试脚本语言描述的对某个被测对象实施的操作,例如通过某个网闸发送大小100m的文件。测试指令体现的是测试操作步骤,不能被网闸直接识别,需要转换成设备指令。

设备指令:接口驱动软件调用api接口库的方法,将测试指令转换成设备指令,可以在网闸直接执行。

测试场景:完成一个完整的功性能测试目标,需进行的测试操作步骤的集合。如文件传输测试场景,包括通道授权、传输模式配置、文件准备、文件读取,文件发送,文件接收,文件准确判断、文件类型遍历等步骤。而单通道传输、多通道并发、多通道冗余传输,则属于三个不同测试场景,需要不同两种测试组网。

如图1所示,本实施例提供一种自动化网闸测试系统,分为用户表示层和逻辑处理层、驱动层。

其中,用户表示层包括测试工具客户端,测试工具客户端运行在计算机上的web浏览器上,通过输入指定地址启动运行,和逻辑处理层的测试工具服务端进行http协议的通信。测试工具客户端展示测试结果分析查询,采用了框架自带的嵌套图形控件。

用户表示层一方面用于接收用户的测试任务请求和测试结果查询请求,并将请求下发给逻辑处理层,一方面接收来自逻辑处理层的响应数据,展示用户请求结果,用户表示层的测试工具客户端数量可以任意增加。

逻辑处理层运行在调度服务器上,逻辑处理层包括:测试工具服务端、数据库和测试场景库。测试工具服务端可以与数据库和测试场景库进行通信,测试场景库包含测试行为脚本和测试数据文件、公共函数。

测试工具服务端连接数据库检索测试行为脚本目录,存储、读取测试任务的执行结果,测试工具服务端访问测试场景库的存储目录,编写、读取以及存储测试场景库中的测试行为脚本、测试数据文件和公共函数文件。

其中,测试工具服务端包括脚本搜索引擎和测试结果搜索引擎,脚本搜索引擎根据用户输入的测试任务请求的测试任务请求特征值,从数据库检索出测试行为脚本目录,创建测试任务;一个测试任务可包含对多个测试场景的测试。测试任务生成后可再进行手动编辑,调整测试行为脚本目录,脚本执行顺序,执行次数。

测试结果搜索引擎根据用户输入的测试结果查询请求特征值,建立测试结果查询请求特征值、测试结果和缺陷库之间的关联,自动生成各个维度测试分析报告,且测试报告可转换成测试任务。其中,缺陷库中保存有测试失败的测试结果数据。

优选地,上述数据库采用了数据库视图方法,建立了测试行为脚本、测试特征值、测试结果和缺陷库之间的关系模型。

驱动层包括网闸的api接口库和接口驱动软件,api接口库和接口驱动软件运行在测试机上;api接口库对网闸的通信协议和通信访问接口访问方法进行定义,接口驱动软件接收测试指令后,调用api接口库把测试指令转换成网闸可识别的设备指令和协议报文下发到网闸,并解析网闸响应数据返回给逻辑处理层。

优选地,api接口库、接口驱动软件均可编译成不同操作系统平台、不同语言的文件,其中api接口库为动态库文件。如果网闸的通信方式、协议格式发生变化,但是其通信接口所需要的输入参数、返回值定义不发生变化,则只需要替换api接口库;如果通信接口的输入参数发生变化,则修改接口驱动软件内对api接口的调用方法,不涉及测试行为脚本的修改。

当用户表示层提交测试执行请求后,搜索引擎根据用户的输入特征值,调用数据库存储过程,在数据库视图内获取请求结果(测试行为脚本目录),自动创建测试任务。测试任务创建完成后,测试人员可以在测试工具客户端上手动编辑测试任务,包括增减测试行为脚本目录,设置脚本执行的顺序模式(顺序、随机)。

运行测试任务后,测试工具服务端先读取、解析测试数据文件内的测试组网定义,检查测试组网通信是否正常。然后根据设置的顺序模式,动态生成的脚本执行列表,并从测试场景库导入列表内测试行为脚本和测试数据文件、公共函数文件。每条测试指令均指定有对应测试机;测试工具通过ssh协议,把测试指令发送给对应的测试机的接口驱动软件执行。每个测试行为脚本执行完成后,测试工具连接数据库,插入测试结果记录。

本系统在硬件方面包括一台调度服务器和多台测试机,多台计算机可对一台或多台的网闸进行测试;调度服务器、测试机、计算机、网闸使用网线连接路由器和交换机,同时调度服务器、测试机和网闸之间使用ssh协议进行免密码校验通信。测试人员可在计算机上运行测试工具客户端(用户表示层硬件)提交测试请求;当网络内部署多台网闸,可并行执行多个相同、不同组网的测试任务,但一般情况每个网闸只能执行一个测试任务。调度服务器可通过路由器,和不同网段的测试机进行通信。

本实施例还提供一种自动化网闸测试系统的工作方法,如图2所示,具体步骤如下:

步骤一:调度服务器、计算机、测试机、网闸启动后建立通信连接;

步骤二:用户在测试工具客户端输入测试特征值并提交,如“c型设备”“稳定性测试”“功能测试”“未测试通过”等;

步骤三:测试工具服务端的脚本搜素引擎检索出测试脚本目录,并创建测试任务;

步骤四:编辑测试任务(可选):调整脚本列表、运行模式;

步骤五:运行测试任务:测试工具动态生成脚本执行队列,再按照队列逐个从测试场景库读取并解析测试组网、测试行为脚本。执行脚本前需实例化测试组网并检测组网内设备是否已“占用”,设备间通信是否正常,设备已“占用”或通信不正常则停止执行任务。解析测试行为脚本后生成测试指令(一个脚本包含多个测试步骤,每个测试步骤对应一条测试指令,每条测试指令均指定负责执行的测试机);

步骤六:每次生成的测试指令,由测试工具通过ssh协议下发给对应的测试机的接口驱动软件;

步骤七:接口驱动软件调用api接口生成设备指令、报文后下发给网闸,并解析网闸响应数据返回给测试工具;

步骤八:测试工具判定该测试步骤的测试结果,如果判定“成功”则继续执行,否则判定该测试场景测试不通过并保存测试结果;脚本所有测试步骤执行完成并判定“成功”,则判定该测试场景通过并保存该测试项目测试结果;

步骤九:所有测试脚本执行完成后任务结束,保存任务测试结果。

本发明中,测试行为脚本、公共函数和搜索引擎除了python脚本语言,也可以使用其他语言;测试数据文件可以使用脚本语言定义,也可以用通用文件进行数据存储;使用的数据库可以使用常见的数据库(mysql、sqlite等),也可以使用其他物理存储结构;web框架可以根据所选脚本语言挑选;所涉及的数据库视图表可根据产品特点进行灵活定义。

本发明优点如下:

1、可以实现复杂组网、复杂测试场景的自动化,并且可以同时对多个组网的网闸设备同时进行测试、监控。

2、使用api接口库,网闸协议、接口变化对不修改测试脚本;使用接口驱动软件,当api接口输入参数和返回值格式变化,仅需修改驱动软件;降低了测试系统的维护工作量。

3、测试人员仅需要在用户表示层使用测试需求描述语言,如“集群组网”、“c型设备”,而非设备指令,利用测试脚本和结果搜索引擎,可快速定制、运行测试任务,生成测试报告和覆盖分析报告,提升了测试效率。

本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。如果本领域技术人员,在不脱离本发明的精神所做的非实质性改变或改进,都应该属于本发明权利要求保护的范围。

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