CN117354218B - 一种基于分布式实时通信的自动化测试方法和系统 - Google Patents
一种基于分布式实时通信的自动化测试方法和系统 Download PDFInfo
- Publication number
- CN117354218B CN117354218B CN202311642669.6A CN202311642669A CN117354218B CN 117354218 B CN117354218 B CN 117354218B CN 202311642669 A CN202311642669 A CN 202311642669A CN 117354218 B CN117354218 B CN 117354218B
- Authority
- CN
- China
- Prior art keywords
- test
- data
- communication
- distributed
- service module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 306
- 238000004891 communication Methods 0.000 title claims abstract description 104
- 238000012545 processing Methods 0.000 claims abstract description 78
- 238000000034 method Methods 0.000 claims abstract description 13
- 230000000007 visual effect Effects 0.000 claims abstract description 9
- 230000006870 function Effects 0.000 claims description 31
- 238000013515 script Methods 0.000 claims description 24
- 230000005540 biological transmission Effects 0.000 claims description 20
- 230000004044 response Effects 0.000 claims description 20
- 230000010354 integration Effects 0.000 claims description 14
- 238000004806 packaging method and process Methods 0.000 claims description 13
- 238000002347 injection Methods 0.000 claims description 8
- 239000007924 injection Substances 0.000 claims description 8
- 230000008569 process Effects 0.000 claims description 8
- 238000012795 verification Methods 0.000 claims description 6
- 238000012423 maintenance Methods 0.000 claims description 4
- 230000001960 triggered effect Effects 0.000 claims description 4
- 238000011161 development Methods 0.000 claims description 3
- 238000012805 post-processing Methods 0.000 claims description 3
- 238000012546 transfer Methods 0.000 claims 1
- 238000010276 construction Methods 0.000 abstract description 6
- 238000010998 test method Methods 0.000 abstract description 4
- 238000004458 analytical method Methods 0.000 description 7
- 238000013461 design Methods 0.000 description 5
- 239000013307 optical fiber Substances 0.000 description 5
- XSQUKJJJFZCRTK-NJFSPNSNSA-N UREA C 14 Chemical compound N[14C](N)=O XSQUKJJJFZCRTK-NJFSPNSNSA-N 0.000 description 4
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 208000025697 familial rhabdoid tumor Diseases 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000000779 smoke Substances 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/04—Processing captured monitoring data, e.g. for logfile generation
- H04L43/045—Processing captured monitoring data, e.g. for logfile generation for graphical visualisation of monitoring data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/06—Generation of reports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/2871—Implementation details of single intermediate entities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于分布式实时通信的自动化测试方法和系统,该方法包括:在被测服务器上,先将搭载了分布式通讯组件的自动化测试中间服务模块作为分布式架构的一个节点加入到智能信号处理系统的数据通讯服务中;再借助此自动化测试中间服务模块中集成的微网络框架把DDS的订阅协议和发布协议封装成Http协议的API接口来与远端测试服务器进行通信;在远端测试服务器上,通过自动化测试框架打造的接口自动化测试框架实现测试用例的编写、管理以及测试结果的可视化展示;最后由CI集成化工具来完成自动化测试的可持续构建、部署和执行工作。本发明能够将被测系统的测试流水化、模块化,在保护被测系统性能和效率的情况下完成各类测试。
Description
技术领域
本发明涉及软件测试技术领域,具体涉及用于传感器智能信号处理系统的测试领域,尤其涉及一种基于分布式实时通信的自动化测试方法和系统。
背景技术
传感器通过直接或间接地测量温度、应变、振动、声波、压力、折射率、气体、磁场等物理量,将被测值按一定的规律转换成电或其它形式的信号,输出并开展后续处理、分析等。其中,基于光纤的传感器利用光纤作为传感敏感元件和传输信号介质,探测沿着光纤不同位置的待测物理量,并将采集到的信号接入至后端的信号处理系统。现阶段光纤传感器广泛应用于油气开采运输、周界安防、建筑物检测、城市管道监测等领域。
自动化测试是把人为驱动的测试行为转化为机器执行的一种过程。自动化测试可以节省人力、时间和硬件资源,提高测试效率,快速高效、可靠地完成回归等手工测试难以执行的测试,比如大量的用户并发,从而提升被测软件的可信度和可靠性。
用于接收、处理、分析光纤传感器信号的智能信号处理系统,由信号处理算法软件、系统软件和高效运算硬件组成,接收传感器采集的传感信号,实时或非实时开展批量分析与计算,具有高实时性、大数据量、多算法模块的特点。对这类系统的测试仅靠传统的手工方式进行黑盒测试是非常不充分的,同时,由于智能信号处理系统面对极大的数据量,获取该系统的中间数据进行测试分析是非常重要且极具挑战性的。
数据分发服务(Data Distribution Service,DDS)是新一代分布式实时通信中间件协议,采用发布/订阅体系架构,强调以数据为中心,提供丰富的服务质量策略,以保障数据进行实时、高效、灵活的分发,可满足各种分布式实时通信应用低延迟、高可靠、可扩展架构的需求。DDS目前在工业、航空、交通、科研等领域都有广泛的应用。
对智能信号处理系统开展手动测试时无法查看智能信号处理系统运行的中间数据,无法客制化注入数据,且回溯测试时间长、效率低。自动化测试可以实时、高效、可靠的进行软件验证,因此,需要设计一种自动化测试方法。
发明内容
本发明的目的在于针对现有技术中手动测试效率低、无法获得智能信号处理系统的中间数据、难以分模块测试的问题,提供一种基于分布式实时通信的自动化测试方法和系统。本发明能够高效地完成对智能信号处理系统的中间数据的获取与比对、数据注入、分模块测试、功能验证等系列测试,通过使用分布式通讯的方式降低了被测系统的性能功能影响,并完成实时大数据获取。
本发明的目的是通过以下技术方案来实现的:本发明实施例第一方面提供了一种基于分布式实时通信的自动化测试方法,包括以下步骤:
(1)在被测服务器,使用分布式通讯中间件部署自动化测试中间服务模块,以将该自动化测试中间服务模块作为分布式架构的一个节点加入到智能信号处理系统的数据通讯服务中;
(2)在被测服务器,基于微网络框架封装自动化测试中间服务模块的API接口;
(3)在测试服务器,基于自动化测试框架部署自动化测试服务模块;
(4)基于CI集成化工具完成被测服务器和测试服务器的部署,以及通过调用API接口完成自动化测试的执行,最终实现一键运行自动化测试以及测试报告的可视化显示。
进一步地,所述自动化测试中间服务模块具体包括:
(1.1)使用分布式通讯中间件的内置接口按照智能信号处理系统使用的各种中间数据的数据类型,组织话题、域创建订阅者和发布者;
(1.2)按照智能信号处理系统的中间数据的数据类型对分布式通讯中间件总线上的订阅数据进行解析,以获取智能信号处理系统的实时中间数据,并在订阅成功后实时更新订阅进度;
(1.3)将订阅成功的实时中间数据按照预设的科学数据格式存储;
(1.4)根据智能信号处理系统中参数设置模块和读取模块的通信协议组织数据,并将其发布到分布式通讯中间件总线上并等待智能信号处理系统响应与发布结果,并将该结果发送到测试服务器;
(1.5)对分布式通讯中间件订阅者节点、发布者节点进行线程和资源管理;
(1.6)对测试服务器发送的强制退出指令进行响应,对退出任务的节点进行后处理,以释放该节点的线程和对应的内存。
进一步地,所述分布式通讯中间件按层划分为传输层、实时发布订阅协议层以及数据分发服务层,其中,所述传输层基于共享内存、TCP或UDP进行数据传输,不同的分布式节点建立自身的参与者,由参与者管理对应的消息发送方、消息接收方,同一个话题的消息发送方与消息接收方建立联系,以完成实时数据通信;所述数据分发服务层用于以数据为中心的应用程序通信,该实时发布订阅协议层定义了通信应用程序编程接口和通信语义,该接口用于数据提供者和数据使用者之间的通信;所述实时发布订阅协议层用于支持数据分发服务层的应用,是发布者-订阅者的通信中间件。
进一步地,所述传输层基于共享内存进行数据传输。
进一步地,所述步骤(2)包括以下子步骤:
(2.1)基于微网络框架将自动化测试中间服务模块的不同功能所对应的发布协议和订阅协议转换成对应的Http协议;
(2.2)在微网络框架中引入数据库以加入登录权限管理;
(2.3)根据不同功能对应的Http协议封装自动化测试中间服务模块的API接口。
进一步地,所述步骤(3)包括以下子步骤:
(3.1)基于自动化测试基础框架,并采用分层思想设计自动化测试服务模块;
(3.2)编写自动化测试中间服务模块的客户端调用接口以及多种可移植方法程序;
(3.3)在步骤(3.2)的基础上完成测试用例的编写,以及对应的测试驱动脚本的开发;
(3.4)运行自动化测试服务模块并搜集测试结果,将整个过程转化成可在线展示的测试报告。
进一步地,所述自动化测试服务模块包括基础层、接口层、业务层、数据层和驱动层,其中,所述基础层用于通用API接口的封装,为API接口的调用提供支持;所述接口层用于对所有服务器单一API接口的封装,负责填充请求数据、发送请求和返回响应;所述业务层用于组装测试数据和多个单一API接口以实现不同的业务流;所述数据层用于为业务层提供测试数据,实现测试用例的管理和维护;所述驱动层用于驱动测试用例,通过调用不同的业务流以完成测试用例的测试。
进一步地,所述步骤(4)包括以下子步骤:
(4.1)在CI集成化工具的服务器节点中安装被测服务器和测试服务器运行所需要的环境配置;
(4.2)在CI集成化工具中创建一键部署、运行被测服务器和自动化测试中间服务模块的第一CI脚本,以及一键部署、运行自动化测试服务模块和展示测试报告的第二CI脚本;
(4.3)基于CI集成化工具关联第一CI脚本和第二CI脚本,以使第一CI脚本运行成功后自动触发第二CI脚本的运行。
本发明实施例第二方面提供了一种基于分布式实时通信的自动化测试系统,用于实现上述的基于分布式实时通信的自动化测试方法,所述自动化测试系统包括:
智能信号处理系统,作为被测试的软件,用于测试该智能信号处理系统的中间数据;
自动化测试中间服务模块,包括分布式通讯订阅发布管理模块和请求响应API模块,所述分布式通讯订阅发布管理模块用于通过智能信号处理系统的各种类型的中间数据、参数设置模块和读取模块对应的数据结构、话题、域、参与者来实现分布式数据通信,所述请求响应API模块用于基于微网络框架集成分布式架构的数据订阅、参数读取、数据注入、数据库存储及登录权限校验功能,并通过Http协议与自动化测试模块异步通信;
自动化测试模块,用于基于自动化测试框架定制测试任务;和
CI集成化工具,用于自动化执行自动化测试服务模块和自动化测试中间服务模块,实现一键运行自动化测试智能信号处理系统以及测试报告的可视化显示。
进一步地,所述自动化测试系统还包括系统硬件,所述系统硬件包括被测服务器和测试服务器,所述被测服务器上运行有智能信号处理系统和自动化测试中间服务模块,所述测试服务器上运行有自动化测试服务模块。
本发明的有益效果是,本发明使用分布式通讯技术,在不影响智能信号处理系统运行效果的基础上得到所需的信号处理过程中的中间数据,用于数据比对和验证;通过实时数据注入功能完成参数读取、设置功能,修改智能信号处理系统的系统运行参数及其他参数,以测试不同参数的运行效果,高效的完成参数和被测系统的性能验证;本发明提高了测试效率,完成自动化测试用例管理和自动化运行,通过自动化测试服务模块的分层设计,降低每层模块之间的耦合。本发明所述的自动化测试方法和系统,有效提取了智能信号处理系统后台系统的中间数据,读取和设置智能信号处理系统的系统运行参数等参数,并带有登录权限功能和日志上报功能,有效完成回归、冒烟测试等场景下的一键自动化测试。本发明通过分布式自动化测试框架将智能信号处理系统的测试流水化、模块化,在保护被测智能信号处理系统性能和效率的情况下完成各类测试。
附图说明
图1是本发明的基于分布式实时通信的自动化测试方法的流程图;
图2是本发明的基于分布式实时通信的自动化测试系统的结构框架示意图;
图3是本发明的分布式通讯中间件对应的通信模型的结构框架示意图;
图4是本发明的自动化测试中间服务模块的流程图;
图5是本发明的自动化测试模块的流程图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。显而易见地,下面描述中使用的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
下面结合附图,对本发明进行详细说明。在不冲突的情况下,下述的实施例及实施方式中的特征可以相互组合。
本发明的基于分布式实时通信的自动化测试方法首先基于分布式通讯中间件部署自动化测试中间服务模块以实现测试服务器与智能信号处理系统间的大数据交互;然后基于轻量级的微网络框架(如Flask)封装功能API接口以实现被测服务器与测试服务器间的指令交互;再以现有简洁高效的自动化测试框架(如Pytest)为基础来编写、管理和执行测试用例,并可视化测试结果;最后通过CI集成化工具(如Jenkins)实现可持续、自动化地构建和测试。如此便可搭建一套完整的智能信号处理系统的自动化测试系统,可以自动化地对智能信号处理系统进行测试。
具体地,该自动化测试方法如图1所示,包括以下步骤:
(1)在被测服务器,使用分布式通讯中间件部署自动化测试中间服务模块,以将该自动化测试中间服务模块作为分布式架构的一个节点加入到智能信号处理系统的数据通讯服务中。
需要说明的是,智能信号处理系统是被测系统,其运行在被测服务器上。智能信号处理系统具有高实时性、处理的中间数据量大、算法模块多而复杂的特点。传统的测试方法需要智能信号处理系统具备存储中间大数据能力以供测试平台进行分析,会对原有智能信号处理系统的性能造成影响,且需要对智能信号处理系统代码进行变更,耦合性强,占有原有程序的资源。
应当理解的是,分布式架构一个总节点和多个子节点,自动化测试中间服务模块、智能信号处理系统是作为分布式架构中的子节点,各个子节点之间基于该分布式架构进行互相之间的通信,彼此之间定义好数据格式、消息类型、传输方式、接收协议等,互相即可高效便捷的转发消息。
本实施例中,自动化测试中间服务模块具体包括:
(1.1)使用分布式通讯中间件的内置接口按照智能信号处理系统使用的各种中间数据的数据类型,组织话题(Topic)、域(Domain)创建订阅者和发布者。
应当理解的是,在分布式系统中,相同域的对象才能相互通信,加入了同一个话题的对象,按照对象的身份是订阅者、发布者自动获取消息。中间数据是程序如C++语言中的各种结构体。
进一步地,分布式通讯中间件按层划分为传输层、实时发布订阅协议(Real TimePublish Subscribe Protocol,RTPS)层以及数据分发服务(Data Distribution Service,DDS)层,并拥有发现机制和侦听服务,按照需求建立话题、消息节点、共享内存消息传输方式进行消息转发。该分布式通讯中间件所对应的通信模型如图3所示,实时分布式通讯在搭建系统时可以按照此通信模型进行客制化定制,例如,可以根据实际需要修改传输类型,如TCP、UDP、共享内存等类型;还可以根据定制化的要求修改注册的数据类型、话题、域等,按照该通信模型建立通讯数据的发布者、订阅者,同时被测的智能信号处理系统也应用该通信模型进行通讯,得到自动化测试中间服务模块后,将需要的数据转发给自动化测试中间服务模块。
应当理解的是,DDS是一套通信协议和API标准,DDS是一种用于分布式软件的以数据为中心的通信协议;RTPS协议是DDS协议实现的标准协议,它的目的和范围是确保基于不同DDS供应商的应用程序可以实现互操作。
具体地,传输层基于共享内存、TCP或UDP进行数据传输,不同的分布式节点建立自身的参与者(Participant),由Participant管理对应的消息发送方(Writer)、消息接收方(Reader),各个节点都依赖于服务质量(Quality of Service Policy,QOS)保证传输质量,同一个Topic的Writer与Reader建立联系,从而完成实时数据通信。DDS层用于以数据为中心的应用程序通信,该DDS层定义了通信应用程序编程接口(API)和通信语义,这些接口用于数据提供者和数据使用者之间的通信。RTPS层用于支持DDS层的应用,是发布者-订阅者的通信中间件,通过尽力而为的传输,例如 UDP/IP。此外,快速DDS(Fast DDS)提供对TCP和共享内存(SHM)传输。
优选地,传输层基于共享内存进行数据传输。共享内存是指在多处理器的计算机系统中,可以被不同中央处理器访问的大容量内存。由于多个CPU需要快速访问存储器,这样就要对存储器进行缓存。任何一个缓存的数据被更新后,由于其他处理器也可能要存取,共享内存就需要立即更新,否则不同的处理器可能用到不同的数据。智能信号处理系统的数据量大,所以不论是智能信号处理系统内部还是自动化测试中间服务模块都选择了共享内存的数据访问方式。
(1.2)按照智能信号处理系统的中间数据的数据类型对分布式通讯中间件总线上的订阅数据进行解析,以获取智能信号处理系统的实时中间数据,并在订阅成功后实时更新订阅进度。
应当理解的是,被测的智能信号处理系统和分布式通讯中间件都使用了Fast DDS服务,配置好相关参数如协议类型等,之后,被测的智能信号处理系统和分布式通讯中间件基于总线进行交互。
进一步地,订阅数据具体是创建发布者、订阅者以及与注册相关的数据类型、话题、域,所形成的订阅数据。根据数据类型在对订阅数据进行解析后,就能得到被测的智能信号处理系统内的实时中间数据。
需要说明的是,不同的数据类型对应不同的话题,话题在创建订阅者、发布者时已经创建,收到对应话题时就会自动触发数据解析。订阅者回调函数被触发,得到的中间数据对应的数据结构体上带有起始时间和结束时间,若得到的中间数据的时间信息和需要的一致,即表示订阅成功。
(1.3)将订阅成功的实时中间数据按照预设的科学数据格式存储。
(1.4)根据智能信号处理系统中参数设置模块和读取模块的通信协议组织数据,并将其发布到分布式通讯中间件总线上并等待智能信号处理系统响应与发布结果,并将该结果发送到测试服务器。
具体地,智能信号处理系统包括参数设置模块和读取模块,参照参数设置模块和读取模块的通信协议规定的数据格式组织数据,然后发布到分布式通讯中间件总线上,之后等待智能信号处理系统响应与发布结果,即智能信号处理系统回复已接受数据,并发布成功或失败的结果,再将该结果发送到测试服务器。
(1.5)对分布式通讯中间件订阅者节点、发布者节点进行线程和资源管理。
应当理解的是,订阅者、发布者每建立一个对象即维护一个线程,发布信息或接收信息,对这些对象进行线程和资源管理,直到完成任务或强制退出。
(1.6)对测试服务器发送的强制退出指令进行响应,对退出任务的节点进行后处理,以释放该节点的线程和对应的内存。
应当理解的是,测试服务器发送强制退出指令给运行在被测服务器上的自动化测试中间服务模块,自动化测试中间服务模块会对该强制退出指令进行响应,释放退出任务节点的线程和相应内存。
(2)在被测服务器,基于微网络框架封装自动化测试中间服务模块的API接口。
应当理解的是,基于轻量级的微网络框架封装成自动化测试中间服务模块的API接口,可以连接被测服务器和远端测试服务器,实现二者之间的相互通信。
进一步地,微网络框架包括Flask框架等轻量级的微网络框架,Flask框架是一种成熟的使用 Python 编写的轻量级 Web 应用框架,该Flask框架提供了一个稳健的核心,通过扩展实现其他功能。
(2.1)基于微网络框架将自动化测试中间服务模块的不同功能所对应的发布协议和订阅协议转换成对应的Http协议。
进一步地,自动化测试中间服务模块的功能包括中间数据订阅、订阅状态查询、参数设置、参数获取、数据注入、日志上报等功能。
应当理解的是,不同的功能对应有不同的Http协议,基于轻量级的微网络框架将相关的订阅协议和发布协议封装成不同的Http协议,实现不同功能的网络通讯。
(2.2)在微网络框架中引入数据库(如MySQL)以加入登录权限管理,实现API接口的权限保护。
进一步地,数据库包括MySQL、MariaDB、Dynamo等。
应当理解的是,数据库可以存储用户名和密码信息,因此在微网络框架中引入数据库加入登录权限管理,有利于实现API接口的权限保护。
(2.3)根据不同功能对应的Http协议封装自动化测试中间服务模块的API接口。
应当理解的是,API接口也有多种类型,对应不同的Http协议,对应不同的功能,远端测试服务器通过调用API接口即可获取自动化测试中间服务模块的功能。
(3)在测试服务器,基于自动化测试框架(如Pytest框架)部署自动化测试服务模块。
应当理解的是,自动化测试框架可以采用现有的成熟的自动化测试框架,如Pytest框架。Pytest框架是一种成熟的简洁高效的自动化测试框架,具体实现的测试功能基于该自动化测试框架实现,可以基于该自动化测试框架部署自动化测试服务模块,以客制化测试任务。
(3.1)基于自动化测试基础框架,并采用分层思想设计自动化测试服务模块。
本实施例中,自动化测试服务模块划分为5层,分别是基础(Base)层、接口层、业务层、数据层和驱动层。其中,Base层用于通用API接口的封装,为API接口的调用提供支持,如Http请求、文件上下传、项目文件的通用配置和解析以及订阅数据的比对等。接口层用于对所有服务器单一API接口的封装,负责填充请求数据、发送请求(Request)和返回响应(Response)。业务层用于组装测试数据和多个单一API接口来实现不同的业务流。数据层用于为业务层提供测试数据,实现测试用例的管理和维护。驱动层用于驱动测试用例,通过调用不同的业务流以完成测试用例的测试,这一层不关心底层的逻辑、业务的实现以及测试数据的组装,而只关心如何测试业务。
应当理解的是,分层思想有利于降低每层模块的耦合性,降低每层模块相互之间的依赖性。通用API接口表示可以移植到其他项目,单一API接口是指对自动化测试中间服务模块提供的功能接口url封装相应的网络请求(Request)和收到响应(Response)。
(3.2)编写自动化测试中间服务模块的客户端调用接口以及多种可移植方法程序,如:测试用例的解析、已存储数据文件的读写、通用配置信息的获取等。
(3.3)在步骤(3.2)的基础上完成测试用例的编写,以及对应的测试驱动脚本的开发。
应当理解的是,测试用例需要单独编写,比如订阅某个时间段的几种类型的数据,在测试用例完成后,自动运行;每次被测软件更新后,一键自动化测试。测试用例属于在测试服务器上运行。
需要说明的是,可以根据实际的测试需求在步骤(3.2)的基础上编写对应的测试用例,以及该测试用例对应的测试驱动脚本,如此便可客制化测试任务。
(3.4)运行自动化测试服务模块并搜集测试结果,将整个过程转化成可在线展示的测试报告。
需要说明的是,自动化测试服务模块的具体实施过程包括测试框架搭建、应用接口封装、测试数据驱动、测试场景脚本设计、测试用例套的执行、测试结果断言、测试报告收集展示等。这些过程可利用分层思想进行设计,将其分为:Base层、接口层、业务层、数据层和驱动层,降低代码之间的耦合性;如此,既能很好地提高整个程序的可读性、灵活性和复用性,又能大大降低了自动化的维护成本。
(4)基于CI集成化工具(如Jenkins)完成被测服务器和测试服务器的部署,以及通过调用API接口完成自动化测试的执行,最终实现一键运行自动化测试以及测试报告的可视化显示。
应当理解的是,CI集成化工具可以采用现有的开源的CI集成化工具,如Jenkins。Jenkins是一个开源的、提供友好操作界面的CI集成化工具,主要用于持续、自动的构建/测试软件项目、监控外部任务的运行等。
(4.1)在CI集成化工具的服务器节点中安装被测服务器和测试服务器运行所需要的环境配置。
(4.2)在CI集成化工具中创建一键部署、运行被测服务器和自动化测试中间服务模块的第一CI脚本,以及一键部署、运行自动化测试服务模块和展示测试报告的第二CI脚本。
(4.3)基于CI集成化工具关联第一CI脚本和第二CI脚本,以使第一CI脚本运行成功后自动触发第二CI脚本的运行。
需要说明的是,如图5所示,在借助CI集成化工具实现一键运行自动化测试的过程中,最先启动的是自动化测试服务模块的驱动层下的测试脚本,当鉴权成功之后再注入数据层下的测试数据来启动业务层的业务流,业务流会组合接口层封装好的API接口借助Base层封装的http接口实现与自动化测试中间服务模块和智能信号处理系统的通信,待通信结束,业务层会先通过Base层封装的ftp接口将自动化测试中间服务模块存储的数据文件下载到测试服务器,然后利用Base层的通用接口完成数据文件的解析和比对,最后将结果返回到驱动层,以便进行最终的断言和测试结果的收集,并在CI集成化工具的构建结果中呈现出可视化的测试报告。
综上所述,本发明的基于分布式实时通信的自动化测试方法包括:在被测服务器上,先将搭载了分布式通讯组件的自动化测试中间服务模块作为分布式架构的一个节点加入到智能信号处理系统的数据通讯服务中;再借助此自动化测试中间服务模块中集成的轻量级的微网络框架把DDS的订阅协议和发布协议封装成Http协议的API接口来与远端测试服务器进行通信。在远端测试服务器上,通过自动化测试框架打造的接口自动化测试框架实现测试用例的编写、管理以及测试结果的可视化展示。最后交由CI集成化工具来完成整个自动化测试系统的可持续构建、部署和执行测试工作。
值得一提的是,本发明实施例还提供了一种基于分布式实时通信的自动化测试系统,用于实现上述实施例中的基于分布式实时通信的自动化测试方法。
参见图2,该自动化测试系统包括智能信号处理系统、自动化测试中间服务模块、自动化测试服务模块和CI集成化工具。其中,智能信号处理系统作为被测试的软件,用于测试该智能信号处理系统的中间数据。自动化测试中间服务模块包括两大模块,分别是分布式通讯订阅发布管理模块和请求响应API模块,分布式通讯订阅发布管理模块用于通过智能信号处理系统的各种类型的中间数据、参数设置模块和读取模块对应的数据结构、话题、域、参与者来实现分布式数据通信;请求响应API模块用于基于微网络框架集成分布式架构的数据订阅、参数读取、数据注入、数据库存储及登录权限校验等功能,并通过Http协议与自动化测试模块异步通信。自动化测试服务模块用于基于自动化测试框架定制测试任务。CI集成化工具用于自动化执行自动化测试服务模块和自动化测试中间服务模块,实现一键运行自动化测试智能信号处理系统以及测试报告的可视化显示。
进一步地,自动化测试系统还包括系统硬件,系统硬件包括被测服务器和测试服务器,被测服务器上运行智能信号处理系统和自动化测试中间服务模块,测试服务器运行自动化测试服务模块,用于实现上述实施例中的基于分布式实时通信的自动化测试方法。
具体地,一套完整的自动化测试系统如图2所示,通过在被测服务器上运行搭载分布式通讯中间件以及轻量级微网络框架的自动化测试中间服务模块与智能信号处理系统完成数据交互,其中搭载分布式通讯中间件使得自动化测试中间服务模块成为共享内存分布式通讯系统的一个新的节点,搭载轻量级微网络框架使得自动化测试中间服务模块具备Http协议通信功能,与远端测试服务器实现请求和响应的指令交互。远端测试服务器应用成熟的接口自动化测试框架,按照测试场景设计测试用例,封装接口函数,最后将被测服务器、自动化测试中间服务模块、自动化测试服务模块交由CI集成工具来完成整个自动化测试系统的可持续构建、部署及执行工作。
进一步地,智能信号处理系统按照测试所需的场景和功能,主要分为回归测试、改变参数测试场景,按照功能分为获取系统运行的中间数据、注入参数、设置和获取算法和系统参数功能。对应到自动化测试中间服务模块,需要分别按Http请求指令完成以上所述的测试功能发布、订阅数据。
自动化测试中间服务模块运行在被测服务器上,如图4所示,在轻量级微网络框架下启动网络服务,等待Http请求API接口,按照请求类型进行相应的处理,即接收到HTTP请求后启动相应的线程:按时间戳范围订阅中间数据时启动订阅分布式节点服务,判断接收数据的时间戳范围,通知进度;按注入数据的协议组织数据直接发布;按参数设置和读取功能组织数据发布并订阅智能信号处理系统的响应结果,判断是否超时或正常响应;等待接口完成响应时再将结果发给请求端,自动化测试服务中间模块完成与被测服务器的数据通信和远端测试服务器的消息对接。
以上实施例仅用于说明本发明的设计思想和特点,其目的在于使本领域内的技术人员能够了解本发明的内容并据以实施,本发明的保护范围不限于上述实施例。所以,凡依据本发明所揭示的原理、设计思路所作的等同变化或修饰,均在本发明的保护范围之内。
Claims (8)
1.一种基于分布式实时通信的自动化测试方法,其特征在于,包括以下步骤:
(1)在被测服务器,使用分布式通讯中间件部署自动化测试中间服务模块,以将该自动化测试中间服务模块作为分布式架构的一个节点加入到智能信号处理系统的数据通讯服务中;
所述自动化测试中间服务模块具体包括:
(1.1)使用分布式通讯中间件的内置接口按照智能信号处理系统使用的各种中间数据的数据类型,组织话题、域创建订阅者和发布者;
(1.2)按照智能信号处理系统的中间数据的数据类型对分布式通讯中间件总线上的订阅数据进行解析,以获取智能信号处理系统的实时中间数据,并在订阅成功后实时更新订阅进度;
(1.3)将订阅成功的实时中间数据按照预设的科学数据格式存储;
(1.4)根据智能信号处理系统中参数设置模块和读取模块的通信协议组织数据,并将其发布到分布式通讯中间件总线上并等待智能信号处理系统响应与发布结果,并将该结果发送到测试服务器;
(1.5)对分布式通讯中间件订阅者节点、发布者节点进行线程和资源管理;
(1.6)对测试服务器发送的强制退出指令进行响应,对退出任务的节点进行后处理,以释放该节点的线程和对应的内存;
(2)在被测服务器,基于微网络框架封装自动化测试中间服务模块的API接口;
(3)在测试服务器,基于自动化测试框架部署自动化测试服务模块;
所述自动化测试服务模块包括基础层、接口层、业务层、数据层和驱动层,其中,所述基础层用于通用API接口的封装,为API接口的调用提供支持;所述接口层用于对所有服务器单一API接口的封装,负责填充请求数据、发送请求和返回响应;所述业务层用于组装测试数据和多个单一API接口以实现不同的业务流;所述数据层用于为业务层提供测试数据,实现测试用例的管理和维护;所述驱动层用于驱动测试用例,通过调用不同的业务流以完成测试用例的测试;
(4)基于CI集成化工具完成被测服务器和测试服务器的部署,以及通过调用API接口完成自动化测试的执行,最终实现一键运行自动化测试以及测试报告的可视化显示。
2.根据权利要求1所述的基于分布式实时通信的自动化测试方法,其特征在于,所述分布式通讯中间件按层划分为传输层、实时发布订阅协议层以及数据分发服务层,其中,所述传输层基于共享内存、TCP或UDP进行数据传输,不同的分布式节点建立自身的参与者,由参与者管理对应的消息发送方、消息接收方,同一个话题的消息发送方与消息接收方建立联系,以完成实时数据通信;所述数据分发服务层用于以数据为中心的应用程序通信,该实时发布订阅协议层定义了通信应用程序编程接口和通信语义,该接口用于数据提供者和数据使用者之间的通信;所述实时发布订阅协议层用于支持数据分发服务层的应用,是发布者-订阅者的通信中间件。
3.根据权利要求2所述的基于分布式实时通信的自动化测试方法,其特征在于,所述传输层基于共享内存进行数据传输。
4.根据权利要求1所述的基于分布式实时通信的自动化测试方法,其特征在于,所述步骤(2)包括以下子步骤:
(2.1)基于微网络框架将自动化测试中间服务模块的不同功能所对应的发布协议和订阅协议转换成对应的Http协议;
(2.2)在微网络框架中引入数据库以加入登录权限管理;
(2.3)根据不同功能对应的Http协议封装自动化测试中间服务模块的API接口。
5.根据权利要求1所述的基于分布式实时通信的自动化测试方法,其特征在于,所述步骤(3)包括以下子步骤:
(3.1)基于自动化测试基础框架,并采用分层思想设计自动化测试服务模块;
(3.2)编写自动化测试中间服务模块的客户端调用接口以及多种可移植方法程序;
(3.3)在步骤(3.2)的基础上完成测试用例的编写,以及对应的测试驱动脚本的开发;
(3.4)运行自动化测试服务模块并搜集测试结果,将整个过程转化成可在线展示的测试报告。
6.根据权利要求1所述的基于分布式实时通信的自动化测试方法,其特征在于,所述步骤(4)包括以下子步骤:
(4.1)在CI集成化工具的服务器节点中安装被测服务器和测试服务器运行所需要的环境配置;
(4.2)在CI集成化工具中创建一键部署、运行被测服务器和自动化测试中间服务模块的第一CI脚本,以及一键部署、运行自动化测试服务模块和展示测试报告的第二CI脚本;
(4.3)基于CI集成化工具关联第一CI脚本和第二CI脚本,以使第一CI脚本运行成功后自动触发第二CI脚本的运行。
7.一种基于分布式实时通信的自动化测试系统,用于实现权利要求1-6中任一项所述的基于分布式实时通信的自动化测试方法,其特征在于,所述自动化测试系统包括:
智能信号处理系统,作为被测试的软件,用于测试该智能信号处理系统的中间数据;
自动化测试中间服务模块,包括分布式通讯订阅发布管理模块和请求响应API模块,所述分布式通讯订阅发布管理模块用于通过智能信号处理系统的各种类型的中间数据、参数设置模块和读取模块对应的数据结构、话题、域、参与者来实现分布式数据通信,所述请求响应API模块用于基于微网络框架集成分布式架构的数据订阅、参数读取、数据注入、数据库存储及登录权限校验功能,并通过Http协议与自动化测试模块异步通信;
自动化测试模块,用于基于自动化测试框架定制测试任务;和
CI集成化工具,用于自动化执行自动化测试服务模块和自动化测试中间服务模块,实现一键运行自动化测试智能信号处理系统以及测试报告的可视化显示。
8.根据权利要求7所述的基于分布式实时通信的自动化测试系统,其特征在于,所述自动化测试系统还包括系统硬件,所述系统硬件包括被测服务器和测试服务器,所述被测服务器上运行有智能信号处理系统和自动化测试中间服务模块,所述测试服务器上运行有自动化测试服务模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311642669.6A CN117354218B (zh) | 2023-12-04 | 2023-12-04 | 一种基于分布式实时通信的自动化测试方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311642669.6A CN117354218B (zh) | 2023-12-04 | 2023-12-04 | 一种基于分布式实时通信的自动化测试方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117354218A CN117354218A (zh) | 2024-01-05 |
CN117354218B true CN117354218B (zh) | 2024-04-16 |
Family
ID=89365260
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311642669.6A Active CN117354218B (zh) | 2023-12-04 | 2023-12-04 | 一种基于分布式实时通信的自动化测试方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117354218B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109101373A (zh) * | 2017-06-20 | 2018-12-28 | 北京航空航天大学 | 基于订阅/发布模式的通用测试平台 |
US10528454B1 (en) * | 2018-10-23 | 2020-01-07 | Fmr Llc | Intelligent automation of computer software testing log aggregation, analysis, and error remediation |
CN115061921A (zh) * | 2022-06-24 | 2022-09-16 | 北京百度网讯科技有限公司 | 自动测试方法、装置、电子设备及可读存储介质 |
CN116383038A (zh) * | 2023-02-23 | 2023-07-04 | 上海怿星电子科技有限公司 | 基于Python平台的车载DDSI-RTPS协议自动化测试系统及方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10592402B2 (en) * | 2017-11-20 | 2020-03-17 | International Business Machines Corporation | Automated integration testing with mock microservices |
US20200204461A1 (en) * | 2018-12-20 | 2020-06-25 | Gemini Open Cloud Computing Inc. | Automation system for testing and publishing of web service |
-
2023
- 2023-12-04 CN CN202311642669.6A patent/CN117354218B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109101373A (zh) * | 2017-06-20 | 2018-12-28 | 北京航空航天大学 | 基于订阅/发布模式的通用测试平台 |
US10528454B1 (en) * | 2018-10-23 | 2020-01-07 | Fmr Llc | Intelligent automation of computer software testing log aggregation, analysis, and error remediation |
CN115061921A (zh) * | 2022-06-24 | 2022-09-16 | 北京百度网讯科技有限公司 | 自动测试方法、装置、电子设备及可读存储介质 |
CN116383038A (zh) * | 2023-02-23 | 2023-07-04 | 上海怿星电子科技有限公司 | 基于Python平台的车载DDSI-RTPS协议自动化测试系统及方法 |
Non-Patent Citations (1)
Title |
---|
《分布式测试管控工具的设计与实现》;吴晓鑫,李颂华;《中国计算机用户协会网络应用分会2018年第二十二届网络新技术与应用年会论文集》;说明书第2-4章,图1-10 * |
Also Published As
Publication number | Publication date |
---|---|
CN117354218A (zh) | 2024-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Sun et al. | An open IoT framework based on microservices architecture | |
Guinard et al. | Interacting with the soa-based internet of things: Discovery, query, selection, and on-demand provisioning of web services | |
CN101877696B (zh) | 在网络应用环境下重构错误响应信息的设备和方法 | |
Poslad et al. | Standardizing agent interoperability: The FIPA approach | |
US20150081798A1 (en) | Process-based inter-thing collaboration apparatus and method in web of things environment | |
JP5807677B2 (ja) | 情報処理システム、アクセス権管理方法、情報処理装置およびその制御方法と制御プログラム | |
CN111556158A (zh) | 物联网平台的接入方法、接入装置、接入设备及存储介质 | |
Tsai et al. | Service-oriented user interface modeling and composition | |
Rattanapoka et al. | An MQTT-based IoT cloud platform with flow design by Node-RED | |
Zhou et al. | Dependency-aware service oriented architecture and service composition | |
CN104270403A (zh) | 基于struts2框架的云平台信息web监控系统 | |
CN110457132B (zh) | 一种功能对象的创建方法、装置和终端设备 | |
CN117354218B (zh) | 一种基于分布式实时通信的自动化测试方法和系统 | |
CN101916283A (zh) | 由动态网页上获取链接信息的方法及其服务器 | |
Simonis | OGC Sensor Web Enablement Architecture, Version: 0.4. 0. | |
CN114785779B (zh) | 一种基于opc ua的多机械设备互联互通实现系统 | |
Montori et al. | An iot toolchain architecture for planning, running and managing a complete condition monitoring scenario | |
Felhi et al. | Adaptation of Web services to the context based on workflow: Approach for self-adaptation of service-oriented architectures to the context | |
Bertrand-Martínez et al. | A Methodology for Classification and Evaluation of IoT Brokers. | |
Guinard et al. | Discovery and on-demand provisioning of real-world web services | |
Javed et al. | Complex flows: Node-red | |
CN112698817A (zh) | 基于微服务架构的消息接入方法、装置、系统及存储介质 | |
Hirmer | Model Based Approaches to the Internet of Things | |
Michlmayr et al. | End-to-end support for QoS-aware service selection, invocation and mediation in VRESCo | |
Jakóbczyk et al. | Cloud-Native Architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |