CN110083543B - 回归测试方法、装置、电子设备及存储介质 - Google Patents
回归测试方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN110083543B CN110083543B CN201910375342.4A CN201910375342A CN110083543B CN 110083543 B CN110083543 B CN 110083543B CN 201910375342 A CN201910375342 A CN 201910375342A CN 110083543 B CN110083543 B CN 110083543B
- Authority
- CN
- China
- Prior art keywords
- data
- code
- playback
- running
- tested
- 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
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/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
Abstract
本发明公开了一种回归测试方法、装置、电子设备及存储介质。该方法包括:根据录制的流量数据运行正确代码,得到干扰参数和第一回放数据;根据所述干扰参数和所述流量数据运行待测试代码,得到第二回放数据;根据所述第一回放数据和所述第二回放数据确定测试结果。相对于使用人工虚拟的测试数据,由人工进行回归测试,本发明实施例能够录制流量数据,并根据流量数据运行正确代码得到干扰参数和第一回放数据,并根据录制的流量数据和干扰参数对待测试代码进行回归测试,使用线上录制的流量数据进行回归测试能够提高回归测试真实性,由机器完成上述回归测试过程,能够降低人力成本。
Description
技术领域
本发明实施例涉及软件测试技术,尤其涉及一种回归测试方法、装置、电子设备及存储介质。
背景技术
自动化测试系统是现代软件工程不可或缺的一环。目前在进行测试时,工程师根据程序特点设计测试用例,然后使用测试用例对待测试代码进行测试,完成自动化测试。但是这种方式往往需要大量的人工维护成本,而且工程师人为设计的测试用例很难保证用例的真实性。
发明内容
本发明提供一种回归测试方法、装置、电子设备及存储介质,以实现使用真实实例进行代码测试,提高测试真实性,同时能够自动化的完成回归测试,降低人工维护成本。
第一方面,本发明实施例提供了一种回归测试方法,包括:
根据录制的流量数据运行正确代码,得到干扰参数和第一回放数据;
根据干扰参数和流量数据运行待测试代码,得到第二回放数据;
根据第一回放数据和第二回放数据确定测试结果。
第二方面,本发明实施例还提供了一种回归测试装置,包括:
正确代码回放模块,用于根据录制的流量数据运行正确代码,得到干扰参数和第一回放数据;
待测试代码回放模块,用于根据正确代码回放模块得到的干扰参数和流量数据运行待测试代码,得到第二回放数据;
分析模块,用于根据正确代码回放模块得到的第一回放数据和待测试代码回放模块得到的第二回放数据确定测试结果。
第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现如第一方面所示的回归测试方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所示的回归测试方法。
本发明实施例提供的回归测试方法、装置、电子设备及存储介质,能够根据录制的流量数据运行正确代码,得到干扰参数和第一回放数据;根据干扰参数和流量数据运行待测试代码,得到第二回放数据;然后,根据第一回放数据和第二回放数据确定测试结果。相对于使用人工虚拟的测试数据,由人工进行回归测试,本发明实施例能够录制流量数据,并根据流量数据运行正确代码得到干扰参数和第一回放数据,并根据录制的流量数据和干扰参数对待测试代码进行回归测试,使用线上录制的流量数据进行回归测试能够提高回归测试真实性,由机器完成上述回归测试过程,能够降低人力成本。
附图说明
图1是本发明实施例中的一种回归测试方法的流程图;
图2是本发明实施例中的一种回归测试架构示意图;
图3是本发明实施例中的另一种回归测试方法的流程图;
图4是本发明实施例中的另一种回归测试方法的流程图;
图5是本发明实施例中的一个回归测试系统使用的微服务架构图;
图6是本发明实施例中的一个回归测试系统的系统架构图;
图7是本发明实施例中的一种回归测试装置的结构示意图;
图8是本发明实施例中的另一种回归测试装置的结构示意图;
图9是本发明实施例中的一个电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
自动化测试系统是现代软件工程不可或缺的一环。目前在进行测试时,工程师根据程序特点设计测试用例,然后使用测试用例对待测试代码进行测试,完成自动化测试。但是这种方式往往需要大量的人工维护成本,而且工程师人为设计的测试用例很难保证用例的真实性。
本发明实施例提供了一种自动化回归测试方法,能够使用线上录制的流量数据作为测试用例,实现使用真实用例进行回归测试,提高测试数据真实性。同时,能够由机器自动的根据录制的流量数据运行正确代码,得到干扰参数和第一回放数据;然后,根据干扰参数和流量数据运行待测试代码,得到第二回放数据;最后,根据第一回放数据和第二回放数据确定测试结果,实现自动化的回归测试,降低人工成本。
图1为本发明实施例提供的一种回归测试方法的流程图,本实施例可适用于软件回测测试的情况,该方法可以由个人电脑、平板电脑、平板电脑或智能手机执行,该方法具体包括如下步骤:
步骤110、根据录制的流量数据运行正确代码,得到干扰参数和第一回放数据。
用户在线上发起请求后,启动录制,得到流量数据。可以在生产环境中录制流量数据。生产环境为正式使用的系统环境。示例性的,一个环境对应一个服务器,也可以把开发、测试等环境放到一个服务器的。如从SVN(Subversion)上通过文件传输协议(FileTransfer Protocol,FTP)下载后,在服务器上的eclipse部署、发布,服务器使用linux系统。流量数据包括在应答用户请求时,产生的中间数据和结果数据。
根据录制的流量数据运行正确代码。正确代码为已测试的正确的代码。运行正确代码的过程中会产生中间数据以及结果数据,形成第一回放数据。根据第一回访数据和流量数据的差异可确定干扰参数。
步骤120、根据干扰参数和流量数据运行待测试代码,得到第二回放数据。
待测试代码与正确代码为同一应用对应的不同版本的代码。正确代码为已确定的正确的代码,待测试代码为有待验证的代码。
通过正确代码和流量数据可确定干扰参数,根据干扰参数进行mock测试。mock测试为,在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。通过正确代码和流量数据可确定干扰参数,根据干扰参数和流量数据对待测试代码进行mock测试,得到第二回放数据。
示例性的,在如图2所示,在一种实现方式中,在生产环境下根据录制的流量数据运行正确代码,得到干扰参数和第一回放数据。相应的,在生产环境下根据干扰参数和流量数据运行待测试代码,得到第二回放数据。
流量数据为在生产环境中录制的。在进行测试时,为了更加真实的还原录制环境,提高测试真实性,在生产环境下根据录制的流量数据运行正确代码,得到干扰参数和第一回放数据。之后,在生产环境下根据干扰参数和流量数据运行待测试代码,得到第二回放数据。
用户发起请求后,可以由第一应用(可命名为cargo-order-app)在生产环境中录制线上流量,包括请求与响应记录;同时,记录边界数据。将请求与响应记录、边界数据记录作为数据记录(Data Record)进行线上流量(即流量数据)存储。在计划A(Plan A)中,首先进行线上流量引入控制,包括将录制的流量数据引入控制流程。然后由第一应用(可命名为cargo-order-app)在生产环境下进行线上流量与挡板数据加载。然后由第二应用(可命名为bargain-order-app)在生产环境下进行线上流量回放与结果记录,其中,线上流量(即流量数据)回放得到第一回访数据以及第二回放数据。其中,挡板数据为mock测试中根据干扰参数形成的挡板数据。然后,将验证结果收集存储。最后进行验证结果消噪与分析和验证结果展示和归档。
在另一种实现方式中,在独立环境下根据录制的流量数据运行正确代码,得到干扰参数和第一回放数据。相应的,在独立环境下下根据干扰参数和流量数据运行待测试代码,得到第二回放数据。
流量数据为在生产环境中录制的。在进行测试时,为了避免外界不断变化的噪声对待测试代码测试造成不必要的干扰,提高测试稳定性,在独立环境下根据录制的流量数据运行正确代码,得到干扰参数和第一回放数据。之后,在独立环境下根据干扰参数和流量数据运行待测试代码,得到第二回放数据。
独立环境(stand alone)可以为开发和配置环境或测试环境。与上述生产环境不同,独立环境中可以排除生产环境中的噪声。其中,开发和配置环境用于开发和配置,在此环境中可以修改配置和进行开发。示例性的,开发环境可以为开发人员电脑上的开发环境,开发人员可以配置和开发。测试环境:新开发和配置通过系统传输到测试环境,进行功能测试,可以创建数据。示例性的,开发人员开发完上传到SVN,测试人员下载后进行测试。
用户发起请求后,可以由第一应用(可命名为cargo-order-app)在生产环境中录制线上流量,包括请求与响应记录;同时,记录边界数据。将请求与响应记录、边界数据记录作为数据记录(Data Record)进行线上流量(即流量数据)存储。在计划B(PlanB)中,首先进行线上流量引入控制,包括将录制的流量数据引入控制流程。然后由第一应用(可命名为cargo-order-app)在独立环境下进行线上流量与挡板数据加载。然后由第二应用(可命名为bargain-order-app)在独立环境下进行线上流量回放与结果记录,其中,线上流量(即流量数据)回放得到第一回访数据以及第二回放数据。其中,挡板数据为mock测试中根据干扰参数形成的挡板数据。然后,将验证结果收集存储。最后进行验证结果消噪与分析和验证结果展示和归档。
步骤130、根据第一回放数据和第二回放数据确定测试结果。
在上述示例中,步骤130相当于进行验证结果消噪与分析,以及验证结果展示和归档的功能。
在得到第一回放数据和第二回放数据之后,根据第一回放数据和第二回放数据可确定验证结果。验证结果包括待测试代码有误或无误。如果有误,则可根据第一回放数据和第二回放数据进行分析,定位问题代码。
本发明实施例提供的回归测试方法,能够根据录制的流量数据运行正确代码,得到干扰参数和第一回放数据;根据干扰参数和流量数据运行待测试代码,得到第二回放数据;然后,根据第一回放数据和第二回放数据确定测试结果。相对于使用人工虚拟的测试数据,由人工进行回归测试,本发明实施例能够录制流量数据,并根据流量数据运行正确代码得到干扰参数和第一回放数据,并根据录制的流量数据和干扰参数对待测试代码进行回归测试,使用线上录制的流量数据进行回归测试能够提高回归测试真实性。根据流量数据作为待测试代码的输入数据,能够实现测试用例数据真实化。由机器完成上述回归测试过程,实现测试用例生成自动化,能够降低人力成本。由机器自动运行正确代码和待测试代码,并根据第一回放数据和第二回放数据进行分析,可实现应用测试回归测试无人化。
图3为本发明实施例提供的一种回归测试方法的流程图,在一个使用场景中,流量数据包括输入数据、第一过程参数和输出数据,步骤110、根据录制的流量数据运行正确代码,得到干扰参数和第一回放数据,可通过下述方式进行实施:
步骤210、根据输入数据运行正确代码,获取运行中产生的第二过程参数和第一回放数据。
可以通过读取请求与响应记录,获取输入数据、输出数据以及部分第一过程参数。边界数据记录中包含有另一部分的第一过程参数。
步骤220、如果输出数据与第一回放数据不同,则根据第一过程参数和第二过程参数确定干扰参数。
在运行正确代码时,如果运行正确代码得到的第一回放数据与录制的流量数据中的输出数据不同,则说明存在影响测试的噪声,即干扰参数。示例性的,待测试代码在系统环境中独立运行,不存在与其他应用之间的交互,但是会引入系统时间或随机数等。此时,干扰参数包括随机数或时间戳。
相应的,步骤120、根据干扰参数和流量数据运行待测试代码,得到第二回放数据,可通过下述方式进行实施:
步骤230、根据干扰参数确定第一挡板数据。
通过运行正确代码可确定干扰参数包括随机数或时间戳。此时,根据随机数或时间戳生成第一挡板数据。示例性的,可以将随机数设置为固定数值,该固定数值可以根据流量数据中的相应数据一致。同理,根据流量数据将系统时间的时间戳进行统一设置。使得根据第一挡板数据运行待测试代码时,如果待测试代码本身无问题,则其运行结果应当与流量数据的结果数据一致。
步骤240、根据第一挡板数据和流量数据运行待测试代码,得到第二回放数据。
将步骤230得到第一挡板数据带入到待测试代码的运行中,得到第二回放数据。
本发明实施例提供的回归测试方法,能够根据时间戳或随机数等干扰参数确定第一挡板数据,基于第一挡板数据进行测试,避免随机数等干扰参数影响待测试代码的运行结果,使得待测试代码的运行结果更加可控,易于比较和分析,提高测试的可靠性。
图4为本发明实施例提供的一种回归测试方法的流程图,作为对上述实施例的进一步说明,包括:
步骤310、根据输入数据运行正确代码,获取运行中产生的第二过程参数和第一回放数据。
步骤320、如果输出数据与第一回放数据不同,则根据第一过程参数和第二过程参数确定干扰参数。
步骤330、获取待测试代码与外部应用的接口数据。
待测试代码运行中使用的参数,除了初始输入的输入参数,还可能在运行过程中涉及与其他应用的数据交互。待测试代码可以通过接口向其他应用发送数据,也可以通过接口接收其他应用发送的数据。接口包括超文本传输协议(HyperText TransferProtocol,HTTP)接口、远程过程调用(Remote Procedure Call,RPC)接口、数据库(Database,DB)接口以及消息列表(Message Queue,MQ)接口等。可以为待测试代码配置使用相应接口的权限,以实现待测试代码可以使用相应接口。
步骤340、根据接口数据确定第二挡板数据。
若待测试代码中存在于其他应用进行数据交互的接口数据,则根据接口数据确定第二挡板数据。可以根据接口数据虚拟出相应应用,或者根据流量数据生成第二挡板数据。
步骤350、根据第一挡板数据和/或第二挡板数据,以及流量数据,运行待测试代码,得到第二回放数据。
可选的,当不存在随机数或系统时间戳等噪声时,可以根据第二挡板数据和流量数据,运行待测试代码,得到第二回放数据。
可选的,当既存在随机数或系统时间戳等噪声,又存在接口数据时,根据第一挡板数据、第二挡板数据和流量数据,运行待测试代码,得到第二回放数据。
步骤360、根据第一回放数据和第二回放数据确定测试结果。
本发明实施例提供的回归测试方法,能够根据接口数据确定第二挡板数据,基于第二挡板数据和/或第一挡板数据对待测试代码进行测试,进一步提高待测试代码运行的稳定性,使待测试代码的运行结果更加可控,易于比较和分析,提高测试的可靠性。
进一步的,在步骤120、根据干扰参数和流量数据运行待测试代码,得到第二回放数据之前,还包括:
对目标应用下的子应用进行重构;根据重构结果确定待测试代码。
待测试代码可以为目标应用对应的代码。目标应用可以由多个子应用组成,每个子应用的代码组成待测试代码。例如,目标应用由子应用A和子应用B组成,子应用A和子应用B的功能分工可以通过重构的方式进行调整,使得目标应用整体功能不变的前提下,其内部子应用的资源使用更加合理。随着子应用功能的重构,子应用对接口的使用权限也会相应调整。可以根据重构结果,子应用A和子应用B的接口权限进行定义,并根据新的接口权限配置相应的第二挡板数据。
对于重构后的子应用A和子应用B,HTTP接口可以用于进行数据回放以及测试结果的比较分析,RPC接口可以用于数据回放以及mock测试,数据库接口可以用于mock测试,消息队列MQ接口可以用于数据回放以及mock测试。
进一步的,在录制流量数据后,可以根据微服务接口变更,通过接口适配,仍然可以使旧版本录制的流量在新版本中继续发挥回归验证的功能。微服务接口即目标应用的子应用使用的接口。
本申请实施例提供的回归测试方法,能够提供对重构应用的待测试代码进行测试,提高回归测试的易用性,实现应用重构验证无人化。
本发明实施例提供的回归测试方法,可以适用于Java Web应用。通过采用instrument机制实现上述实施例所示的回归测试方式,实现无侵入式的流量录制与重放。通过自动化的记录(record)与mock机制实现单元测试时复杂的场景复现。通过待验证域概念,拓展支持微服务的复杂重构场景。通过线上流量录制,生产真实case,使用真实示例(case)进行代码测试。通过套录制域重放流程,自动化的形式完成回归测试。
在一个使用场景中,图5为本发明实施例提供的一个回归测试系统使用的微服务架构图,电子设备可以为用户提供回归测试服务(DOOM Server),配置回归测试服务包括边界的挡板数据定义(boundary define)、回放控制配置(replay conf)以及结果比较和分析(result diff&viewer)。将上述配置信息拷贝到文件系统(file system,fs)。
在本实用场景中,待测试代码为目标应用更新后的代码,目标应用在更新前,由旧应用A(old-app-A)和旧应用B(old-app-B)组成。旧应用A可以向旧应用B发出数据处理请求。旧应用A还可以向外部应用C发起请求,向外部数据库发起请求。旧应用B可以向外部应用D发起请求,并接收外部消息队列(MQ)发送的消息。旧应用A和旧应用B的数据分别将记录(record)发送到文件系统(fs)中。旧应用A和旧应用B针对回归测试设备(DOOM-client)配置有HTTP接口、RPC接口、数据库接口以及消息队列接口的使用权限。
进行重构后,得到新应用A(new-app-A)和新应用B(new-app-B)。根据重构结果得到待测试代码。在进行待测代码测试时,从文件系统中读取数据到新应用A(new-app-A)和新应用B(new-app-B)。其中,数据包括第一挡板数据和第二挡板数据。在使用流量数据进行回放时,对于边界外的外部数据,可使用第二挡板数据进行mock测试,对于随机数或系统时间可使用第一挡板数据进行mock测试。如果出现比较结果不一致时,可将差异比较结果(record diff)写入文件系统。由文件系统反馈至回归测试服务的配置中。
上述实施例中,针对复杂的微服务架构,提出“待验证域Verification Scope”概念,即将应用拆分为子应用后,对每个子应用进行mock测试,以支持复杂的服务拆分与重构过程中大量的回归测试工作。
示例性的,如图6所示,在JAVA环境中,回归测试平台(DOOM)包括操作功能、功能组件以及功能特征三方面。其中,功能组件包括:Master、Slave和Analyzer。Master包括APIServer、Scheduler、ControllerManager和UI。Slave包括Agent、Replayer和InAppClient。功能特性包括:自动消噪(流量数据、第一回放数据和第二回放数据之间比较)、多单元多环境支持、状态监测、回放倍速、分布式traffic流量录制和挡板数据mock。
APIServer负责录制流量。Scheduler负责执行回放。Analyzer负责比对结果,输出结果报表。Agent负责多单元多环境支持和状态监控。Replayer负责回放倍速。InAPPClient负责分布式traffic流量录制和挡板数据mock。
在一种实现方式中,该方法可以由包括下述功能模块的系统执行,包括InAppClient模块、DoomServer模块、Replayer模块。其中,DoomServer模块用于负责流量数据的存储、查询,以及请求重放结果的比对。Replayer模块用于流量请求的重放。InAppClient模块用于线上流量的录制,以及重放节点数据的自动化mock。具体操作过程如下:
步骤1:Master向Agent指定环境开始录制。
步骤1.1:Agent获取带录制应用节点列表。
步骤1.2:Agent向InAppClient下发开始录制配置。
步骤1.2.1:InAppClient加载采样规则。
步骤1.2.2:InAppClient打开录音开关。
步骤1.2.3:InAppClient向DoomServer转存采样数据。
InAppClient将数据写入kafka后,由kafka将数据转发至DoomServer。
采样数据包括用户发起的请求(request)数据。
步骤2:Master向Agent指定环境停止录制。
步骤2.1:Agent向InAppClient下发停止录制配置。
步骤2.1.1:InAppClient关闭录制开关。
从打开录制开关到关闭录制开关期间录制的数据为流量数据。
步骤3:Master向Agent指定环境开始回放正确代码。
步骤3.1:Agent向Replayer发送回放指令。
该回放指令用于回放正确代码。
步骤3.1.1:Replayer查询数据库DB,加载请求数据。
步骤3.1.2:Replayer向InAppClient(回放-正确代码)发起traffic请求。
此时,InAppClient负责正确代码的回放。
步骤3.1.2.1:InAppClient查询数据库,加载挡板数据。
步骤3.1.3:Replayer向DoomServer转存回放数据。
其中,回放数据为正确代码的第一回放数据。
步骤4:Master向Agent指定环境回放到待测试代码。
步骤4.1:Agent向Replayer发送回放指令。
该回放指令用于回放待测试代码。
步骤4.1.1:Replayer查询数据库DB,加载请求数据。
步骤4.1.2:Replayer向InAppClient(回放-待测试代码)发起traffic请求。
此时,InAppClient负责待测试代码的回放。
步骤4.1.2.1:InAppClient查询数据库,加载挡板数据。
步骤4.1.3:Replayer向DoomServer转存回放数据。
回放数据为第二回放数据。
步骤5:分析比对三方数据,验证结果。
其中三方数据包括流量数据、第一回放数据和第二回放数据。
图7为本发明实施例提供的一种数据脱敏装置的结构示意图,该装置可以位于电子设备上,电子设备包括个人计算机、笔记本电脑、平板电脑、智能手机等,该装置包括正确代码回放模块41、待测试代码回放模块42和分析模块43。
正确代码回放模块41用于:根据录制的流量数据运行正确代码,得到干扰参数和第一回放数据;
待测试代码回放模块42用于:根据正确代码回放模块41得到的干扰参数和流量数据运行待测试代码,得到第二回放数据;
分析模块43用于:根据正确代码回放模块41得到的第一回放数据和待测试代码回放模块42得到的第二回放数据确定测试结果。
进一步的,正确代码回放模块41用于,在生产环境下根据录制的流量数据运行正确代码,得到干扰参数和第一回放数据;
相应的,待测试代码回放模块42用于:
在生产环境下根据干扰参数和流量数据运行待测试代码,得到第二回放数据。
进一步的,正确代码回放模块41用于,
在独立环境下根据录制的流量数据运行正确代码,得到干扰参数和第一回放数据;
相应的,待测试代码回放模块42用于:
在独立环境下下根据干扰参数和流量数据运行待测试代码,得到第二回放数据。
进一步的,流量数据包括输入数据、第一过程参数和输出数据;相应的,正确代码回放模块41用于:根据输入数据运行正确代码,获取运行中产生的第二过程参数和第一回放数据;
如果输出数据与第一回放数据不同,则根据第一过程参数和第二过程参数确定干扰参数;
相应的,待测试代码回放模块42用于:
根据干扰参数确定第一挡板数据;
根据第一挡板数据和流量数据运行待测试代码,得到第二回放数据。
进一步的,干扰参数包括随机数或时间戳。
进一步的,如图8所示,还包括接口数据获取模块44和重构模块45。
接口数据获取模块44用于,获取待测试代码与外部应用的接口数据;
相应的,待测试代码回放模块42用于:
根据接口数据确定第二挡板数据;
根据第一挡板数据、第二挡板数据和流量数据,运行待测试代码,得到第二回放数据。
重构模块45用于,对目标应用下的子应用进行重构;
根据重构结果确定待测试代码。
本发明实施例提供的回归测试装置,正确代码回放模块41根据录制的流量数据运行正确代码,得到干扰参数和第一回放数据;待测试代码回放模块42根据正确代码回放模块41得到的干扰参数和流量数据运行待测试代码,得到第二回放数据;分析模块43根据正确代码回放模块41得到的第一回放数据和待测试代码回放模块42得到的第二回放数据确定测试结果。相对于使用人工虚拟的测试数据,由人工进行回归测试,本发明实施例能够录制流量数据,并根据流量数据运行正确代码得到干扰参数和第一回放数据,并根据录制的流量数据和干扰参数对待测试代码进行回归测试,使用线上录制的流量数据进行回归测试能够提高回归测试真实性,由机器完成上述回归测试过程,能够降低人力成本。
上述装置可执行本发明前述所有实施例所提供的方法,具备执行上述方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明前述所有实施例所提供的方法。
图9为本发明实施例提供的一种电子设备的结构示意图。图9示出了适于用来实现本发明实施方式的电子设备512的框图。图9显示的电子设备512仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。设备512典型的是用于进行回归测试的个人电脑、平板电脑、平板电脑或智能手机。
如图9所示,电子设备512以通用计算设备的形式表现。电子设备512的组件可以包括但不限于:一个或者多个处理器516,存储装置528,连接不同系统组件(包括存储装置528和处理器516)的总线518。
总线518表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture,ISA)总线,微通道体系结构(Micro Channel Architecture,MCA)总线,增强型ISA总线、多媒体电子标准协会(Video Electronics Standards Association,VESA)局域总线以及外围组件互连(Peripheral Component Interconnect,PCI)总线。
电子设备512典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备512访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储装置528可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory,RAM)530和/或高速缓存存储器532。电子设备512可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统534可以用于读写不可移动的、非易失性磁介质(图9未显示,通常称为“硬盘驱动器”)。尽管图9中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如只读光盘(Compact Disc-Read Only Memory,CD-ROM)、数字视盘(Digital Video Disc-Read Only Memory,DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线518相连。存储装置528可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块526的程序536,可以存储在例如存储装置528中,这样的程序模块526包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块526通常执行本发明所描述的实施例中的功能和/或方法。
电子设备512也可以与一个或多个外部设备514(例如键盘、指向设备、摄像头、显示器524等)通信,还可与一个或者多个使得用户能与该电子设备512交互的设备通信,和/或与使得该电子设备512能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口522进行。并且,电子设备512还可以通过网络适配器520与一个或者多个网络(例如局域网(Local Area Network,LAN),广域网Wide Area Network,WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器520通过总线518与电子设备512的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备512使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、磁盘阵列(Redundant Arrays of Independent Disks,RAID)系统、磁带驱动器以及数据备份存储系统等。
处理器516通过运行存储在存储装置528中的程序,从而执行各种功能应用以及数据处理,例如实现本发明上述实施例所提供的回归测试方法。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例所提供的回归测试方法。
当然,本发明实施例所提供的一种计算机可读存储介质,其上存储的计算机程序不限于如上所示的方法操作,还可以执行本发明任意实施例所提供的回归测试方法中的相关操作。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (8)
1.一种回归测试方法,其特征在于,包括:
根据录制的流量数据运行正确代码,得到干扰参数和第一回放数据;
根据所述干扰参数和所述流量数据运行待测试代码,得到第二回放数据;
根据所述第一回放数据和所述第二回放数据确定测试结果;
所述流量数据包括输入数据、第一过程参数和输出数据;相应的,所述根据录制的流量数据运行正确代码,得到干扰参数和第一回放数据,包括:
根据所述输入数据运行正确代码,获取运行中产生的第二过程参数和第一回放数据;
如果所述输出数据与所述第一回放数据不同,则根据所述第一过程参数和所述第二过程参数确定干扰参数;
相应的,所述根据所述干扰参数和所述流量数据运行待测试代码,得到第二回放数据,包括:
根据所述干扰参数确定第一挡板数据;
根据所述第一挡板数据和所述流量数据运行待测试代码,得到第二回放数据;
所述干扰参数包括随机数或时间戳。
2.根据权利要求1所述的回归测试方法,其特征在于,所述根据录制的流量数据运行正确代码,得到干扰参数和第一回放数据,包括:
在生产环境下根据录制的流量数据运行正确代码,得到干扰参数和第一回放数据;
相应的,所述根据所述干扰参数和所述流量数据运行待测试代码,得到第二回放数据,包括:
在所述生产环境下根据所述干扰参数和所述流量数据运行待测试代码,得到第二回放数据。
3.根据权利要求1所述的回归测试方法,其特征在于,所述根据录制的流量数据运行正确代码,得到干扰参数和第一回放数据,包括:
在独立环境下根据录制的流量数据运行正确代码,得到干扰参数和第一回放数据;
相应的,所述根据所述干扰参数和所述流量数据运行待测试代码,得到第二回放数据,包括:
在所述独立环境下根据所述干扰参数和所述流量数据运行待测试代码,得到第二回放数据。
4.根据权利要求1所述的回归测试方法,其特征在于,在根据所述干扰参数和所述流量数据运行待测试代码,得到第二回放数据之前,还包括:
获取待测试代码与外部应用的接口数据;
相应的,所述根据所述干扰参数和所述流量数据运行待测试代码,得到第二回放数据,包括:
根据所述接口数据确定第二挡板数据;
根据所述第一挡板数据、所述第二挡板数据和所述流量数据,运行待测试代码,得到第二回放数据。
5.根据权利要求1-4中任一项所述的回归测试方法,其特征在于,在根据所述干扰参数和所述流量数据运行待测试代码,得到第二回放数据之前,还包括:
对目标应用下的子应用进行重构;
根据重构结果确定待测试代码。
6.一种回归测试装置,其特征在于,包括:
正确代码回放模块,用于根据录制的流量数据运行正确代码,得到干扰参数和第一回放数据;
待测试代码回放模块,用于根据所述正确代码回放模块得到的所述干扰参数和所述流量数据运行待测试代码,得到第二回放数据;
分析模块,用于根据所述正确代码回放模块得到的所述第一回放数据和所述待测试代码回放模块得到的所述第二回放数据确定测试结果;
流量数据包括输入数据、第一过程参数和输出数据;所述正确代码回放模块用于:根据输入数据运行正确代码,获取运行中产生的第二过程参数和第一回放数据;
如果输出数据与第一回放数据不同,则根据第一过程参数和第二过程参数确定干扰参数;
所述待测试代码回放模块用于:
根据干扰参数确定第一挡板数据;
根据第一挡板数据和流量数据运行待测试代码,得到第二回放数据;
进一步的,干扰参数包括随机数或时间戳。
7.一种电子设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-5中任一所述的回归测试方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一所述的回归测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910375342.4A CN110083543B (zh) | 2019-05-07 | 2019-05-07 | 回归测试方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910375342.4A CN110083543B (zh) | 2019-05-07 | 2019-05-07 | 回归测试方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110083543A CN110083543A (zh) | 2019-08-02 |
CN110083543B true CN110083543B (zh) | 2022-08-19 |
Family
ID=67419035
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910375342.4A Active CN110083543B (zh) | 2019-05-07 | 2019-05-07 | 回归测试方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110083543B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110784356B (zh) * | 2019-10-30 | 2022-03-29 | 北京蜜莱坞网络科技有限公司 | 一种流量自动回放方法 |
CN111045952B (zh) * | 2019-12-16 | 2023-03-28 | 广州品唯软件有限公司 | 软件测试方法、流量回放装置、终端设备及可读存储介质 |
CN111124905B (zh) * | 2019-12-17 | 2023-07-18 | 中国银联股份有限公司 | 并行测试方法、装置、设备及存储介质 |
CN111352821A (zh) * | 2020-03-10 | 2020-06-30 | 深圳市宝能投资集团有限公司 | 业务测试方法、装置、电子设备和计算机可读存储介质 |
CN111708712A (zh) * | 2020-06-24 | 2020-09-25 | 北京自如信息科技有限公司 | 用户行为测试用例的生成方法、流量回放方法及电子设备 |
CN111988200B (zh) * | 2020-08-18 | 2022-03-08 | 湖南快乐阳光互动娱乐传媒有限公司 | 基于真实流量的自动回归测试方法及装置 |
CN112463605B (zh) * | 2020-11-26 | 2024-03-15 | 杭州网易云音乐科技有限公司 | 自动化测试方法及装置、存储介质、电子设备 |
CN112965912B (zh) * | 2021-03-24 | 2024-02-09 | 云账户技术(天津)有限公司 | 接口测试用例生成方法、装置和电子设备 |
CN113010432B (zh) * | 2021-03-31 | 2023-09-12 | 上海天旦网络科技发展有限公司 | 基于流量时序回放的白盒仿真测试方法及系统 |
CN113595829B (zh) * | 2021-07-30 | 2022-10-11 | 北京达佳互联信息技术有限公司 | 压力测试方法、装置、电子设备及存储介质 |
CN114884844B (zh) * | 2022-06-14 | 2023-12-26 | 上海幻电信息科技有限公司 | 流量录制方法及系统 |
CN115774990A (zh) * | 2023-02-10 | 2023-03-10 | 成都萌想科技有限责任公司 | 基于配置文件的RESTfulAPI对比方法、系统、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040088602A1 (en) * | 2002-11-05 | 2004-05-06 | Cohen Richard M. | Automated recording and replaying of software regression tests |
CN102902619A (zh) * | 2011-07-29 | 2013-01-30 | 阿里巴巴集团控股有限公司 | Web应用程序的回归测试方法和装置 |
CN106874208A (zh) * | 2017-02-27 | 2017-06-20 | 网易(杭州)网络有限公司 | 测试脚本的处理方法、装置及电子设备 |
CN106886492A (zh) * | 2017-02-13 | 2017-06-23 | 北京趣拿软件科技有限公司 | 基于数据回放的测试方法和测试装置 |
CN109344048A (zh) * | 2018-08-17 | 2019-02-15 | 中国平安人寿保险股份有限公司 | 一种测试方法、存储介质和服务器 |
-
2019
- 2019-05-07 CN CN201910375342.4A patent/CN110083543B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040088602A1 (en) * | 2002-11-05 | 2004-05-06 | Cohen Richard M. | Automated recording and replaying of software regression tests |
CN102902619A (zh) * | 2011-07-29 | 2013-01-30 | 阿里巴巴集团控股有限公司 | Web应用程序的回归测试方法和装置 |
CN106886492A (zh) * | 2017-02-13 | 2017-06-23 | 北京趣拿软件科技有限公司 | 基于数据回放的测试方法和测试装置 |
CN106874208A (zh) * | 2017-02-27 | 2017-06-20 | 网易(杭州)网络有限公司 | 测试脚本的处理方法、装置及电子设备 |
CN109344048A (zh) * | 2018-08-17 | 2019-02-15 | 中国平安人寿保险股份有限公司 | 一种测试方法、存储介质和服务器 |
Non-Patent Citations (1)
Title |
---|
阿里创新自动化测试工具平台--Doom;阿里云云栖号;《https://www.sohu.com/a/211401888_612370》;20171219;第1-4页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110083543A (zh) | 2019-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110083543B (zh) | 回归测试方法、装置、电子设备及存储介质 | |
CN109271325B (zh) | 应用的测试方法、系统、电子设备和存储介质 | |
US9886375B2 (en) | Automated execution of functional test scripts on a remote system within a unit testing framework | |
US9910941B2 (en) | Test case generation | |
US9916230B1 (en) | White box testing | |
US9280445B2 (en) | Logging code generation and distribution | |
US10977167B2 (en) | Application monitoring with a decoupled monitoring tool | |
US8863087B2 (en) | Comprehensively testing functionality of a computer program based on program code changes | |
CN110716853A (zh) | 一种测试脚本录制方法、应用程序测试方法和相关装置 | |
US20160378521A1 (en) | Automated test optimization | |
CN109471647B (zh) | 一种数据的更新方法、装置、电子设备及可读介质 | |
US10417116B2 (en) | System, method, and apparatus for crowd-sourced gathering of application execution events for automatic application testing and replay | |
CN110837467B (zh) | 软件测试方法、装置以及系统 | |
US10169216B2 (en) | Simulating sensors | |
CN111382058A (zh) | 一种服务的测试方法、装置,服务器及存储介质 | |
US10200271B2 (en) | Building and testing composite virtual services using debug automation | |
CN112882921B (zh) | 故障模拟方法和装置 | |
WO2020138386A1 (ja) | 以前のトレースデータを使用する協調シミュレーションリピータ | |
CN115248772A (zh) | 软件中间件的接口测试方法和装置 | |
US20160275002A1 (en) | Image capture in application lifecycle management for documentation and support | |
CN110806981A (zh) | 一种应用程序测试方法、装置、设备和存储介质 | |
CN113360365A (zh) | 一种流程测试方法和流程测试系统 | |
CN113835995B (zh) | 用于生成测试用例的方法和装置 | |
CN116775463A (zh) | 测试方法、装置、存储介质及电子设备 | |
CN117950991A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20190802 Assignee: Nanjing Manyun Cold Chain Technology Co.,Ltd. Assignor: JIANGSU MANYUN SOFTWARE TECHNOLOGY Co.,Ltd. Contract record no.: X2023980038397 Denomination of invention: Regression testing methods, devices, electronic devices, and storage media Granted publication date: 20220819 License type: Common License Record date: 20230724 |
|
EE01 | Entry into force of recordation of patent licensing contract |