CN109828914A - 全流程分布式系统自动化测试方法以及测试系统 - Google Patents

全流程分布式系统自动化测试方法以及测试系统 Download PDF

Info

Publication number
CN109828914A
CN109828914A CN201811625271.0A CN201811625271A CN109828914A CN 109828914 A CN109828914 A CN 109828914A CN 201811625271 A CN201811625271 A CN 201811625271A CN 109828914 A CN109828914 A CN 109828914A
Authority
CN
China
Prior art keywords
test
tested
acquisition
module
whole process
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
Application number
CN201811625271.0A
Other languages
English (en)
Inventor
颜庆凯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ningbo Guagua Agricultural Science And Technology Co Ltd
Original Assignee
Ningbo Guagua Agricultural Science And Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ningbo Guagua Agricultural Science And Technology Co Ltd filed Critical Ningbo Guagua Agricultural Science And Technology Co Ltd
Priority to CN201811625271.0A priority Critical patent/CN109828914A/zh
Publication of CN109828914A publication Critical patent/CN109828914A/zh
Pending legal-status Critical Current

Links

Abstract

本发明的全流程分布式系统自动化测试方法以及测试系统,其中,全流程分布式系统自动化测试系统包括:被测试系统嵌入式测试用例采集模块、测试用例管理模块、自动化测试调度模块、被测试系统关联外部系统模拟模块。全流程分布式系统自动化测试方法包括:步骤一、系统标记准备阶段;步骤二、测试用例采集阶段;步骤三、一键测试阶段;步骤四、测试结果验收阶段。本发明的技术方案有以下优点:一次采集,无限次一键式测试,测试阶段无需其他人为干预;测试过程中只需测试相关系统和被测试系统,不依赖其他外部系统,构建自动化测试环境简单,成本低;被测试系统重大升级改造,只需修改配置,重新进行采集,即可再次使用,不需要额外升级测试改造相关代码。

Description

全流程分布式系统自动化测试方法以及测试系统
技术领域
本发明涉及系统自动化测试领域,具体为一种全流程分布式系统自动化测试方法以及测试系统。
背景技术
随着IT技术、互联网技术的蓬勃发展,越来越多的软件程序系统在社会生产中扮演了举足轻重的作用,越来越多的公司、企业开始通过软件系统监控、指导和操作业务生产,软件系统也变得越来越复杂,系统的流程也随着业务的升级越来越长,测试成本和时间也随之增加。同时为了降低系统的复杂度,提升系统的可用性,降低开发和维护成本,分布式、服务化、微服务等越来越多的将复杂系统拆分成多个子系统成为了大势所趋,但是随其带来的测试难度问题越发严重。
多个开发部门维护多个系统的情况越来越普遍,开发测试过程中各部门不在一个频道,给测试带来了无法避免的测试环境资源、人力资源紧张的问题,通常一个环境只能测试所有系统相同频道开发分支的代码,测试环境成为排队申请的稀缺资源,测试人员每测试一个流程需要为测试用例准备一整套的基础数据和生产输入数据,准备数据的工作也是一个成本高昂的操作,而且一旦准备的数据有问题会直接影响测试的质量和结果。
批量准备和制作测试数据、多个测试环境系统管理人力物力成功高、全流程测试费时费力、测试覆盖率低等问题已经严重限制软件系统生产开发的效率和质量,自动化全流程复杂系统的测试解决方案越发显得重要。
发明内容
本发明要解决的技术问题是提供一种效率较高的全流程分布式系统自动化测试方法以及测试系统。
本发明的全流程分布式系统自动化测试系统,包括:被测试系统嵌入式测试用例采集模块、测试用例管理模块、自动化测试调度模块、被测试系统关联外部系统模拟模块,被测试系统嵌入式测试用例采集模块、测试用例管理模块、自动化测试调度模块、被测试系统关联外部系统模拟模块连接在一起。
本发明的全流程分布式系统自动化测试系统,其中,被测试系统嵌入式测试用例采集模块用于:
对被测试系统的边界接口和方法进行改造;
对标记好的被测试系统的被调用方法的参数进行采集,同时采集被标记的外部系统方法的参数和调用外部系统方法的返回值,记录下采集的接口方法的相关信息和采集时间。
本发明的全流程分布式系统自动化测试系统,其中,,测试用例管理模块用于保存采集模块采集来的数据。
本发明的全流程分布式系统自动化测试系统,其中,自动化测试调度模块用于:通过从测试用例管理模块读取一个测试用例调用参数数据,按照参数的采集顺序和时间间隔调用被测试系统,实现自动化调度功能。
本发明的全流程分布式系统自动化测试系统,其中,被测试系统关联外部系统模拟模块用于:在自动化测试的过程中模拟被调用的外部系统,通过从测试用例管理模块获取的相同测试用例中的外部系统方法返回值数据,为被测试系统提供外部系统的服务。
本发明的全流程分布式系统自动化测试方法,包括:
步骤一、系统标记准备阶段:标记测试系统的所有需要采集或者模拟的系统输入数据;
步骤二、测试用例采集阶段:通过测试人员操作系统的所有流程,采集一套测试用例;
步骤三、一键测试阶段:基于采集的测试用例执行自动化测试;
步骤四、测试结果验收阶段:通过自动化测试调度模块的日志、被测试系统的日志、被测试系统的数据结果验证测试是否通过。
本发明的技术方案有以下优点:一次采集,无限次一键式测试,真正做到一键,测试阶段无需其他人为干预;针对不同测试内容可以定制多种测试用例,测试人员操作系统的方式不同,既可生成不同的测试用例;采集过程涵盖的功能、流程和代码,既为测试用例,能够一键通测流程复杂、系统间交互频繁的系统;测试过程中只需测试相关系统和被测试系统,不依赖其他外部系统,构建自动化测试环境简单,成本低;被测试系统重大升级改造,只需修改配置,重新进行采集,即可再次使用,不需要额外升级测试改造相关代码;测试改造代码为技术对应的通用代码,一套代码适用于相同编程语言架构的多套系统。
附图说明
图1为测试用例采集阶段的流程图;
图2为基于采集的测试用例执行自动化测试的流程图。
具体实施方式
本发明的全流程分布式系统自动化测试系统,包括:被测试系统嵌入式测试用例采集模块、测试用例管理模块、自动化测试调度模块、被测试系统关联外部系统模拟模块,被测试系统嵌入式测试用例采集模块、测试用例管理模块、自动化测试调度模块、被测试系统关联外部系统模拟模块连接在一起。
本发明的全流程分布式系统自动化测试系统,其中,被测试系统嵌入式测试用例采集模块用于:
对被测试系统的边界接口和方法进行改造;
对标记好的被测试系统的被调用方法的参数进行采集,同时采集被标记的外部系统方法的参数和调用外部系统方法的返回值,记录下采集的接口方法的相关信息和采集时间。
本发明的全流程分布式系统自动化测试系统,其中,,测试用例管理模块用于保存采集模块采集来的数据。
本发明的全流程分布式系统自动化测试系统,其中,自动化测试调度模块用于:通过从测试用例管理模块读取一个测试用例调用参数数据,按照参数的采集顺序和时间间隔调用被测试系统,实现自动化调度功能。
本发明的全流程分布式系统自动化测试系统,其中,被测试系统关联外部系统模拟模块用于:在自动化测试的过程中模拟被调用的外部系统,通过从测试用例管理模块获取的相同测试用例中的外部系统方法返回值数据,为被测试系统提供外部系统的服务。
本发明的全流程分布式系统自动化测试方法,包括:
步骤一、系统标记准备阶段:标记测试系统的所有需要采集或者模拟的系统输入数据;
步骤二、测试用例采集阶段:通过测试人员操作系统的所有流程,采集一套测试用例,如图1所示;
步骤三、一键测试阶段:基于采集的测试用例执行自动化测试,如图2所示;
步骤四、测试结果验收阶段:通过自动化测试调度模块的日志、被测试系统的日志、被测试系统的数据结果验证测试是否通过。
本发明的全流程分布式系统自动化测试方法以及测试系统是为了解决上述问题而设计的通用解决方案。
自动化测试主要需要解决3个问题:被测试系统依赖的基础数据、被测试系统依赖的外部系统、自动化的测试流程控制。其中前两项可以总结为被测试系统的输入。
只需将被测试系统的输入按照相同的方式,相同的时间间隔传递或者返回给被测试系统,被测试系统既像复读机一样,按照测试用例的方式重新执行。
将测试用例数据作为输入按照固定的方式自动化的传递给被测试系统既可实现自动化测试的目的。
本发明的全流程分布式系统自动化测试系统一共有四个模块:嵌入式测试用例采集模块、测试用例管理模块、自动化测试调度模块、外部系统模拟(mock)模块。
1、被测试系统嵌入式测试用例采集模块:通过aop、方法拦截器、动态代理、嵌入式等方式对被测试系统的边界接口和方法进行改造,比如java语言的系统,通过javaagent技术可以不改动被测试系统任何源代码的方式实现。改造方式为对标记好的被测试系统的被调用方法的参数进行采集,同时采集被标记的外部系统方法的参数和调用外部系统方法的返回值,记录下采集的接口方法的相关信息和采集时间。
2、测试用例管理模块:本模块主要是保存采集模块采集来的数据,一次测试采集的数据统一一个测试用例管理,将数据分成两部分:被测试系统被调用的参数以及调用的外部系统的返回值。这两套数据既为被测试系统在该测试用例下的全部系统输入。必要时本模块可以提供采集数据的编辑和调整功能。并且为自动化测试提供测试用例的数据服务。
序号 字段名 数据类型 注释
1 id int(11) 自增id
2 name varchar(20) 测试用例名称
3 description varchar(255) 测试用例描述
4 c_t int(11) 创建时间戳
表1测试用例表
序号 字段名 数据类型 注释
1 id int(11) 自增id
2 case_id int(11) 测试用id
3 method varchar(255) 被测试系统接口方法相关信息
4 param mediumtext 对应方法调用的参数数据
5 c_t int(11) 采集时间戳
表2外部系统调用参数表
表3调用外部系统返回值表
3、自动化测试调度模块:本模块通过从测试用例管理模块读取一个测试用例调用参数数据(表1+表2的数据),按照参数的采集顺序和时间间隔调用被测试系统,实现自动化调度功能。
4、被测试系统依赖的外部系统mock模块:本模块在自动化测试的过程中模拟被调用的外部系统,通过从测试用例管理模块获取的相同测试用例中的外部系统方法返回值数据(表1+表3的数据),为被测试系统提供外部系统的服务。
本发明的全流程分布式系统自动化测试方法如下:
一个新系统从接入到测试和验证测试结果主要有以下7个步骤,以java系统为例:
1、搭建测试用例管理模块,基于表1-3建立数据库模型,按照测试用例编号管理多套测试用例数据,通过http等方式提供测试用例的新增和查询服务,有条件的可以开发管理后台,可以手动管理和修改测试用例的内容,该步骤为一次性步骤。
2、系统标记阶段:研发人员列出系统上游调用被测试系统的接口方法,还有调用下游外部系统的接口方法,javaagent技术在这些类被虚拟机加载的时候通过动态代理,改造原方法字节码,分别插入收集上游调用接口的参数以及调用下游系统接口参数和返回值,同时记录下接口方式信息和调用时间。在被测试系统和外部系统关系不变的情况下,该步骤为一次性步骤。
3、搭建自动化测试调度模块,查询被选择的测试用例上游调用被测试系统参数的数据,按照被测试系统被调用的方式如http、rpc服务接口等,按照参数采集的顺序和间隔调用被测试系统,有条件的可以记录下调用被测试系统的返回值和运行日志,便于验证测试结果,该步骤为一次性步骤。
4、搭建外部系统mock模块,本模块可以搭建一个独立的系统,伪装成被调用的外部系统,也可以使用采集模块的技术,潜入到被测试系统代码中,重写调用的外部系统的接口和方法,根据调用的接口信息和参数,返回对应的采集的返回值,比如将接口方法信息和参数安装固定的组装方式组装成字符串,然后记录下md5和返回值的关系,该步骤为一次性步骤。
5、测试用例采集阶段:测试人员正常操作系统的各种操作,测试操作覆盖的功能和测试方法既为一套测试用例,本步骤中主要是采集模块按照标记的接口方法采集数据,存储到用例管理模块。每采集一个测试用例需要执行一次本步骤。
6、一键测试阶段:基于上面采集的某一套测试用例数据,自动化调度模块和外部系统模拟模块便完整的还原出被测试系统在对应测试用例执行下的外部环境,被测试系统遍自动按照测试用例的流程和顺序重现测试用例的所有场景。本步骤每测试一次执行一次。
7、测试结果验证阶段:通过自动化调度模块调用接口的返回值是否有异常,或者被测试系统的日志、数据结果等比较轻易的验证被测试系统的测试结果,测试是否通过,不通过的话,也可以轻易识别具体是在调用那个接口方法,哪个环节系统有bug。本步骤每测试一次执行一次。
当系统与外部系统关系方式变化时,只需按照步骤1补充新加的接口方法的标记既可。
当系统大规模改造升级,流程调整等,可能出现历史测试用例无法使用,只需重新执行步骤2,替换历史测试用例既可。
系统小范围改造,bug修复,性能优化等改造,只需步骤3和4既可替代测试人员进行全系统流程的测试工作。
本发明公开了一种支持分布式系统多流程一键式测试解决方案的通用设计实现方法,它涉及各种单一系统或者分布式多系统测试领域,为一种适用于多种编程语言、通用场景的测试解决方案。其核心思想为:
首先通过aop、方法拦截器、动态代理、嵌入式等方式,最小程度(java通过javaagent技术无需改造)改造被测试的系统,实现对被测试系统输入数据的采集,然后基于一套采集的被测试系统的输入参数和依赖的外部系统的返回值数据,自动化测试调度模块通过使用参数调用被测试系统,模拟(mock)外部系统被调用的接口方法,自动返回收集到的返回值等方式,达到一键式测试的目的,并且可以提供调度模块调用接口的返回值、日志等数据验证测试结果。
本方案为通用语言、通用系统的测试解决方案设计实现方法,主要有以下优点:
1、一次采集,无限次一键式测试,真正做到一键,测试阶段无需其他人为干预;
2、针对不同测试内容可以定制多种测试用例,测试人员操作系统的方式不同,既可生成不同的测试用例;
3、采集过程涵盖的功能、流程和代码,既为测试用例,能够一键通测流程复杂、系统间交互频繁的系统;
4、测试过程中只需测试相关系统和被测试系统,不依赖其他外部系统,构建自动化测试环境简单,成本低;
5、被测试系统重大升级改造,只需修改配置,重新进行采集,即可再次使用,不需要额外升级测试改造相关代码;
6、测试改造代码为技术对应的通用代码,一套代码适用于相同编程语言架构的多套系统。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

Claims (6)

1.一种全流程分布式系统自动化测试系统,其特征在于,包括:被测试系统嵌入式测试用例采集模块、测试用例管理模块、自动化测试调度模块、被测试系统关联外部系统模拟模块,被测试系统嵌入式测试用例采集模块、测试用例管理模块、自动化测试调度模块、被测试系统关联外部系统模拟模块连接在一起。
2.根据权利要求1所述的全流程分布式系统自动化测试系统,其特征在于,被测试系统嵌入式测试用例采集模块用于:
对被测试系统的边界接口和方法进行改造;
对标记好的被测试系统的被调用方法的参数进行采集,同时采集被标记的外部系统方法的参数和调用外部系统方法的返回值,记录下采集的接口方法的相关信息和采集时间。
3.根据权利要求1所述的全流程分布式系统自动化测试系统,其特征在于,测试用例管理模块用于保存采集模块采集来的数据。
4.根据权利要求1所述的全流程分布式系统自动化测试系统,其特征在于,自动化测试调度模块用于:通过从测试用例管理模块读取一个测试用例调用参数数据,按照参数的采集顺序和时间间隔调用被测试系统,实现自动化调度功能。
5.根据权利要求1所述的全流程分布式系统自动化测试系统,其特征在于,被测试系统关联外部系统模拟模块用于:在自动化测试的过程中模拟被调用的外部系统,通过从测试用例管理模块获取的相同测试用例中的外部系统方法返回值数据,为被测试系统提供外部系统的服务。
6.一种全流程分布式系统自动化测试方法,其特征在于,包括:
步骤一、系统标记准备阶段:标记测试系统的所有需要采集或者模拟的系统输入数据;
步骤二、测试用例采集阶段:通过测试人员操作系统的所有流程,采集一套测试用例;
步骤三、一键测试阶段:基于采集的测试用例执行自动化测试;
步骤四、测试结果验收阶段:通过自动化测试调度模块的日志、被测试系统的日志、被测试系统的数据结果验证测试是否通过。
CN201811625271.0A 2018-12-28 2018-12-28 全流程分布式系统自动化测试方法以及测试系统 Pending CN109828914A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811625271.0A CN109828914A (zh) 2018-12-28 2018-12-28 全流程分布式系统自动化测试方法以及测试系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811625271.0A CN109828914A (zh) 2018-12-28 2018-12-28 全流程分布式系统自动化测试方法以及测试系统

Publications (1)

Publication Number Publication Date
CN109828914A true CN109828914A (zh) 2019-05-31

Family

ID=66860604

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811625271.0A Pending CN109828914A (zh) 2018-12-28 2018-12-28 全流程分布式系统自动化测试方法以及测试系统

Country Status (1)

Country Link
CN (1) CN109828914A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113468041A (zh) * 2020-03-30 2021-10-01 北京沃东天骏信息技术有限公司 一种接口对比测试方法和装置
CN115237816A (zh) * 2022-09-22 2022-10-25 深圳市明源云科技有限公司 系统功能验证方法、装置、电子设备及可读存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050204201A1 (en) * 2004-03-15 2005-09-15 Ramco Systems Limited Method and system for testing software development activity
CN101140541A (zh) * 2007-09-29 2008-03-12 中兴通讯股份有限公司 一种分布式软件系统的集成测试系统及方法
CN101447892A (zh) * 2008-11-24 2009-06-03 中兴通讯股份有限公司 分布式测试方法和系统、以及测试服务器
JP2009245383A (ja) * 2008-03-31 2009-10-22 Nomura Research Institute Ltd 情報処理装置およびプログラム解析方法
CN101739334A (zh) * 2008-11-21 2010-06-16 上海科梁信息工程有限公司 嵌入式软件自动化测试方法
US20110083121A1 (en) * 2009-10-02 2011-04-07 Gm Global Technology Operations, Inc. Method and System for Automatic Test-Case Generation for Distributed Embedded Systems
CN105515883A (zh) * 2014-09-22 2016-04-20 阿里巴巴集团控股有限公司 一种测试方法及系统
CN109062780A (zh) * 2018-06-25 2018-12-21 深圳市远行科技股份有限公司 自动化测试用例的开发方法及终端设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050204201A1 (en) * 2004-03-15 2005-09-15 Ramco Systems Limited Method and system for testing software development activity
CN101140541A (zh) * 2007-09-29 2008-03-12 中兴通讯股份有限公司 一种分布式软件系统的集成测试系统及方法
JP2009245383A (ja) * 2008-03-31 2009-10-22 Nomura Research Institute Ltd 情報処理装置およびプログラム解析方法
CN101739334A (zh) * 2008-11-21 2010-06-16 上海科梁信息工程有限公司 嵌入式软件自动化测试方法
CN101447892A (zh) * 2008-11-24 2009-06-03 中兴通讯股份有限公司 分布式测试方法和系统、以及测试服务器
US20110083121A1 (en) * 2009-10-02 2011-04-07 Gm Global Technology Operations, Inc. Method and System for Automatic Test-Case Generation for Distributed Embedded Systems
CN105515883A (zh) * 2014-09-22 2016-04-20 阿里巴巴集团控股有限公司 一种测试方法及系统
CN109062780A (zh) * 2018-06-25 2018-12-21 深圳市远行科技股份有限公司 自动化测试用例的开发方法及终端设备

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
唐雨薇;李伯仲;: "分布式自动化测试框架的研究", no. 34 *
徐宏哲: "UML自动化测试技术", 31 August 2006, pages: 252 - 255 *
蔡高扬;马化军;李挥;: "aSIT:面向接口的分布式自动化测试系统", no. 04 *
陈丽萍;张勇;丁智敏;: "自动化单元测试框架EasyMock分析及其应用", no. 06 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113468041A (zh) * 2020-03-30 2021-10-01 北京沃东天骏信息技术有限公司 一种接口对比测试方法和装置
CN115237816A (zh) * 2022-09-22 2022-10-25 深圳市明源云科技有限公司 系统功能验证方法、装置、电子设备及可读存储介质
CN115237816B (zh) * 2022-09-22 2022-12-27 深圳市明源云科技有限公司 系统功能验证方法、装置、电子设备及可读存储介质

Similar Documents

Publication Publication Date Title
US7930683B2 (en) Test automation method for software programs
CN101377759B (zh) 自动化界面测试系统
EP2228726B1 (en) A method and system for task modeling of mobile phone applications
CN102087597A (zh) 一种基于j2ee和构件集的可视化开发平台
EP3367234A2 (en) Systems and methods for arbitrary software logic modeling
CN104778124A (zh) 一种软件应用自动化测试方法
CN105068794B (zh) 一种支持Web页面本地研发的实现方法
CN110928783A (zh) 基于RobotFramework自动化测试数据化改造的平台
CN108345532A (zh) 一种自动化测试用例生成方法和装置
CN105760296A (zh) 自动化测试控制方法、装置及终端
CN104331366A (zh) 一种测试用例设计效率提升方法及系统
CN102043716A (zh) 基于业务驱动的软件自动化测试方法
CN100375057C (zh) 一种自动化测试辅助系统及相应的软件自动测试方法
CN109828914A (zh) 全流程分布式系统自动化测试方法以及测试系统
CN107133175A (zh) 一种基于云计算的软件测试平台
CN109829198A (zh) 一种基于bim的钢结构质检信息化管理系统
Li et al. Microservice migration using strangler fig pattern: A case study on the green button system
CN110705724A (zh) 一种可重用自动化运维管理系统
CN102819488B (zh) 测试处理装置和测试处理方法
CN112131116A (zh) 一种嵌入式软件自动化回归测试方法
CN106371868A (zh) 一种自动化测试方法、系统及测试机器
CN101339506B (zh) 一种实现软件产品资源与版本管理的装置
CN109885493A (zh) 一种基于Android平台和Java反射的自动化混合框架
CN108132802B (zh) 一种配置模型在系统开发中的应用方法
CN114911687A (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