基于工作流的分布式并行自动化测试系统技术方案

技术编号:20176523 阅读:59 留言:0更新日期:2019-01-23 00:20
本发明专利技术公开了一种基于工作流的通用化、分布式、并行化的自动化测试系统,由测试流程子系统和测试服务子系统组成。测试流程子系统实现的功能有测试流程的开发与管理、测试的执行控制与调度、历史数据管理、用户管理与权限分配、接收测试指令、执行测试指令以及返回测试结果;测试服务子系统实现的功能主要为测试服务注册、测试服务管理、测试服务的调用、资源管理与驱动、仿真模型驱动以及测试服务执行。本发明专利技术是基于IEEE1226标准设计,提供开发接口,便于二次开发与扩展;分布式架构具备测试资源灵活配置的能力;工作流和关键字概念的引入简化了测试用例的编写过程,可实现面向广泛测试对象的各级测试、并行测试以及测试平台复用。

Distributed Parallel Automated Testing System Based on Workflow

The invention discloses a universal, distributed and parallel automatic test system based on workflow, which consists of a test flow subsystem and a test service subsystem. The functions of test process subsystem include development and management of test process, control and scheduling of test execution, historical data management, user management and privilege allocation, receiving test instructions, executing test instructions and returning test results. The functions of test service subsystem are registration of test service, management of test service, invocation of test service, resource management and return of test results. Driver, simulation model driver and test service execution. The invention is based on IEEE1226 standard design, provides development interface for secondary development and expansion; the distributed architecture has the ability of flexible configuration of test resources; the introduction of workflow and keyword concept simplifies the test case writing process, and can realize all levels of test, parallel test and test platform reuse for a wide range of test objects.

【技术实现步骤摘要】
基于工作流的分布式并行自动化测试系统
本专利技术涉及一种基于工作流的分布式并行自动化测试系统,属于自动化测试领域,尤其涉及基于各类总线/非总线测试资源的通用测试领域。
技术介绍
自动测试系统(AutomaticTestSystem,ATS)是指在人极少参与或不参与的情况下,利用计算机控制,自动完成信号激励、测量、数据处理、故障诊断等任务的测试系统,通常在标准的仪器总线基础上组建而成。工程上,自动测试系统往往针对特定的领域和被测对象展开,与人工测试相比,自动测试系统省时省力、能显著提高生产效率和产品质量。自动测试系统的发展自20世纪50年代起,大体可以分为三个发展阶段:(1)第一代自动测试系统——专用型测试系统;(2)第二代自动测试系统——台式积木型;(3)第三代自动测试系统——模块化化仪器集成性。自动测试系统的发展经历了三代,逐步克服测试对象专一、缺乏硬件接口标准、软件规范缺失等不足,近十几年来,通用自动测试系统的开发已成为主流。通用自动测试系统更注重于采用公共的测试资源去适应不同的测试需要,朝着建立统一的测试系统体系结构、实现测试程序的可移植和互操作、与人工智能技术结合提高测试诊断的效率和有效性以及实现分布式集成诊断测试等方向发展。在自动化测试领域,传统通用测试平台具有规模大、复杂度高、配置能力差、资源使用率较低等缺点,而测试平台软件与测试资源的耦合程度,也严重影响着测试平台的扩展性、移植性与可重配置性。
技术实现思路
本专利技术的目的是解决传统自动化通用测试平台的配置灵活性差、设计重用度低和资源使用率较低的技术问题,提出一种基于工作流的通用化、分布式、并行化的自动化测试系统,集成了测试流程的开发与管理、测试执行、任务调度、历史数据管理、用户管理、资源管理与驱动、仿真模型驱动等功能。自动化测试系统采用分布式架构,包含一个测试流程控制端、多个测试执行端、一个测试服务注册端和多个测试服务节点,每个测试服务节点可以采用相同或不同的软件应用程序配以相同或不同的测试资源(总线资源/非总线资源/仿真资源)。测试流程控制端实现的功能有测试流程的开发与管理、测试的执行控制与调度、历史数据管理以及用户管理与权限分配;测试执行端实现的功能主要为接收测试指令、执行测试指令以及返回测试结果;测试服务注册端实现的功能主要为测试服务注册、测试服务管理以及测试服务的调用;测试服务节点实现的功能主要为资源管理与驱动、仿真模型驱动以及测试服务执行。所述的分布式架构可以分为测试流程和测试服务两个相对独立的子系统,同时整个系统遵循IEEE1226标准所描述的分层逻辑结构。测试流程子系统是以测试流程控制端为中心的星型拓扑结构,测试需求与测试策略层、测试过程层的实现都位于测试流程子系统。测试服务子系统是以测试服务注册端为中心的星型拓扑结构,资源管理与仪器控制层的实现都位于测试服务子系统。用户在测试流程子系统根据测试需求与测试策略开发测试用例,生成测试任务,经过统一调度后通过通信网络向测试服务子系统发送命令,在测试服务子系统调用相关测试资源执行测试服务。自动化测试系统分布式、层次化的结构设计降低了测试系统与测试资源的耦合度,提高了测试系统的扩展性与可重配置性。测试执行端和测试服务节点的数目、测试服务节点所配置的具体资源,都由用户根据需求与测试策略灵活配置。测试服务子系统包含一个测试服务注册端和多个测试服务节点。测试服务节点包含资源代理模块,资源代理对二次封装的仪器驱动进行解析和控制,隔离了不同测试资源厂家与类型的差别,将每一个测试资源作为一个通用的对象,工作人员通过配置文件管理可用的测试资源。软件中利用Python语言的动态性实现测试资源驱动的动态加载与控制,实现了逻辑仪器到真实仪器/虚拟仪器的一一映射。测试服务注册端是外界调用测试服务的唯一通道,测试服务节点在提供服务前必须主动将自身信息发送到测试服务注册端,由测试服务注册端保持通信连接。测试服务注册端提供多种编程语言的API,使得符合平台规范的由不同语言开发的服务节点均可以被测试服务注册端管理,提高测试服务的通用性。测试流程子系统包含一个测试流程控制端和测试执行端,测试流程是整个子系统的核心。正如人们使用编程函数进行程序开发一样,用户利用测试关键字(也可以叫做关键字)完成测试任务的开发。关键字包含一段可以执行并返回标准结果的代码,一般可以由脚本语言书写,不需要编译就可以直接运行,是整个测试流程中的原子操作。另外,关键字也包含键值对形式的配置信息,配置信息的参数化使关键字具有良好的可复用性。测试流程的开发既可以在测试流程控制端的界面上进行可视化设计,又可以导入符合测试流程子系统所约束的规范的测试流程JSON文件。JSON文件中所描述内容可以看作一幅有向无环图,图中节点表示待执行的测试关键字,有向图中的边表示各测试关键字的依赖关系以及测试数据的传递方向。JSON文件所描述的内容只包含关键字依赖关系、关键字的标识ID和测试相关参数,关键字的具体代码只保存在关键字库中,在运行时由平台统一调用。在测试流程子系统的界面中中进行流程开发,实质上是生成测试流程的实例对象,并对其属性值进行编辑。用户通过对测试关键字的调用与配置,完成测试流程编辑,进而完成测试流程执行过程。本专利技术的优点在于:(1)所述的自动化测试系统采用分布式架构实现了IEEE1226标准所描述的测试泛环境,标准的使用提高了测试平台的通用性和重用性,分布式架构实现是测试平台具有更强的配置能力并提高资源使用率,给用户以更大的测试配置自由度与灵活度。(2)本专利技术在资源管理层引入资源代理,将每一个用户配置的测试资源模块作为一个通用逻辑对象,使软件平台适配各厂家各类测试资源,对测试服务节点测试资源进行修改时只需修改相应驱动,无需修改软件代码,极大程度上实现测试软件与测试资源的解耦。(3)本专利技术使用参数化的有向无环图描述测试流程,并支持数据根据有向图方向进行传递,因此整个测试描述具有良好的通用性和可读性,并易于复用和修改,极大地提高了测试流程的开发效率。(4)本专利技术中关键字概念的引入简化了测试流程的编写过程,使测试人员无需编程就可以根据关键字结合测试逻辑编写测试任务与执行控制,其中关键字库的实现为面向广泛测试对象的各级测试与测试平台复用提供了基础。附图说明图1为本专利技术提供的自动化测试系统结构图;图2为本专利技术的测试流程子系统分层结构;图3为本专利技术的测试服务节子系统分层结构;图4为本专利技术的测试流程描述图;具体实施方式下面将结合附图对本专利技术提供的自动化测试系统及其实现方法进行详细说明。本专利技术提供一种基于工作流的通用化、分布式的并行自动化测试系统,所述测试系统结构如图1所示。所述的自动化测试系统采用分布式架构,包含一个测试流程控制端、多个测试执行端、一个测试服务注册端和多个测试服务节点,每个测试服务节点可以采用相同或不同的软件应用程序配以相同或不同的测试资源(总线资源/非总线资源/仿真资源)、测试流程控制端实现的功能有测试流程的开发与管理、测试的执行控制、测试任务调度、历史数据管理以及用户管理与权限分配;测试执行端实现的功能主要为接收测试指令、执行测试指令以及返回测试结果;测试服务注册端实现的功能主要为测试服务注册、测试服务管理以及测试服务的调用;测试服务节本文档来自技高网...

【技术保护点】
1.基于工作流的分布式并行自动化测试系统,其特征在于:所述的自动化测试系统采用分布式架构,包含一个测试流程控制端、多个测试执行端、一个测试服务注册端和多个测试服务节点,每个测试服务节点可以采用相同或不同的软件应用程序配以相同或不同的测试资源(总线资源/非总线资源/仿真资源)、测试流程控制端实现的功能有测试流程的开发与管理、测试的执行控制、测试任务调度、历史数据管理、用户管理与权限分配以及人机交互界面;测试执行端实现的功能主要为接收测试指令、执行测试指令以及返回测试结果;测试服务注册端实现的功能主要为测试服务注册、测试服务管理以及测试服务的调用;测试服务节点实现的功能主要为资源管理与驱动、仿真模型驱动以及测试服务执行。

【技术特征摘要】
1.基于工作流的分布式并行自动化测试系统,其特征在于:所述的自动化测试系统采用分布式架构,包含一个测试流程控制端、多个测试执行端、一个测试服务注册端和多个测试服务节点,每个测试服务节点可以采用相同或不同的软件应用程序配以相同或不同的测试资源(总线资源/非总线资源/仿真资源)、测试流程控制端实现的功能有测试流程的开发与管理、测试的执行控制、测试任务调度、历史数据管理、用户管理与权限分配以及人机交互界面;测试执行端实现的功能主要为接收测试指令、执行测试指令以及返回测试结果;测试服务注册端实现的功能主要为测试服务注册、测试服务管理以及测试服务的调用;测试服务节点实现的功能主要为资源管理与驱动、仿真模型驱动以及测试服务执行。2.根据权利要求1所述的自动化测试系统,其特征在于:所述的自动化测试系统采用分布式架构,形成测试流程和测试服务两个相对独立的子系统,同时整个系统遵循IEEE1226标准所描述的分层逻辑结构。测试流程子系统是以测试流程控制端为中心的星型拓扑结构,测试需求与测试策略层、测试过程层的实现都位于测试流程子系统。测试服务子系统是以测试服务注册端为中心的星型拓扑结构,资源管理与仪器控制层的实现都位于测试服务子系统。用户在测试流程子系统根据测试需求与测试策略开发测试用例,生成测试任务,经过统一调度后通过通信网络向测试服务子系统发送命令,在测试服务子系统调用相关测试资源执行测试服务。3.根据权利要求1所述的自动化测试系统,其特征在于:测试流程子系统和测试服务子系统都采用分布式和模块化设计。同时,测试流程子系统和测试服务子系统没有直接的依赖关系,两者通过测试用例联系在一起,如果测试程序中不涉及调用测试服务子系统的代码语句,则两个子系统完全独立。由于测试引擎采用分布式架构,自动化测试系统内置通信服务。用户在测试流程子系统根据测试需求与测试策略开发测试用例,生成测试任务,经过统一调度后通过通信网络向测试服务子系统发送命令,在测试服务子系统调用相关测试资源执行测试服务。4.根据权利要求1所述的自动化测试系统,其特征在于:测试服务子系统包含一个测试服务注册端和多个测试服务节点。测试服务节点包含资源代理模块,资源代理对二次封装的仪器驱动进行解析和控制,隔离了不同测试资源厂家与类型的差别,将每一个测试资源作为一...

【专利技术属性】
技术研发人员:于劲松盛武斌翁泽宇唐荻音梁旭刘浩
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1