CN113553260A - 测试方法、测试装置、设备、介质和程序产品 - Google Patents

测试方法、测试装置、设备、介质和程序产品 Download PDF

Info

Publication number
CN113553260A
CN113553260A CN202110828425.1A CN202110828425A CN113553260A CN 113553260 A CN113553260 A CN 113553260A CN 202110828425 A CN202110828425 A CN 202110828425A CN 113553260 A CN113553260 A CN 113553260A
Authority
CN
China
Prior art keywords
request
response
sequence
data
test
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.)
Granted
Application number
CN202110828425.1A
Other languages
English (en)
Other versions
CN113553260B (zh
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.)
Industrial and Commercial Bank of China Ltd ICBC
ICBC Technology Co Ltd
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
ICBC 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 Industrial and Commercial Bank of China Ltd ICBC, ICBC Technology Co Ltd filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202110828425.1A priority Critical patent/CN113553260B/zh
Publication of CN113553260A publication Critical patent/CN113553260A/zh
Application granted granted Critical
Publication of CN113553260B publication Critical patent/CN113553260B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable

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

本公开提供了一种测试方法,涉及人工智能领域或金融领域等。所述测试方法包括:录制待测试对象发送的请求序列,其中,所述请求序列包括向S个接口发送的N个请求数据;将所述请求序列转发至M个测试环境中的每个测试环境,其中,所述每个测试环境与所述S个接口相关联;获取所述每个测试环境基于所述请求序列返回的响应序列,其中,所述响应序列包括所述S个接口响应所述N个请求数据而返回的响应数据;对比每两个所述响应序列中的响应数据的一致性。本公开还提供了一种测试装置、设备、存储介质和程序产品。

Description

测试方法、测试装置、设备、介质和程序产品
技术领域
本公开涉及人工智能领域或金融领域等,更具体地涉及一种测试方法、测试装置、设备、介质和程序产品。
背景技术
随着人工智能、自动控制、通信和计算机技术的快速发展,为了保证产品能够顺利投入使用,保证测试工作的效率愈发重要。目前,对于一份产品的测试,通常会分为多个流程,例如每个测试人员负责其中一个流程。然后,通过各个测试人员手动编程完成负责的测试流程后,再进行交接完成对产品的测试。
在实现本公开构思的过程中,发明人发现现有技术中至少存在如下问题:
各个测试人员在测试过程中不仅需要手动编程,而且由于任务安排或编程规范的差异,交接过程中在沟通和测试内容梳理上较为浪费时间,导致对测试人员的编程水平要求较高,且无法保证测试的效率。
发明内容
鉴于上述问题,本公开提供了一种能够实现全流程自动测试而提高测试效率的测试方法、测试装置、设备、介质和程序产品。
本公开实施例的一个方面提供了一种测试方法,包括:录制待测试对象发送的请求序列,其中,所述请求序列包括向S个接口发送的N个请求数据,S和N分别为大于或等于1的整数;将所述请求序列转发至M个测试环境中的每个测试环境,其中,所述每个测试环境与所述S个接口相关联,M为大于或等于2的整数;获取所述每个测试环境基于所述请求序列返回的响应序列,其中,所述响应序列包括所述S个接口响应所述N个请求数据而返回的响应数据;对比每两个所述响应序列中的响应数据的一致性。
根据本公开的实施例,所述N个请求数据包括N个请求报文,所述录制待测试对象向S个接口发送的请求序列包括:拦截所述待测试对象按照预定顺序发送的所述N个请求报文;解析所述N个请求报文中的每个请求报文;基于解析结果和所述预定顺序,分别对所述每个请求报文标记类别标识和/或顺序标识,以获得所述请求序列。
根据本公开的实施例,在获得所述请求序列后,所述方法还包括:将所述请求序列进行持久化存储。
根据本公开的实施例,所述将所述请求序列转发至M个测试环境中的每个测试环境,包括:获取经持久化存储后的所述请求序列;基于所述每个请求报文的类别标识和/或顺序标识,将所述请求序列进行反序列化处理;将所述反序列化处理后获得的待回放数据转发至所述每个测试环境,其中,所述待回放数据包括基于所述每个测试环境构建的新的请求报文。
根据本公开的实施例,所述响应序列包括所述S个接口中每个接口响应所述N个请求中对应的请求而返回的响应数据,所述对比每两个所述响应序列中的所述响应数据的一致性包括:对比所述每个接口返回的M个响应数据之间的一致性,其中,所述M个响应数据与所述M个测试环境一一对应。
根据本公开的实施例,所述M个响应数据包括M个响应报文,所述对比所述每个接口返回的M个响应数据之间的一致性包括:对比所述M个响应报文之间的至少一个字段的一致性。
根据本公开的实施例,在所述对比每两个所述响应序列中的响应数据的一致性之后,所述方法还包括:将通过对比获得的一致性结果在测试操作页面进行展示。
本公开实施例的另一方面提供了一种测试装置。该测试装置包括请求录制模块、请求转发模块、响应获取模块和数据对比模块。请求录制模块,用于录制待测试对象发送的请求序列,其中,所述请求序列包括向S个接口发送的N个请求数据,S和N分别为大于或等于1的整数;请求转发模块,用于将所述请求序列转发至M个测试环境中的每个测试环境,其中,所述每个测试环境与所述S个接口相关联,M为大于或等于2的整数;响应获取模块,用于获取所述每个测试环境基于所述请求序列返回的响应序列,其中,所述响应序列包括所述S个接口响应所述N个请求数据而返回的响应数据;数据对比模块,用于对比每两个所述响应序列中的响应数据的一致性。
本公开的另一方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行如上所述的方法。
本公开的另一方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行如上所述的方法。
本公开的另一方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上所述的方法。
上述一个或多个实施例具有如下优点或有益效果:可以至少部分地解决无法保证测试效率的问题,通过自动录制待测试对象的请求序列,并自动将请求序列转发至多个测试环境,然后获取到每个测试环境返回的响应序列后,对响应序列的一致性两两进行对比,以确定待测试对象在不同测试环境下运行时,同一个接口在不同测试环境中返回的响应数据的差异,从而实现了全流程的多接口自动测试,提高了测试效率。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的测试方法的应用场景图;
图2示意性示出了根据本公开实施例的测试方法的流程图;
图3示意性示出了根据本公开实施例的适于实现测试方法的整体架构图;
图4示意性示出了根据本公开实施例的录制请求序列的流程图;
图5示意性示出了根据本公开实施例的转发请求序列的流程图;
图6示意性示出了根据本公开另一实施例的测试方法的流程图;
图7示意性示出了根据本公开实施例的测试装置的结构框图;以及
图8示意性示出了根据本公开实施例的适于实现测试方法的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
相关技术中,测试人员需要对一款产品进行测试时,首先,要具备阅读代码的能力,能够独立从被测产品中找到要验证或分析的类和方法,例如对接口级进行的测试,要对于接口的协议、接口Body的数据格式有清晰的理解。然后,要具备编写代码的能力,能够利用不同编程语言按照测试工具或框架的规范进行代码编写,例如至少掌握一门编程语言(例如Java、Python)、一种接口测试的工具(例如Jmeter、Postman)。另外,还要具备网络协议的分析对比能力,以根据被测产品在不同测试环境下的表现分析存在的问题。另外,目前没有能够支持对待测试产品进行全流程自动化测试的方案。
本公开的实施例提供了一种测试方法、装置、设备、介质和程序产品。该测试方法包括:录制待测试对象发送的请求序列,其中,请求序列包括向S个接口发送的N个请求数据,S和N分别为大于或等于1的整数。将请求序列转发至M个测试环境中的每个测试环境,其中,每个测试环境与S个接口相关联,M为大于或等于2的整数。获取每个测试环境基于请求序列返回的响应序列,其中,响应序列包括S个接口响应N个请求数据而返回的响应数据。对比每两个响应序列中的响应数据的一致性。
根据本公开的实施例,通过自动录制待测试对象的请求序列,并自动将请求序列转发至多个测试环境,然后获取到每个测试环境返回的响应序列后,对响应序列的一致性两两进行对比,以确定待测试对象在不同测试环境下运行时,同一个接口在不同测试环境中返回的响应数据的差异,从而实现了全流程的自动测试,提高了测试效率。
需要说明的是,本公开实施例提供的测试方法、装置、系统和电子设备可用于人工智能技术在产品测试、数据处理相关方面,也可用于除人工智能技术之外的多种领域,如金融领域等。本公开实施例提供的测试方法、装置、系统和电子设备的应用领域不做限定。
图1示意性示出了根据本公开实施例的测试方法的应用场景图。
如图1所示,根据该实施例的应用场景100可以包括终端设备101、102、103,网络104、105、服务器107和M个服务器(例如第一服务器1061、第二服务器1062......第M服务器106M)。其中,M个服务器中的每个服务器可以部署有一个测试环境。在一些实施例中,可以取消M个服务器,在服务器107中部署多个测试环境,例如在服务器107中运行多个虚拟机,每个虚拟机部署有一个测试环境。网络104用以在终端设备101、102、103和服务器107之间提供通信链路的介质。网络105用以在服务器107和M个服务器中的任一服务器之间提供通信链路的介质。网络104、105可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器107交互,以接收或发送消息等,例如用户可以使用终端设备101、102、103对待测试应用程序进行多个测试操作,待测试应用程序响应多个测试操作向在服务器107部署的多个接口发送请求。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
服务器107可以对用户的各个测试步骤进行录制,例如进行流量录制,例如拦截待测试应用程序发送的多个请求,并进行序列化处理及持久化存储。然后,服务器107可以将序列化处理后的请求序列转发至第一服务器1061、第二服务器1062......第M服务器106M。最后,接收第一服务器1061、第二服务器1062......第M服务器106M返回的响应数据,并两两进行对比,以向终端设备101、102、103返回测试结果,并展示给用户。在一些实施例中,可以将第一服务器1061、第二服务器1062......第M服务器106M中的任一服务器替代服务器107,进行上述操作。
服务器107可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。M个服务器可以与服务器107相同或不同。
需要说明的是,本公开实施例所提供的测试方法一般可以由服务器107执行。相应地,本公开实施例所提供的测试装置一般可以设置于服务器107中。本公开实施例所提供的测试方法也可以由不同于服务器107且能够与终端设备101、102、103和/或服务器107通信的服务器或服务器集群执行。相应地,本公开实施例所提供的测试装置也可以设置于不同于服务器107且能够与终端设备101、102、103和/或服务器107通信的服务器或服务器集群中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
以下将基于图1描述的场景,通过图2~图6对本公开实施例的测试方法进行详细描述。
图2示意性示出了根据本公开实施例的测试方法的流程图。
如图2所示,该实施例的测试方法包括操作S210~操作S240。
在操作S210,录制待测试对象发送的请求序列,其中,请求序列包括向S个接口发送的N个请求数据,S和N分别为大于或等于1的整数。
根据本公开的实施例,参照图1,例如待测试对象为待测试应用程序A,该应用A可以运行在服务器107中,或M个服务器中任一个中服务器。以运行在服务器107中为例,测试人员登录应用A进行操作以实现一个反馈业务(仅为示例)。首先,应用A向部门数据接口发送请求数据以获得多个部门选项,以便填写提出该反馈业务的用户的部门。其次,应用A向类别接口发送请求数据以获得反馈业务的各个分类,以便测试人员从多个类别选项中填写反馈类别。然后,在测试人员填写反馈事件单的过程中,随着具体操作步骤,应用A向对应的接口发送请求数据。最后,在测试人员填写完必要的信息后,将反馈事件单提交。如上,在利用应用A实现一个具体业务的过程中,录制获得应用A发送的请求序列。
在操作S220,将请求序列转发至M个测试环境中的每个测试环境,其中,每个测试环境与S个接口相关联,M为大于或等于2的整数。
根据本公开的实施例,例如M个测试环境包括开发环境、准生产环境和生产环境,其中,每个测试环境可能运行的应用版本不一致。每个测试环境中的应用实现一个具体业务可以具有相同的操作步骤,每个测试环境与S个接口相关联以便获得业务数据。因此,将请求序列转发至研发环境、准生产环境和生产环境,可以测试应用程序在不同测试环境中的稳定性。
在操作S230,获取每个测试环境基于请求序列返回的响应序列,其中,响应序列包括S个接口响应N个请求而返回的响应数据。
根据本公开的实施例,例如每个测试环境返回一个响应序列,M个测试环境返回M个响应序列。其中,应用A向部门数据接口发送请求数据后,部门数据接口返回响应数据(即部门数据)。同样的,类别接口返回响应数据(即类别数据)。以及其他接口返回对应的响应数据,从而形成了响应队列。其中,向对应的接口发送何种请求数据,以及接口返回的何种响应数据内容可以提前设置,在此不做限定。
在操作S240,对比每两个响应序列中的响应数据的一致性。
根据本公开的实施例,通过自动录制待测试对象的请求序列,并自动将请求序列转发至多个测试环境,然后获取到每个测试环境返回的响应序列后,对响应序列的一致性两两进行对比,以确定待测试对象在不同测试环境下运行时,同一个接口在不同测试环境中返回的响应数据的差异,从而实现了全流程的自动测试,提高了测试效率。
图3示意性示出了根据本公开实施例的适于实现测试方法的整体架构图。
如图3所示,该实施例的整体结构可以包括Java agent、File server、API DiffServer和API Diff Web UI。其中,应用A可以在JVM(Java Virtual Machine,Java虚拟机)环境中运行。Java Agent与应用A运行于同一个服务器中。
根据本公开的实施例,Java Agent可以提供Instrument Agent、MessageToolkit、File Client三个基础服务组件,以实现流量录制功能。其中,Instrument Agent提供对运行在JVM环境中的应用的事件监控功能,如对应用A向对应接口发送的请求报文(例如基于HTTP请求的报文)进行拦截和记录。Message Toolkit提供请求报文的序列化和反序列化功能。File Client用于向File Server推送报文数据。
根据本公开的实施例,File Server提供文件基础服务功能,包括读写文件。
根据本公开的实施例,API Diff Server提供HTTP Proxy、Message Toolkit、Protocol Diff三个基础服务组件。其中,HTTP Proxy提供请求序列的代理和转发功能。Message Toolkit提供请求报文的序列化和反序列化功能,以实现流量回放功能。ProtocolDiff提供响应序列的一致性对比分析,以实现接口diff功能,例如基于HTTP 1.1协议的Header和Body的对比,其中Body基于文本方式进行对比分析。
根据本公开的实施例,API DiffWeb UI可以提供人员权限、人员管理、报表展示、Diff结果展示等多个维度的UI展示功能。在一些实施例中,在操作S240中对比每两个响应序列中的响应数据的一致性之后,还包括:将通过对比获得的一致性结果在测试操作页面(即API Diff Web UI)进行展示。
根据本公开的实施例,流量录制是指将调用HTTP接口的数据进行拦截和存储,并在每一条记录中增加唯一ID和顺序标识。流量回放是指将记录的数据,根据唯一ID和顺序标识进行解析,并在被测环境上进行顺序回放。接口Diff是指通过代理HTTP请求的方式,将客户端的请求进行转发,针对HTTP接口协议报文的一致性分析,包括HTTP ResponseHeader和HTTP Response Body两部分的内容比对。
利用本公开实施例的整体架构,能够实现基于业务场景的快速录制测试数据、回放测试数据、自动进行接口协议Diff测试的自动化测试功能,降低了对测试人员的技术能力要求,同时提升了整个测试流程覆盖率的一致性和测试质量,能够令有测试需求的用户更加方便的进行测试,从而在商业上获得成功。
图4示意性示出了根据本公开实施例的操作S210中录制请求序列的流程图。
如图4所示,该实施例的操作S210中录制待测试对象发送的请求序列包括操作S410~操作S430。其中,N个请求包括N个请求报文。
在操作S410,拦截待测试对象按照预定顺序发送的N个请求报文。
根据本公开的实施例,在测试人员登录应用A之前,先启动Java agent,以对应用A进行事件监测,例如自动拦截应用A按具体业务的操作顺序(即预定顺序)向多个接口发送的请求报文。
在操作S420,解析N个请求报文中的每个请求报文。
在操作S430,基于解析结果和预定顺序,分别对每个请求报文标记类别标识和/或顺序标识,以获得请求序列。
根据本公开的实施例,在拦截到请求报文之后,利用Message Toolkit对请求报文进行解析,进行序列化处理,然后进行对每个请求报文标记类别标识和/或顺序标识,以获得请求序列。其中,以HTTP请求报文为例,请求序列的部分内容示例如下:
Figure BDA0003174508350000101
Figure BDA0003174508350000111
其中,RequestID表示一个请求报文的类别标识,SeriaNo表示一个请求报文的顺序标识。需要说明的是,上述请求序列中请求报文的数量、类型、序号和相应内容仅为示例,本公开不进行具体限定。
利用本公开实施例的测试方法,对测试人员而言,屏蔽了Java Agent的实现细节,能够对所有基于JVM环境运行的进程进行事件级别的监听,拦截基于HTTP协议传输的报文,从而降低了对测试人员的编码水平的要求。
根据本公开的实施例,序列化处理是指将数据结构或对象(例如Http报文)转换成二进制串的过程,以便于将数据结构或对象进行持久化存储。一些实施例中,在获得请求序列后,还包括将请求序列进行持久化存储。例如,利用File client组件将请求序列推送给File server,然后由File server将请求序列持久化至文件存储中,以便于随时查阅或在测试时进行调用。
图5示意性示出了根据本公开实施例的操作S220中转发请求序列的流程图。
如图5所示,该实施例的操作S220中,将请求序列转发至M个测试环境中的每个测试环境包括操作S510~操作S520。
在操作S510,获取经持久化存储后的请求序列。
在操作S520,基于每个请求报文的类别标识和/或顺序标识,将请求序列进行反序列化处理。
在操作S530,将反序列化处理后获得的待回放数据转发至每个测试环境,其中,待回放数据包括基于每个测试环境构建的新的请求报文。
根据本公开的实施例,参见图3,首先,API Diff service可以从File server获取请求序列。然后,API Diff service中的Message Toolkit基于每个请求报文的类别标识和/或顺序标识,对请求序列中的各个请求报文进行反序列化处理,形成数据回放。其中,反序列化处理指将序列化处理得到的二进制串转换为数据结构或对象(即待回放数据)。最后,HTTP Proxy将待回放数据转发至每个测试环境,即将新的请求报文转发到对应的测试环境中,实现录制的请求序列的数据回放,以便在不同的测试环境中进行相同的测试流程,最终对比出差异。
利用本公开的实施例的测试方法,可以将流量录制后持久化存储的请求序列自动进行流量回放,以在流量录制和回放两个测试流程之间实现自动流转,提高测试效率。
根据本公开的实施例,响应序列包括S个接口中每个接口响应N个请求中对应的请求而返回的响应数据,对比每两个响应序列中的响应数据的一致性包括:对比每个接口返回的M个响应数据之间的一致性,其中,M个响应数据与M个测试环境一一对应。
相关技术中,通常流量录制、回放、接口Diff是相互割裂的三个测试流程,由不同的测试人员负责。根据本公开的实施例,在多个测试环境中,基于存储的请求报文自动进行回放,可以自动将每个接口在各个测试环境中返回的响应数据进行对比,以获得测试结果。即能够自动对比获得多个环境中接口协议之间的差异(例如HTTPHeader之间或HTTP Body之间的差异),从而对待测试对象是否能在不同的测试环境中正确运行各个业务进行测试。
根据本公开的实施例,M个响应数据包括M个响应报文,对比每个接口返回的M个响应数据之间的一致性包括:对比M个响应报文之间的至少一个字段的一致性。如表1所示。
表1
Figure BDA0003174508350000121
Figure BDA0003174508350000131
参见表1,针对“/pm/setReq”接口,在被测环境A中第一个字段为“create”,被测环境B中第一个字段为“OrderBy”,被测环境C中第一个字段为“createBy”,其在不同测试环境中,返回的响应报文中的字段有差异。而针对“/pm/getReq”接口,其在不同环境中返回的响应报文的字段相同。从而使得技术人员无需关注应用HTTP接口协议的定义及其字段含义,也无需关注java agent具体的实现细节,自动实现多接口协议一致性的全流程自动测试。
图6示意性示出了根据本公开另一实施例的测试方法的流程图。
如图6所示,该实施例的测试方法可以包括操作S601~操作S614。下面结合图3,对操作S601~操作S614中的各个步骤进行描述。
在操作S601,部署业务场景。根据实际业务使用场景,部署至少一个业务场景。例如应用A中反馈业务场景或其他场景。
在操作S602,准备测试数据。根据部署的业务场景,准备相应的测试数据,例如业务数据、应用脚本数据等。另外将不同的测试环境下该业务场景的接口进行关联。
在操作S603,测试环境准备。将测试数据初始化到多个被测环境中,保证被测环境的数据一致性,避免因数据带来的差异化。
在操作S604,监听被测应用。例如首先在被测环境A中,启动Java Agent,对运行在JVM环境中的应用进行事件监测。
在操作S605,业务功能测试。基于部署的业务场景进行实际业务的操作。
在操作S606,测试数据录制。在进行实际业务操作的过程中,对所有拦截的报文,进行标识,同时根据业务场景和接口之间的映射关系进行自动筛选,将筛选后的报文进行自动存储。例如Java Agent在后台自动拦截HTTP请求报文,将HTTP REQUEST URI、HTTPREQUEST Header以及HTTP REQUEST Body进行分析、整理,同时进行请求ID和顺序ID标识。
在操作S607,测试数据存储。Java Agent将序列化后的报文,传递给File Server,由File Server进行数据的持久化存储。
在操作S608,测试数据回放。API Dif fServer从File Server中读取数据,根据数据中请求ID和顺序ID,对数据进行反序列化,形成数据回放。
在操作S609,请求报文转发。API Diff Server中Http Proxy服务将待回放的数据,同时转发至被测环境A、B和C。
在操作S610,针对对应接口在被测环境A返回的每一个HTTPResponse数据进行记录。
在操作S611,针对对应接口在被测环境B返回的每一个HTTPResponse数据进行记录。
在操作S612,针对对应接口在被测环境C返回的每一个HTTPResponse数据进行记录。
在操作S613,差异分析。API Diff Server中Protocol Diff服务将记录的HTTPResponse数据进行两两对比,记录Diff结果。
在操作S614,Diff结果展示。API Diff Web UI提供最终的Diff展示结果。
基于上述测试方法,本公开还提供了一种测试装置。以下将结合图7对该装置进行详细描述。
图7示意性示出了根据本公开实施例的测试装置700的结构框图。
如图7所示,该实施例的测试装置700包括请求录制模块710、请求转发模块720、响应获取模块730和数据对比模块740。
请求录制模块710例如可以执行操作S210,用于录制待测试对象发送的请求序列,其中,请求序列包括向S个接口发送的N个请求数据,S和N分别为大于或等于1的整数。
根据本公开的实施例,请求录制模块710例如还可以执行操作S410~操作S430,用于拦截待测试对象按照预定顺序发送的N个请求报文。解析N个请求报文中的每个请求报文。基于解析结果和预定顺序,分别对每个请求报文标记类别标识和/或顺序标识,以获得请求序列。
根据本公开的实施例,在获得请求序列后,请求录制模块710可以将请求序列进行持久化存储。
请求转发模块720例如可以执行操作S220,用于将请求序列转发至M个测试环境中的每个测试环境,其中,每个测试环境与S个接口相关联,M为大于或等于2的整数。
根据本公开的实施例,请求转发模块720例如还可以执行操作S510~操作S530。用于获取经持久化存储后的请求序列。基于每个请求报文的类别标识和/或顺序标识,将请求序列进行反序列化处理。将反序列化处理后获得的待回放数据转发至每个测试环境,其中,待回放数据包括基于每个测试环境构建的新的请求报文。
响应获取模块730例如可以执行操作S230,用于获取每个测试环境基于请求序列返回的响应序列,其中,响应序列包括S个接口响应N个请求数据而返回的响应数据。
数据对比模块740例如可以执行操作S240,用于对比每两个响应序列中的响应数据的一致性。
根据本公开的实施例,响应序列包括S个接口中每个接口响应N个请求中对应的请求而返回的响应数据,数据对比模块740对比每两个响应序列中的响应数据的一致性包括:对比每个接口返回的M个响应数据之间的一致性,其中,M个响应数据与M个测试环境一一对应。
根据本公开的实施例,M个响应数据包括M个响应报文,对比每个接口返回的M个响应数据之间的一致性包括:对比M个响应报文之间的至少一个字段的一致性。
根据本公开的实施例,测试装置700还可以包括展示模块。展示模块用于在对比每两个响应序列中的响应数据的一致性之后,将通过对比获得的一致性结果在测试操作页面进行展示。
根据本公开的实施例,参见图3,请求录制模块710可以包括Javaagent中的Instrument Agent、Message Toolkit、File Client,请求转发模块720可以包括API DiffServer中的HTTP Proxy组件。响应获取模块730可以包括API Diff Server中的MessageToolkit组件。数据对比模块740可以包括API Diff Server中的Protocol Diff组件。
根据本公开的实施例,请求录制模块710、请求转发模块720、响应获取模块730和数据对比模块740中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,请求录制模块710、请求转发模块720、响应获取模块730和数据对比模块740中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,请求录制模块710、请求转发模块720、响应获取模块730和数据对比模块740中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图8示意性示出了根据本公开实施例的适于实现测试方法的电子设备的方框图。
如图8所示,根据本公开实施例的电子设备800包括处理器801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。处理器801例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器801还可以包括用于缓存用途的板载存储器。处理器801可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 803中,存储有电子设备800操作所需的各种程序和数据。处理器801、ROM802以及RAM 803通过总线804彼此相连。处理器801通过执行ROM 802和/或RAM 803中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 802和RAM 803以外的一个或多个存储器中。处理器801也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备800还可以包括输入/输出(I/O)接口805,输入/输出(I/O)接口805也连接至总线804。电子设备800还可以包括连接至I/O接口805的以下部件中的一项或多项:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 802和/或RAM 803和/或ROM 802和RAM 803以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现根据本公开实施例的方法。
在该计算机程序被处理器801执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分809被下载和安装,和/或从可拆卸介质811被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被处理器801执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

Claims (11)

1.一种测试方法,包括:
录制待测试对象发送的请求序列,其中,所述请求序列包括向S个接口发送的N个请求数据,S和N分别为大于或等于1的整数;
将所述请求序列转发至M个测试环境中的每个测试环境,其中,所述每个测试环境与所述S个接口相关联,M为大于或等于2的整数;
获取所述每个测试环境基于所述请求序列返回的响应序列,其中,所述响应序列包括所述S个接口响应所述N个请求数据而返回的响应数据;
对比每两个所述响应序列中的响应数据的一致性。
2.根据权利要求1所述的方法,其中,所述N个请求数据包括N个请求报文,所述录制待测试对象向S个接口发送的请求序列包括:
拦截所述待测试对象按照预定顺序发送的所述N个请求报文;
解析所述N个请求报文中的每个请求报文;
基于解析结果和所述预定顺序,分别对所述每个请求报文标记类别标识和/或顺序标识,以获得所述请求序列。
3.根据权利要求2所述的方法,其中,在获得所述请求序列后,所述方法还包括:
将所述请求序列进行持久化存储。
4.根据权利要求3所述的方法,其中,所述将所述请求序列转发至M个测试环境中的每个测试环境,包括:
获取经持久化存储后的所述请求序列;
基于所述每个请求报文的类别标识和/或顺序标识,将所述请求序列进行反序列化处理;
将所述反序列化处理后获得的待回放数据转发至所述每个测试环境,其中,所述待回放数据包括基于所述每个测试环境构建的新的请求报文。
5.根据权利要求1所述的方法,其中,所述响应序列包括所述S个接口中每个接口响应所述N个请求中对应的请求而返回的响应数据,所述对比每两个所述响应序列中的所述响应数据的一致性包括:
对比所述每个接口返回的M个响应数据之间的一致性,其中,所述M个响应数据与所述M个测试环境一一对应。
6.根据权利要求5所述的方法,其中,所述M个响应数据包括M个响应报文,所述对比所述每个接口返回的M个响应数据之间的一致性包括:
对比所述M个响应报文之间的至少一个字段的一致性。
7.根据权利要求1所述的方法,其中,在所述对比每两个所述响应序列中的响应数据的一致性之后,所述方法还包括:
将通过对比获得的一致性结果在测试操作页面进行展示。
8.一种测试装置,包括:
请求录制模块,用于录制待测试对象发送的请求序列,其中,所述请求序列包括向S个接口发送的N个请求数据,S和N分别为大于或等于1的整数;
请求转发模块,用于将所述请求序列转发至M个测试环境中的每个测试环境,其中,所述每个测试环境与所述S个接口相关联,M为大于或等于2的整数;
响应获取模块,用于获取所述每个测试环境基于所述请求序列返回的响应序列,其中,所述响应序列包括所述S个接口响应所述N个请求数据而返回的响应数据;
数据对比模块,用于对比每两个所述响应序列中的响应数据的一致性。
9.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1~7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~7中任一项所述的方法。
11.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现根据权利要求1~7中任一项所述的方法。
CN202110828425.1A 2021-07-22 2021-07-22 测试方法、测试装置、设备和介质 Active CN113553260B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110828425.1A CN113553260B (zh) 2021-07-22 2021-07-22 测试方法、测试装置、设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110828425.1A CN113553260B (zh) 2021-07-22 2021-07-22 测试方法、测试装置、设备和介质

Publications (2)

Publication Number Publication Date
CN113553260A true CN113553260A (zh) 2021-10-26
CN113553260B CN113553260B (zh) 2022-07-19

Family

ID=78103976

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110828425.1A Active CN113553260B (zh) 2021-07-22 2021-07-22 测试方法、测试装置、设备和介质

Country Status (1)

Country Link
CN (1) CN113553260B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115276968A (zh) * 2022-07-08 2022-11-01 中国第一汽车股份有限公司 一种第三方平台http回调分发方法、系统、电子设备和存储介质
CN116719750A (zh) * 2023-08-11 2023-09-08 海马云(天津)信息技术有限公司 软件测试方法及装置、服务器设备和存储介质

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000278359A (ja) * 1999-03-19 2000-10-06 Ntt Communicationware Corp 電文データ生成方法、電文データ生成装置、サーバ装置、アプリケーションプログラムの試験システムおよび記録媒体
CN102882861A (zh) * 2012-09-19 2013-01-16 烽火通信科技股份有限公司 基于解析dhcp报文实现防ip地址欺诈的方法
CN104317673A (zh) * 2014-10-24 2015-01-28 新华瑞德(北京)网络科技有限公司 应用程序的回收方法、装置及其恢复方法、装置
CN107908541A (zh) * 2017-07-26 2018-04-13 平安壹钱包电子商务有限公司 接口测试方法、装置、计算机设备及存储介质
CN109271325A (zh) * 2018-10-26 2019-01-25 携程旅游网络技术(上海)有限公司 应用的测试方法、系统、电子设备和存储介质
CN109710522A (zh) * 2018-12-17 2019-05-03 平安普惠企业管理有限公司 代码测试方法、装置、计算机设备和存储介质
CN111209180A (zh) * 2018-11-21 2020-05-29 中国移动通信集团浙江有限公司 一种基于模糊匹配的回归测试方法和装置
CN111274157A (zh) * 2020-02-27 2020-06-12 平安医疗健康管理股份有限公司 测试数据模拟方法、装置、计算机设备和存储介质
CN112363941A (zh) * 2020-11-13 2021-02-12 平安普惠企业管理有限公司 接口测试方法、装置、计算机设备及存储介质
CN112463625A (zh) * 2020-12-09 2021-03-09 苏州浪潮智能科技有限公司 基于应用程序接口的功能回归验证方法、装置及存储介质
CN112799940A (zh) * 2021-01-26 2021-05-14 中国工商银行股份有限公司 回归测试方法、装置、计算机系统和计算机可读存储介质
CN113127347A (zh) * 2021-04-14 2021-07-16 广联达科技股份有限公司 一种接口测试方法、装置、设备及可读存储介质

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000278359A (ja) * 1999-03-19 2000-10-06 Ntt Communicationware Corp 電文データ生成方法、電文データ生成装置、サーバ装置、アプリケーションプログラムの試験システムおよび記録媒体
CN102882861A (zh) * 2012-09-19 2013-01-16 烽火通信科技股份有限公司 基于解析dhcp报文实现防ip地址欺诈的方法
CN104317673A (zh) * 2014-10-24 2015-01-28 新华瑞德(北京)网络科技有限公司 应用程序的回收方法、装置及其恢复方法、装置
CN107908541A (zh) * 2017-07-26 2018-04-13 平安壹钱包电子商务有限公司 接口测试方法、装置、计算机设备及存储介质
CN109271325A (zh) * 2018-10-26 2019-01-25 携程旅游网络技术(上海)有限公司 应用的测试方法、系统、电子设备和存储介质
CN111209180A (zh) * 2018-11-21 2020-05-29 中国移动通信集团浙江有限公司 一种基于模糊匹配的回归测试方法和装置
CN109710522A (zh) * 2018-12-17 2019-05-03 平安普惠企业管理有限公司 代码测试方法、装置、计算机设备和存储介质
CN111274157A (zh) * 2020-02-27 2020-06-12 平安医疗健康管理股份有限公司 测试数据模拟方法、装置、计算机设备和存储介质
CN112363941A (zh) * 2020-11-13 2021-02-12 平安普惠企业管理有限公司 接口测试方法、装置、计算机设备及存储介质
CN112463625A (zh) * 2020-12-09 2021-03-09 苏州浪潮智能科技有限公司 基于应用程序接口的功能回归验证方法、装置及存储介质
CN112799940A (zh) * 2021-01-26 2021-05-14 中国工商银行股份有限公司 回归测试方法、装置、计算机系统和计算机可读存储介质
CN113127347A (zh) * 2021-04-14 2021-07-16 广联达科技股份有限公司 一种接口测试方法、装置、设备及可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
佟为明等: "一种DeviceNet从站软件一致性测试方法与实现", 《电子器件》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115276968A (zh) * 2022-07-08 2022-11-01 中国第一汽车股份有限公司 一种第三方平台http回调分发方法、系统、电子设备和存储介质
CN116719750A (zh) * 2023-08-11 2023-09-08 海马云(天津)信息技术有限公司 软件测试方法及装置、服务器设备和存储介质
CN116719750B (zh) * 2023-08-11 2023-12-22 海马云(天津)信息技术有限公司 软件测试方法及装置、服务器设备和存储介质

Also Published As

Publication number Publication date
CN113553260B (zh) 2022-07-19

Similar Documents

Publication Publication Date Title
US9111019B2 (en) Modeling and testing interactions between components of a software system
US9697104B2 (en) End-to end tracing and logging
US20030055809A1 (en) Methods, systems, and articles of manufacture for efficient log record access
CN113553260B (zh) 测试方法、测试装置、设备和介质
US8935288B2 (en) User specific logs in multi-user applications
CN113485927B (zh) 一种测试数据生成方法、装置、设备及存储介质
CN113609012B (zh) 规范化处理后端异常报错的方法及系统
CN113836014A (zh) 一种接口测试方法、装置、电子设备和存储介质
CN112202598A (zh) 一种日志记录方法及装置
CN113114794A (zh) 一种基于二次代理处理域名的方法及设备
CN115277657B (zh) 一种数据库协议运维的方法及设备
CN113360377A (zh) 一种测试方法和装置
CN113495498B (zh) 用于硬件设备的模拟方法、模拟器、设备和介质
CN114116509A (zh) 程序分析方法、装置、电子设备和存储介质
CN113986258A (zh) 业务发布方法、装置、设备及存储介质
CN116756016A (zh) 多浏览器测试方法、装置、设备、介质及程序产品
US20140337728A1 (en) Operating oracle forms using a web service
CN114490264A (zh) 应用系统的文件监控方法、装置、电子设备及存储介质
CN114860594A (zh) 跨行收报测试方法、装置、设备和存储介质
CN114840435A (zh) 数据流向的确定方法、装置、设备、存储介质和程序产品
CN116701018A (zh) 数据处理方法、数据采集方法、装置、设备及存储介质
CN114138611A (zh) 一种服务作业日志的诊断方法及系统
CN114840424A (zh) 测试案例处理方法、装置、计算机系统和可读存储介质
CN113961468A (zh) 应用于u盾测试的数字证书灌入方法、装置、设备、介质和程序产品
CN117472716A (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