自动化接口测试系统及方法与流程

文档序号:25038255发布日期:2021-05-11 17:11阅读:113来源:国知局
自动化接口测试系统及方法与流程

本发明涉及自动化测试领域,可应用于金融领域和其他领域,尤指一种自动化接口测试系统及方法。



背景技术:

随着互联网技术的快速发展,紧跟时代脚步,具备强劲高端的技术平台,是每个企业必须具备的基础能力。同时也意味着企业系统必须做出短周期的迭代更新、系统升级。系统的迭代升级,必然会对测试人员造成重大的测试压力。增量功能的测试、存量功能的回归,会对企业造成大量的成本投入,同时也会放缓科技创新速度。显然,自动化测试有着减少测试人员重复机械测试工作、提高测试精度、模拟人工难以测试的场景(如并发)、测试资产的积累、减少用人成本等特点,已成为企业技术能力不可缺少的一部分。

当前自动化接口测试领域,测试人员本地环境采用脚本或者编码的方式,生成业务代码,通过执行完成案例的校验,该方法存在很多弊端:

1、对测试人员能力要求较高,需要测试人员具有较高编码能力,同时编码也必然存在测试人员编码问题导致案例执行结果不准确;

2、自动化代码并不能称作测试案例的一部分,应用的迭代升级,会导致频繁修改自动化业务代码,必然造成案例代码逻辑混乱,难以管理,最终导致自动化工具需要花费大量精力进行维护

3、测试案例本地化执行,无法归集测试资产,对系统无法做到周期内稳定性的便捷分析。



技术实现要素:

本发明目的在于提供一种自动化接口测试系统及方法,解决应用服务迭代周期短,测试人员资源短缺,目前自动化测试对测试人员技术能力要求高以及案例资产难以管理等问题。

为达上述目的,本发明所提供的一种自动化接口测试系统,所述系统包含数据驱动装置、案例执行装置、应用服务器和自动化挡板装置;所述数据驱动装置用于根据测试需求获得接口数据、环境数据和档案数据,通过所述接口数据和预设的决策树数据结构构建流程编排数据,通过所述流程编排数据、所述环境数据和所述档案数据和预设交易流水号配置规则拼接生成测试案例数据;所述案例执行装置与所述数据驱动装置相连,用于解析所述测试案例数据生成对应的测试代码,通过所述测试代码调用应用服务器发起交易请求;所述自动化挡板装置与所述应用服务器相连,用于根据所述交易请求获取对应的交易流水号;通过预设交易流水号配置规则验证所述交易流水号,当验证通过后,通过沙箱应用服务处理所述交易请求获得业务回执,将所述业务回执反馈至所述应用服务器。

在上述自动化接口测试系统中,优选的,所述数据驱动装置包含数据管理模块和流程编排模块;所述数据管理模块用于根据用户测试行为进行数据建模,构建环境数据库、档案数据库、接口数据库和流程编排数据库;以及,根据所述测试需求接收配置信息,通过所述配置信息于所述环境数据库、所述接口数据库和所述档案数据库获得对应的环境数据、接口数据和档案数据;所述流程编排模块采用决策树数据结构,通过所述决策树数据结构中各节点的节点属性设定并发与归集场景,所述流程编排模块用于通过所述接口数据和所述决策树数据结构中对应所述接口数据的节点属性构建流程编排数据。

在上述自动化接口测试系统中,优选的,所述数据管理模块通过swagger套件同步所述应用服务器的接口参数,根据所述接口参数和用户测试行为构建所述接口数据库。

在上述自动化接口测试系统中,优选的,所述案例执行装置包含数据解析模块、代码生成模块和执行模块;所述数据解析模块用于解析所述测试案例数据获得测试案例的配置参数;所述代码生成模块用于根据所述配置参数生成对应的测试代码;所述执行模块用于根据所述测试代码调用应用服务器发起交易请求。

在上述自动化接口测试系统中,优选的,所述代码生成模块根据所述配置参数通过velocity插件生成对应的测试代码。

在上述自动化接口测试系统中,优选的,自动化挡板装置包含路径检测模块、流水号检测模块和沙箱应用服务模块;所述路径检测模块用于分析所述交易请求的执行路径,当所述执行路径符合预设执行路径时,将所述交易请求提供至所述流水号检测模块;所述流水号检测模块用于根据所述交易请求获取对应的交易流水号,通过预设交易流水号配置规则验证所述交易流水号,当验证通过后,将所述交易请求提供至所述沙箱应用服务模块;所述沙箱应用服务模块用于处理所述交易请求,根据处理结果生成业务回执,将所述业务回执反馈至所述应用服务器。

在上述自动化接口测试系统中,优选的,所述系统还包含结果分析模块,所述结果分析模块与所述应用服务器相连,用于将所述应用服务器接收到的所述业务回执与预设反馈结果比较,根据比较结果获得测试结果;以及,将所述测试结果为失败的测试案例数据与预设标记类别匹配,根据匹配结果校验所述测试结果是否为误报。

本发明还提供一种自动化接口测试方法,所述方法包含:根据测试需求获得接口数据、环境数据和档案数据,通过所述接口数据和预设的决策树数据结构构建流程编排数据;通过所述流程编排数据、所述环境数据和所述档案数据和预设交易流水号配置规则拼接生成测试案例数据;解析所述测试案例数据生成对应的测试代码,通过所述测试代码发起交易请求;根据所述交易请求获取对应的交易流水号,通过预设交易流水号配置规则验证所述交易流水号,当验证通过后,通过沙箱应用服务处理所述交易请求获得业务回执。

在上述自动化接口测试方法中,优选的,根据测试需求获得接口数据、环境数据和档案数据,通过所述接口数据和预设的决策树数据结构构建流程编排数据包含:根据用户测试行为进行数据建模,构建环境数据库、档案数据库、接口数据库和流程编排数据库;根据所述测试需求接收配置信息,通过所述配置信息于所述环境数据库、所述接口数据库和所述档案数据库获得对应的环境数据、接口数据和档案数据;利用所述决策树数据结构中各节点的节点属性设定并发与归集场景,通过所述接口数据和所述决策树数据结构中对应所述接口数据的节点属性构建流程编排数据。

在上述自动化接口测试方法中,优选的,根据用户测试行为进行数据建模,构建环境数据库、档案数据库、接口数据库和流程编排数据库包含:通过swagger套件同步所述应用服务器的接口参数,根据所述接口参数和用户测试行为构建所述接口数据库。

在上述自动化接口测试方法中,优选的,解析所述测试案例数据生成对应的测试代码,通过所述测试代码发起交易请求包含:解析所述测试案例数据获得测试案例的配置参数;根据所述配置参数通过velocity插件生成对应的测试代码;根据所述测试代码调用应用服务器发起交易请求。

在上述自动化接口测试方法中,优选的,根据所述交易请求获取对应的交易流水号,通过预设交易流水号配置规则验证所述交易流水号,当验证通过后,通过沙箱应用服务处理所述交易请求获得业务回执包含:分析所述交易请求的执行路径;当所述执行路径符合预设执行路径时,根据所述交易请求获取对应的交易流水号;通过预设交易流水号配置规则验证所述交易流水号,当验证通过后,将所述交易请求提供至所述沙箱应用服务模块处理所述交易请求;根据处理结果生成业务回执。

在上述自动化接口测试方法中,优选的,所述方法还包含:将所述业务回执与预设反馈结果比较,根据比较结果获得测试结果;当所述测试结果为失败时,获取所述测试结果对应的测试案例数据,并将测试案例数据与预设标记类别匹配,根据匹配结果校验所述测试结果是否为误报。

本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。

本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。

本发明的有益技术效果在于:使用配置化的方式来实现用户案例的维护,避免测试人员因编码能力,限制其对自动化测试工具的使用体验效果;抽象用户测试行为,转化为自动化驱动数据模型,测试流程中的接口定义、业务流程作为多个测试场景的共享模块,测试人员只需关注被测接口,测试整体流程自动适配;采用分布式架构,使用决策树相关算法,实现案例执行过程中,动态智能化地控制案例执行顺序、接口并发量、接口串行化、以及对多个并发案例中涉及的某接口进行聚合执行等;整个操作流程采用配置方式,无需开发代码,降低了用户对工具的使用门槛。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:

图1为本发明一实施例所提供的自动化接口测试系统的结构示意图;

图2为本发明一实施例所提供的自动化接口测试系统的原理示意图;

图3为本发明一实施例所提供的数据驱动装置的结构示意图;

图4为本发明一实施例所提供的案例执行装置的结构示意图;

图5为本发明一实施例所提供的自动化挡板装置的结构示意图;

图6为本发明一实施例所提供的自动化接口测试系统的应用结构示意图;

图7为本发明一实施例所提供的自动化接口测试方法的流程示意图;

图8为本发明一实施例所提供的电子设备的结构示意图。

具体实施方式

以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。

另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

请参考图1所示,本发明所提供的一种自动化接口测试系统,所述系统包含数据驱动装置、案例执行装置、应用服务器和自动化挡板装置;所述数据驱动装置用于根据测试需求获得接口数据、环境数据和档案数据,通过所述接口数据和预设的决策树数据结构构建流程编排数据,通过所述流程编排数据、所述环境数据和所述档案数据和预设交易流水号配置规则拼接生成测试案例数据;所述案例执行装置与所述数据驱动装置相连,用于解析所述测试案例数据生成对应的测试代码,通过所述测试代码调用应用服务器发起交易请求;所述自动化挡板装置与所述应用服务器相连,用于根据所述交易请求获取对应的交易流水号;通过预设交易流水号配置规则验证所述交易流水号,当验证通过后,通过沙箱应用服务处理所述交易请求获得业务回执,将所述业务回执反馈至所述应用服务器。其中,所述自动化接口测试系统的各组成装置可分设于不同位置也可集成于一体设备上,本领域相关技术人员可根据实际需要选择设定和使用,本发明对此并不做进一步限定。

整体上,本发明所提供的自动化接口测试系统可包含五个板块:数据管理、流程编排、案例执行、沙箱管理和结果分析,流程关系可参考图2所示。具体的,在实际工作中,数据驱动装置可采用mysql作为存储介质,测试人员通过维护接口执行顺序与相关属性形成流程编排,同时测试人员通过选择流程编排、环境数据、档案数据组成测试案例;当测试人员通过自动化控制台手工/定时触发案例执行时,案例执行器解析案例数据,并进行拼装,通过velocity插件生成自动化测试代码逻辑,存放缓存,并按照规则调用应用服务器发起请求,应用服务器对接沙箱模块,沙箱通过自动化上送的流水号规则,来判断交易流向,如果流水号符合自动化流水号配置规则,那么按照测试人员预期返回结果回执应用系统;进一步的,工作人员获知上述案例执行装置可通过测试预期返回结果与应用返回实际结果进行断言,并生成结果报告,供案例分析统计使用;本领域相关技术人员可根据实际需要予以设定,本发明对此并不做具体限定。

请参考图3所示,在本发明一实施例中,所述数据驱动装置可包含数据管理模块和流程编排模块;所述数据管理模块用于根据用户测试行为进行数据建模,构建环境数据库、档案数据库、接口数据库和流程编排数据库;以及,根据所述测试需求接收配置信息,通过所述配置信息于所述环境数据库、所述接口数据库和所述档案数据库获得对应的环境数据、接口数据和档案数据;所述流程编排模块采用决策树数据结构,通过所述决策树数据结构中各节点的节点属性设定并发与归集场景,所述流程编排模块用于通过所述接口数据和所述决策树数据结构中对应所述接口数据的节点属性构建流程编排数据。

在上述实施例中,所述数据管理模块通过swagger套件同步所述应用服务器的接口参数,根据所述接口参数和用户测试行为构建所述接口数据库;实际工作中,上述数据管理模块可根据测试人员测试行为进行数据建模,并将案例数据进行解耦,减少因业务系统改造对案例影响的范围。案例数据共分为:环境数据、档案数据、接口数据和流程编排数据。按照上述数据建模后,可实现通过简单的配置方式解决因应用环境、应用用户档案、应用业务流程的改变导致案例数据需要进行相应调整。

在另一实施例中,所述流程编排模块采用决策树数据结构模式,通过各节点的节点属性,来控制案例执行各种并发与归集场景;该模块通过维护接口执行顺序与接口数据依赖关系,达到业务流程的编排;当应用系统发生流程变更,测试人员无需修改案例数据,只需要调整原案例的流程编排顺序即可。

请参考图4所示,在本发明一实施例中,所述案例执行装置可包含数据解析模块、代码生成模块和执行模块;所述数据解析模块用于解析所述测试案例数据获得测试案例的配置参数;所述代码生成模块用于根据所述配置参数生成对应的测试代码;所述执行模块用于根据所述测试代码调用应用服务器发起交易请求。其中,所述代码生成模块根据所述配置参数通过velocity插件生成对应的测试代码。在实际工作中,所述案例执行装置可设置为手动、定时触发或环境部署触发等多种模式来执行测试案例,因业务系统涉及到接口并发上限、案例执行时长等要求,执行模块可根据应用需求,在任意一个接口添加串行标志、并发量、接口执行优先顺序、接口休眠时间,并对类似定时任务接口、支持案例执行到特定接口进行接口归集。

请参考图5所示,在本发明一实施例中,自动化挡板装置包含路径检测模块、流水号检测模块和沙箱应用服务模块;所述路径检测模块用于分析所述交易请求的执行路径,当所述执行路径符合预设执行路径时,将所述交易请求提供至所述流水号检测模块;所述流水号检测模块用于根据所述交易请求获取对应的交易流水号,通过预设交易流水号配置规则验证所述交易流水号,当验证通过后,将所述交易请求提供至所述沙箱应用服务模块;所述沙箱应用服务模块用于处理所述交易请求,根据处理结果生成业务回执,将所述业务回执反馈至所述应用服务器。由此,利用所述自动化挡板装置以提高保证测试结果的稳定性,减少因下游系统对测试结果的影响。其中,所述自动化挡板装置无需代码开发,只需要按照流水号规则配置响应报文,即可模拟下游对应用系统的回执,同时对接沙箱也不会影响测试人员手动与下游联调。

请参考图6所示,所述系统还可包含结果分析模块,所述结果分析模块与所述应用服务器相连,用于将所述应用服务器接收到的所述业务回执与预设反馈结果比较,根据比较结果获得测试结果;以及,将所述测试结果为失败的测试案例数据与预设标记类别匹配,根据匹配结果校验所述测试结果是否为误报。在实际工作中,当案例执行结束后,所述结果分析模块可为测试人员提供结果展示页面,测试人员可直观地查看到案例执行通过率、失败案例、误报案例,同时支持案例结果的导入导出,同时报表模块添加智能学习功能,测试人员通过标记对类似环境因素导致的失败案例,记录结果为误报,后续同类型案例执行结束后,工具会对同类型的报错结果记录误报。在具体应用时,可将案例执行结果以json格式进行保存,方便应用读取并解析执行结果,该模块对测试结果进行归集并统筹管理,形成测试结果资产,方便后续统计系统的稳定性提供度量数据。

请参考图7所示,本发明还提供一种自动化接口测试方法,所述方法包含:

s701根据测试需求获得接口数据、环境数据和档案数据,通过所述接口数据和预设的决策树数据结构构建流程编排数据;

s702通过所述流程编排数据、所述环境数据和所述档案数据和预设交易流水号配置规则拼接生成测试案例数据;

s703解析所述测试案例数据生成对应的测试代码,通过所述测试代码发起交易请求;

s704根据所述交易请求获取对应的交易流水号,通过预设交易流水号配置规则验证所述交易流水号,当验证通过后,通过沙箱应用服务处理所述交易请求获得业务回执。

在上述实施例中,步骤s701还包含:根据用户测试行为进行数据建模,构建环境数据库、档案数据库、接口数据库和流程编排数据库;根据所述测试需求接收配置信息,通过所述配置信息于所述环境数据库、所述接口数据库和所述档案数据库获得对应的环境数据、接口数据和档案数据;利用所述决策树数据结构中各节点的节点属性设定并发与归集场景,通过所述接口数据和所述决策树数据结构中对应所述接口数据的节点属性构建流程编排数据。其中,所述接口数据库可通过swagger套件同步所述应用服务器的接口参数,根据所述接口参数和用户测试行为所构建。

在本发明另一实施例中,解析所述测试案例数据生成对应的测试代码,通过所述测试代码发起交易请求包含:解析所述测试案例数据获得测试案例的配置参数;根据所述配置参数通过velocity插件生成对应的测试代码;根据所述测试代码调用应用服务器发起交易请求。由此,在本发明一实施例中,根据所述交易请求获取对应的交易流水号,通过预设交易流水号配置规则验证所述交易流水号,当验证通过后,通过沙箱应用服务处理所述交易请求获得业务回执可包含:分析于所述应用服务器处获得的所述交易请求的执行路径;当所述执行路径符合预设执行路径时,根据所述交易请求获取对应的交易流水号;通过预设交易流水号配置规则验证所述交易流水号,当验证通过后,将所述交易请求提供至所述沙箱应用服务模块处理所述交易请求;根据处理结果生成业务回执。

在本发明另一实施例中,所述方法还包含:将所述业务回执与预设反馈结果比较,根据比较结果获得测试结果;当所述测试结果为失败时,获取所述测试结果对应的测试案例数据,并将测试案例数据与预设标记类别匹配,根据匹配结果校验所述测试结果是否为误报。

本发明的有益技术效果在于:使用配置化的方式来实现用户案例的维护,避免测试人员因编码能力,限制其对自动化测试工具的使用体验效果;抽象用户测试行为,转化为自动化驱动数据模型,测试流程中的接口定义、业务流程作为多个测试场景的共享模块,测试人员只需关注被测接口,测试整体流程自动适配;采用分布式架构,使用决策树相关算法,实现案例执行过程中,动态智能化地控制案例执行顺序、接口并发量、接口串行化、以及对多个并发案例中涉及的某接口进行聚合执行等;整个操作流程采用配置方式,无需开发代码,降低了用户对工具的使用门槛。

本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。

本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。

如图8所示,该电子设备600还可以包括:通信模块110、输入单元120、音频处理单元130、显示器160、电源170。值得注意的是,电子设备600也并不是必须要包括图8中所示的所有部件;此外,电子设备600还可以包括图8中没有示出的部件,可以参考现有技术。

如图8所示,中央处理器100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器100接收输入并控制电子设备600的各个部件的操作。

其中,存储器140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器100可执行该存储器140存储的该程序,以实现信息存储或处理等。

输入单元120向中央处理器100提供输入。该输入单元120例如为按键或触摸输入装置。电源170用于向电子设备600提供电力。显示器160用于进行图像和文字等显示对象的显示。该显示器例如可为lcd显示器,但并不限于此。

该存储器140可以是固态存储器,例如,只读存储器(rom)、随机存取存储器(ram)、sim卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为eprom等。存储器140还可以是某种其它类型的装置。存储器140包括缓冲存储器141(有时被称为缓冲器)。存储器140可以包括应用/功能存储部142,该应用/功能存储部142用于存储应用程序和功能程序或用于通过中央处理器100执行电子设备600的操作的流程。

存储器140还可以包括数据存储部143,该数据存储部143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器140的驱动程序存储部144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。

通信模块110即为经由天线111发送和接收信号的发送机/接收机110。通信模块(发送机/接收机)110耦合到中央处理器100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。

基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)110还经由音频处理器130耦合到扬声器131和麦克风132,以经由扬声器131提供音频输出,并接收来自麦克风132的音频输入,从而实现通常的电信功能。音频处理器130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器130还耦合到中央处理器100,从而使得可以通过麦克风132能够在本机上录音,且使得可以通过扬声器131来播放本机上存储的声音。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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