CN111209216A - 基于插件的分布式测试框架与测试方法 - Google Patents
基于插件的分布式测试框架与测试方法 Download PDFInfo
- Publication number
- CN111209216A CN111209216A CN202010164136.1A CN202010164136A CN111209216A CN 111209216 A CN111209216 A CN 111209216A CN 202010164136 A CN202010164136 A CN 202010164136A CN 111209216 A CN111209216 A CN 111209216A
- Authority
- CN
- China
- Prior art keywords
- test
- controller
- unit
- execution
- plug
- 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.)
- Pending
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 105
- 238000010998 test method Methods 0.000 title claims abstract description 5
- 238000004140 cleaning Methods 0.000 claims abstract description 17
- 230000002452 interceptive effect Effects 0.000 claims abstract description 10
- 238000000034 method Methods 0.000 claims abstract description 9
- 230000008569 process Effects 0.000 claims abstract description 5
- 230000003993 interaction Effects 0.000 claims description 6
- 238000012795 verification Methods 0.000 claims description 6
- 230000008878 coupling Effects 0.000 claims description 2
- 238000010168 coupling process Methods 0.000 claims description 2
- 238000005859 coupling reaction Methods 0.000 claims description 2
- 238000011161 development Methods 0.000 description 6
- 238000013522 software testing Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
Images
Classifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种基于插件的分布式测试框架及测试方法,包括:交互接口,与控制器连接,用于接受请求并将请求发送到控制器和导出测试报告;控制器,提供整个分布式测试框架的管理及调度功能;校验单元,与控制器连接,进行鉴权及执行合法性校验;执行单元,与控制器连接,用于进行测试;反馈单元,分别与控制器和执行单元连接,用于执行单元执行过程中或执行结束后产生反馈;输出单元,与控制器连接,展现测试数据;清理单元,分别与控制器和执行单元连接,用于回收清理工作,基础设施数据库,与控制器连接,用于提供测试数据,存储测试结果。本发明是一种通用型测试框架,提高了框架的兼容性,适用于大规模分布式集群。
Description
技术领域
本发明涉及软件测试领域,更具体涉及基于插件的分布式测试框架及测试方法。
背景技术
随着信息技术行业的发展,人们已经逐渐意识到了软件测试的重要性。传统行业中重开发,轻测试导致了很严重的软件产品质量问题,大量的开发代码无法维护,人们逐渐意识到需要一种提升代码质量或者软件质量保证(SQA)的方法,软件测试随之产生。对于规模越大,复杂度越高的代码,软件测试投入的时间就需要更长,把好测试关能够显著减少软件错误率,减轻后期软件维护成本。
经过几十年的发展,软件测试行业已经形成了自己的行业标准,对于测试也有了更多的含义。在现代的软件行业,一个没有完整测试的产品会降低消费者使用其的机率。软件测试方法的细分和理论的深入,使得软件行业也在逐渐发展,可以看到软件测试的发展其实是软件行业进步和成熟的产物。
在软件测试中,软件框架的作用是减轻测试人员的负担,能够提供简单、易集成的接口,减轻添加一个测试用例的工作量。现有的测试框架往往提供了大量的测试功能,而且是针对于特定软件而定制的,这种方式的优势是集成度好,很容易做到即开即用,开发量较小,不过也存在相应的劣势,如测试受众少,只针对于特定的场景。测试人员需要接触的项目一般会有很多个,每一个项目都有针对于该软件产品而设计的测试框架,即使测试流程或操作流程大同小异,也会造成不小的负担,现代的往往存在大量的组件子***,不同产品使用不同的测试框架,很容易造成混乱及维护困难。如果设计一种通用性的测试框架,可能会极大改善这样的现状。同时,现代的运维环境逐渐变大,一个大型的***往往是分布式,协同工作的,这种方式给现有的测试框架带来了更大的挑战。
发明内容
针对现有的大规模集群架构***,需要一种现代化的测试框架来支持这种大规模集群的测试。不同于传统测试中测试作为交付前的软件质量检测手段,针对大规模集群的测试是伴随该***生命周期的。大型集群***经常存在升级、新增功能特性,需要一种在集成环境下能够随时进行测试的工具,即使不存在频繁地更新特性,也应该把定期集群测试作为检测集群功能状况及稳定性地手段之一。
因此,本发明提出以下技术方案:
基于插件的分布式测试框架,包括组件:
交互接口,与控制器连接,用于接受请求并将请求发送到控制器和导出测试报告;
控制器,提供整个分布式测试框架的管理及调度功能;
校验单元,与控制器连接,进行鉴权及执行合法性校验;
执行单元,与控制器连接,用于进行测试;
反馈单元,分别与控制器和执行单元连接,用于执行单元执行过程中或执行结束后产生反馈;
输出单元,与控制器连接,展现测试数据;
清理单元,分别与控制器和执行单元连接,用于回收清理工作,
基础设施数据库,与控制器连接,用于提供测试数据,存储测试结果。
所述组件之间低耦合,通过消息队列的方式通信。
所述基础设施数据库为关系型数据库。
所述交互接口中用于用户交互的方式包括CLI, RESTful API及web UI。
所述组件按测试功能部署在控制节点和执行节点,所述控制节点进行管理和调度,所述执行节点进行测试清理工作。
依托于上述框架的一种基于插件的分布式测试方法,包括步骤:
S1测试者发起测试请求;
S2控制器通过交互接口接收请求,并将请求通过消息队列发送至校验单元;
S3校验单元进行鉴权及执行合法性校验;
S4控制器将测试请求通过消息队列发送到对应的执行节点;
S5执行节点执行测试并将中间状态通过消息队列发送到控制器和反馈单元;
S6执行测试完成;
S7清理单元清理测试环境;
S8输出单元统计所有测试的执行情况, 并保存到数据库;
S9测试者通过交互接口将测试报告导出。
本发明设计的基于插件的分布式测试框架是一种用于软件测试的基础性框架,是进行软件测试及相关功能的集成,为大规模集群设计,提高了测试框架在不同***不同平台之间的兼容性,可以使用插件开发的方式解决测试框架在测试场景上的局限性。本发明为分布式集群而设计,采用模块化的设计,将不同功能单元分开并将组件安装在不同节点上,通过控制节点与执行节点之间的协调合作,全自动式的测试框架,定义好测试用例及测试数据后,测试过程完全不需要人为干预,实现高效并行测试,有效提高了测试的效率。
不同组件之间使用通用的接口,因而该测试框架也能够支持异构***。不同节点之间可以通过调度策略达到应用负载均衡,能够保护集群状态,提高资源使用率。另外,这种通用型的测试框架融入到CI/CD流程将会非常简单。
附图说明
图1为基于插件的分布式测试框架逻辑结构示意图;
图2为基于插件的分布式测试框架组件的一种组件部署示意图。
具体实施方式
为更好地解释本发明,下面将结合附图和具体实施案例进行说明。
如图1所示的一种基于插件的分布式测试框架,包括组件:
交互接口,与控制器连接,用于接受请求并将请求发送到控制器和导出测试报告;
控制器,提供整个分布式测试框架的管理及调度功能;
校验单元,与控制器连接,进行鉴权及执行合法性校验;
执行单元,与控制器连接,用于进行测试;
反馈单元,分别与控制器和执行单元连接,用于执行单元执行过程中或执行结束后产生反馈;
输出单元,与控制器连接,展现测试数据;
清理单元,分别与控制器和执行单元连接,用于回收清理工作,
基础设施数据库,与控制器连接,用于提供测试数据,存储测试结果。
所述组件之间低耦合,通过消息队列的方式通信,消息队列采用RabbitMQ实现,使用镜像队列的方式来避免单点故障对环境造成影响。
所述基础设施数据库为关系型数据库MariaDB, 使用Galera Cluster 保证数据库服务的高可用性。
所述交互接口中用于用户交互的方式包括CLI, RESTful API及web UI,RESTfulAPI作为无状态的服务, 使用4层负载均衡的方式, 具体实施时,可以使用nginx提供该服务。
所述组件按测试功能部署在控制节点和执行节点,,控制节点进行管理和调度,执行节点进行测试清理工作;控制节点一般设置为三副本实现高可用,执行节点对应于一台具体的物理机或者虚机, 执行节点的数量根据集群大小确定, 设置过小将影响测试效率;控制节点数量一般设置为3, 执行节点的数量可以动态设定,图2为其中一例。
在测试层面, 通过插件的方式来扩展测试功能, 采用数据驱动的方式进行测试,测试内容及测试用例一般由测试者自行设计,所述框架的具体使用步骤为:
S1测试者发起测试请求;
S2控制器通过交互接口接收请求,并将请求通过消息队列发送至校验单元;
S3校验单元进行鉴权及执行合法性校验;
S4控制器将测试请求通过消息队列发送到对应的执行节点;
S5执行节点执行测试并将中间状态通过消息队列发送到控制器和反馈单元;
S6执行测试完成;
S7清理单元清理测试环境;
S8输出单元统计所有测试的执行情况, 并保存到数据库;
S9测试者通过交互接口将测试报告导出。
上述仅为本发明的一种实施方案,是对发明内容的解释与辅助,本发明的保护范围仍以权利要求书为准,如有其它与实施例的类似技术手段或技术知识的等效替换,也落在本发明的保护范围之中。
Claims (6)
1.基于插件的分布式测试框架,其特征在于,包括组件:
交互接口,与控制器连接,用于接受请求并将请求发送到控制器和导出测试报告;
控制器,提供整个分布式测试框架的管理及调度功能;
校验单元,与控制器连接,进行鉴权及执行合法性校验;
执行单元,与控制器连接,用于进行测试;
反馈单元,分别与控制器和执行单元连接,用于执行单元执行过程中或执行结束后产生反馈;
输出单元,与控制器连接,展现测试数据;
清理单元,分别与控制器和执行单元连接,用于回收清理工作,
基础设施数据库,与控制器连接,用于提供测试数据,存储测试结果。
2.根据权利要求1所述的基于插件的分布式测试框架,其特征在于,所述组件之间低耦合,通过消息队列的方式通信。
3.根据权利要求1所述的基于插件的分布式测试框架,其特征在于,所述基础设施数据库为关系型数据库。
4.根据权利要求1所述的基于插件的分布式测试框架,其特征在于,所述交互接口中用于用户交互的方式包括CLI, RESTful API及web UI。
5.根据权利要求1-4任意一项所述的基于插件的分布式测试框架,其特征在于,所述组件按测试功能部署在控制节点和执行节点,所述控制节点进行管理和调度,所述执行节点进行测试清理工作。
6.基于插件的分布式测试方法,其特征在于,依托于权利要求1-4任意一项所述的基于插件的分布式测试框架,包括步骤:
S1测试者发起测试请求;
S2控制器通过交互接口接收请求,并将请求通过消息队列发送至校验单元;
S3校验单元进行鉴权及执行合法性校验;
S4控制器将测试请求通过消息队列发送到对应的执行节点;
S5执行节点执行测试并将中间状态通过消息队列发送到控制器和反馈单元;
S6执行测试完成;
S7清理单元清理测试环境;
S8输出单元统计所有测试的执行情况, 并保存到数据库;
S9测试者通过交互接口将测试报告导出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010164136.1A CN111209216A (zh) | 2020-03-11 | 2020-03-11 | 基于插件的分布式测试框架与测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010164136.1A CN111209216A (zh) | 2020-03-11 | 2020-03-11 | 基于插件的分布式测试框架与测试方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111209216A true CN111209216A (zh) | 2020-05-29 |
Family
ID=70785901
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010164136.1A Pending CN111209216A (zh) | 2020-03-11 | 2020-03-11 | 基于插件的分布式测试框架与测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111209216A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102141962B (zh) * | 2011-04-07 | 2013-06-19 | 北京航空航天大学 | 一种安全性分布式测试框架***及其测试方法 |
CN106502898A (zh) * | 2016-10-25 | 2017-03-15 | 广州神马移动信息科技有限公司 | 测试方法和测试驱动器以及测试平台 |
CN108519952A (zh) * | 2018-04-13 | 2018-09-11 | 南京新贝金服科技有限公司 | 一种分布式的web自动化测试***及方法 |
CN110232024A (zh) * | 2019-05-26 | 2019-09-13 | 必成汇(成都)科技有限公司 | 软件自动化测试框架及测试方法 |
-
2020
- 2020-03-11 CN CN202010164136.1A patent/CN111209216A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102141962B (zh) * | 2011-04-07 | 2013-06-19 | 北京航空航天大学 | 一种安全性分布式测试框架***及其测试方法 |
CN106502898A (zh) * | 2016-10-25 | 2017-03-15 | 广州神马移动信息科技有限公司 | 测试方法和测试驱动器以及测试平台 |
CN108519952A (zh) * | 2018-04-13 | 2018-09-11 | 南京新贝金服科技有限公司 | 一种分布式的web自动化测试***及方法 |
CN110232024A (zh) * | 2019-05-26 | 2019-09-13 | 必成汇(成都)科技有限公司 | 软件自动化测试框架及测试方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107493310B (zh) | 一种云资源处理方法及云管理平台 | |
CN102937932B (zh) | 集成异构测试工具的自动化测试装置及方法 | |
CN102402481B (zh) | 异步程序代码的模糊测试 | |
CN102831053B (zh) | 一种测试执行的调度方法及装置 | |
CN103870260A (zh) | 业务接口开发的方法及*** | |
CN102035896A (zh) | 一种适用于软件***的基于ttcn-3的分布式测试框架 | |
CN108536972B (zh) | 基于自适应智能体的复杂***可靠性仿真方法及*** | |
CN104796240A (zh) | 一种有状态网络协议的模糊测试*** | |
CN103003800B (zh) | 异常处理测试装置和方法 | |
CN103209197A (zh) | 集群服务器部署方法及*** | |
CN105068865A (zh) | 任务调度方法和装置 | |
CN107015902B (zh) | 一种测试方法和设备 | |
CN111258913A (zh) | 算法自动测试方法、装置、计算机***及可读存储介质 | |
CN111966597B (zh) | 测试数据生成方法及装置 | |
CN112650676A (zh) | 软件测试方法、装置、设备及存储介质 | |
CN106293974A (zh) | 一种终端异常恢复方法及终端 | |
CN102291274A (zh) | 一种实现网络测试仪表自动适配的***及方法 | |
CN114238127A (zh) | 接口测试方法、装置、设备及存储介质 | |
CN114706768A (zh) | I3c总线验证方法及验证*** | |
CN117149665B (zh) | 持续集成方法、控制设备、持续集成***及存储介质 | |
JP5006959B2 (ja) | 変電自動化クライアント制御サービス試験装置及びその方法 | |
CN111209216A (zh) | 基于插件的分布式测试框架与测试方法 | |
CN112817883A (zh) | 接口平台的适配方法、设备、***及计算机可读存储介质 | |
CN105573934B (zh) | 运行多***的从设备通过usb连接接入主设备的方法及装置 | |
CN115933591A (zh) | 一种控制器诊断方法、装置、设备和存储介质 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200529 |