CN116610559A - 一种测试方法、装置、电子设备及计算机可读存储介质 - Google Patents

一种测试方法、装置、电子设备及计算机可读存储介质 Download PDF

Info

Publication number
CN116610559A
CN116610559A CN202310410581.5A CN202310410581A CN116610559A CN 116610559 A CN116610559 A CN 116610559A CN 202310410581 A CN202310410581 A CN 202310410581A CN 116610559 A CN116610559 A CN 116610559A
Authority
CN
China
Prior art keywords
test
data
key value
value pair
key
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
CN202310410581.5A
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.)
Chengdu Seres Technology Co Ltd
Original Assignee
Chengdu Seres 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 Chengdu Seres Technology Co Ltd filed Critical Chengdu Seres Technology Co Ltd
Priority to CN202310410581.5A priority Critical patent/CN116610559A/zh
Publication of CN116610559A publication Critical patent/CN116610559A/zh
Pending legal-status Critical Current

Links

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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

一种测试方法、装置、电子设备及计算机可读存储介质
技术领域
本申请涉及软件测试技术领域,尤其涉及一种测试方法、装置、电子设备及计算机可读存储介质。
背景技术
在软件研发和测试过程中,接口数据测试是一个必备的测试环节。在一般的接口测试中,接口正常调用下,接口的输入数据和输出数据的格式是固定的,不会存在接口输出的返回值会增加或减少的情况,所以每次对接口再进行测试的时候,只需对接口输出的一部分固定的字段的值做校验即可。但是当接口输出的返回值有增加和减少的情况时,就需要人工根据返回值一个一个的做断言处理,这样,会导致人工测试的数据量大大增加,且测试过程也较为繁琐,会导致人工在校验接口输出的返回值的过程中耗时费力且效率低下,并且容易出现由于人工操作错误所导致的校验错误,以及提高了接口测试的维护成本的问题。因此,亟需一种新的接口测试方案。
发明内容
有鉴于此,本申请实施例提供了一种测试方法、装置、电子设备及计算机可读存储介质,以解决现有技术中人工在校验接口输出的返回值的过程中耗时费力且效率低下,并且容易出现由于人工操作错误所导致的校验错误,以及提高了接口测试的维护成本的问题。
本申请实施例的第一方面,提供了一种测试方法,包括:
获取目标测试功能对应的预设字段信息、校验参数和待测试接口输出的测试数据;其中,该测试数据包括若干键值对数据;
利用该预设字段信息对该测试数据进行筛选,得到待校验的键值对数据;
根据该待校验的键值对数据和该校验参数,确定该待测试接口的该目标测试功能对应的测试结果。
本申请实施例的第二方面,提供了一种测试装置,包括:
获取目标测试功能对应的预设字段信息、校验参数和待测试接口输出的测试数据;其中,该测试数据包括若干键值对数据;
利用该预设字段信息对该测试数据进行筛选,得到待校验的键值对数据;
根据该待校验的键值对数据和该校验参数,确定该待测试接口的该目标测试功能对应的测试结果。
本申请实施例的第三方面,提供了一种电子设备,包括存储器、处理器以及存储在存储器中并且可在处理器上运行的计算机程序,该处理器执行计算机程序时实现上述方法的步骤。
本申请实施例的第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
本申请实施例与现有技术相比存在的有益效果是:本实施例在获取目标测试功能对应的预设字段信息、校验参数和待测试接口输出的测试数据后,可以先利用该预设字段信息对该测试数据进行筛选,得到待校验的键值对数据;接着,可以根据该待校验的键值对数据和该校验参数,确定该待测试接口的该目标测试功能对应的测试结果。在本实施例中,由于预先定义了预设字段信息、校验参数,因此,在对待测试接口输出的测试数据进行校验得到测试结果的过程中,直接调用目标测试功能对应的预先定义的预设字段信息、校验参数对待测试接口输出的测试数据进行测试即可;这样,当对不同功能进行测试时,虽然不同功能对应的预先定义的预设字段信息、校验参数会有所不同,但是不需要人工对测试逻辑代码进行调整,而仅直接对预设字段信息、校验参数进行调整即可,从而可以使得预设字段信息、校验参数的调整与测试逻辑代码实现了解耦,也不需要人工对测试逻辑代码进行调整,进而可以避免出现由于人工操作错误所导致的校验错误的问题,提高了接口测试的测试结果的准确率以及接口测试的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本申请实施例的应用场景的场景示意图;
图2是本申请实施例提供的一种测试方法的流程示意图;
图3是本申请实施例提供的另一种测试方法的流程示意图;
图4是本申请实施例提供的一种测试装置的结构示意图;
图5是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定***结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的***、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
下面将结合附图详细说明根据本申请实施例的一种测试方法和装置。
图1是本申请实施例的应用场景的场景示意图。该应用场景可以包括终端设备1、2和3、服务器4以及网络5。
终端设备1、2和3可以是硬件,也可以是软件。当终端设备1、2和3为硬件时,其可以是具有显示屏且支持与服务器4通信的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等;当终端设备1、2和3为软件时,其可以安装在如上该的电子设备中。终端设备1、2和3可以实现为多个软件或软件模块,也可以实现为单个软件或软件模块,本申请实施例对此不作限制。进一步地,终端设备1、2和3上可以安装有各种应用,例如数据处理应用、即时通信工具、社交平台软件、搜索类应用、购物类应用等。
服务器4可以是提供各种服务的服务器,例如,对与其建立通信连接的终端设备发送的请求进行接收的后台服务器,该后台服务器可以对终端设备发送的请求进行接收和分析等处理,并生成处理结果。服务器4可以是一台服务器,也可以是由若干台服务器组成的服务器集群,或者还可以是一个云计算服务中心,本申请实施例对此不作限制。
需要说明的是,服务器4可以是硬件,也可以是软件。当服务器4为硬件时,其可以是为终端设备1、2和3提供各种服务的各种电子设备。当服务器4为软件时,其可以是为终端设备1、2和3提供各种服务的多个软件或软件模块,也可以是为终端设备1、2和3提供各种服务的单个软件或软件模块,本申请实施例对此不作限制。
网络5可以是采用同轴电缆、双绞线和光纤连接的有线网络,也可以是无需布线就能实现各种通信设备互联的无线网络,例如,蓝牙(Bluetooth)、近场通信(Near FieldCommunication,NFC)、红外(Infrared)等,本申请实施例对此不作限制。
用户可以通过终端设备1、2和3经由网络5与服务器4建立通信连接,以接收或发送信息等。具体地,当用户需要对终端设备1、2和3中的接口进行目标测试功能的测试时,可以向终端设备1、2和3输出测试触发指令,终端设备1、2和3可以执行目标测试功能且将目标测试功能对应的待测试接口输出的测试数据向服务器4发送。服务器4获取目标测试功能对应的预设字段信息、校验参数和待测试接口输出的测试数据后,服务器4可以先利用该预设字段信息对该测试数据进行筛选,得到待校验的键值对数据。接着,服务器4可以根据该待校验的键值对数据和该校验参数,确定该待测试接口的该目标测试功能对应的测试结果。这样,当对不同功能进行测试时,虽然不同功能对应的预先定义的预设字段信息、校验参数会有所不同,但是不需要人工对测试逻辑代码进行调整,而仅直接对预设字段信息、校验参数进行调整即可,从而可以使得预设字段信息、校验参数的调整与测试逻辑代码实现了解耦,也不需要人工对测试逻辑代码进行调整,进而可以避免出现由于人工操作错误所导致的校验错误的问题,提高了接口测试的测试结果的准确率以及接口测试的效率。
需要说明的是,终端设备1、2和3、服务器4以及网络5的具体类型、数量和组合可以根据应用场景的实际需求进行调整,本申请实施例对此不作限制。
图2是本申请实施例提供的一种测试方法的流程示意图。图2的测试方法可以由图1的服务器执行。如图2所示,该测试方法包括:
S201,获取目标测试功能对应的预设字段信息、校验参数和待测试接口输出的测试数据。
在本实施例中,待测试接口可以理解为需要进行测试的接口。目标测试功能可以理解为需要进行测试的功能,例如,目标测试功能可以为打开车窗功能、视频播放功能。
待测试接口在执行目标测试功能时所输出的数据可以称之为待测试接口输出的测试数据。其中,该测试数据包括若干键值对数据,每个键值对数据即为一个键值对,键值对是一种把键(键对象)和值(即值对象)进行关联的容器,即将键和值进行了关联形成了键值对,这样,可以利用键得到与键对应的值。例如可以用pub(Object key,Object value),将一个键与一个值相关联,用get(Object key)可得到与此key对象(即键)所对应的值。
目标测试功能对应的预设字段信息可以理解为在测试目标测试功能场景下,期望采集到的测试数据中所包括的字段。需要说明的是,不同测试功能对应的预设字段信息可以是完全相同的,也可以是完全不同的,还可以是部分相同且部分不相同的。还需要强调的是,测试功能对应的预设字段信息可以根据实际需求进行调整。
目标测试功能对应的校验参数可以理解为在测试目标测试功能场景下,期望采集到的期望键值对。在本实施例中,为了便于描述,可以将校验参数中的期望键值对的值称之为校验期望值。也就是说,校验参数可以包括若干键各自分别对应的校验期望值。还需要强调的是,目标测试功能对应的校验参数可以根据实际需求进行调整。
在一种实现方式,本实施例所提供的测试方法可以应用于接口测试***中的测试代码实现模块。具体地,如图3所示,该接口测试***可以包括测试代码实现模块、测试准备模块和校验规则模块;该测试代码实现模块分别与待测试接口、测试准备模块、校验规则模块进行通信连接。其中,该测试准备模块可以预先存储有该目标测试功能对应的预设字段信息,该校验规则模块可以预先存储有该目标测试功能对应的校验参数。这样,分模块分别执行不同的任务,即测试代码实现模块执行测试逻辑代码、测试准备模块用于存储和修改预设字段信息、校验规则模块用于存储和修改校验参数。
需要说明的是,校验规则模块主要是为了定义在不通入参情况下定义接口返回的校验期望值(即目标测试功能对应的校验参数)。因为待测试接口所返回的测试数据是根据接口入参动态返回的,所以校验参数一定是事先确定的。因此,在本实施例中,该校验参数可以设置为静态的信息,可以存放于代码或者数据库中。在一种实现方式中,为了使得测试数据方便维护,可以将校验参数设置在代码中,例如,可以使用类来存放,需要说明的是,一个类可以定义一种测试功能的规则,可以理解的是,该测试功能不管有多少场景都写在一个类里,即该测试功能对应的全部校验数据均可以存在一个类中,目的就是为了方便维护。同理,预设字段信息也可以通过静态信息的方式存储在测试准备模块中。需要说明的是,由于校验参数和预设字段信息均采用静态数据的方式存储,因此,可以实现在不影响测试逻辑代码的前提下,对校验参数和预设字段信息进行调整。
作为一种示例,如图3所示,当待测试接口进行目标测试功能的测试时,待测试接口可以向测试代码实现模块发送目标测试功能标识和测试数据。测试代码实现模块接收该待测试接口发送的目标测试功能标识和测试数据。测试代码实现模块可以从测试准备模块中获取到预设字段信息,以及,测试代码实现模块可以向校验规则模块发送目标测试功能标识,这样,该测试代码实现模块可以根据该目标测试功能标识,从该校验规则模块中获取到该目标测试功能标识对应的校验参数。
S202,利用该预设字段信息对该测试数据进行筛选,得到待校验的键值对数据。
由于获取到的测试数据可能包括与目标测试功能无关或者不需要进行校验的键值对数据,因此,测试代码实现模块在获取到测试数据后,测试代码实现模块可以利用预设字段信息对测试数据中的键值对数据进行筛选,得到需要进行校验的键值对数据。为了便于描述,在本实施例中,可以将需要进行校验的键值对数据称之为待校验的键值对数据。
在一种实现方式中,该预设字段信息可以包括接口返回总字段和非校验字段。其中,该接口返回总字段可以理解为在测试目标测试功能场景下,期望采集到的测试数据中所包括的所有字段。非校验字段可以理解为不需要进行校验的字段;需要强调的是,由于通常情况下不需要进行校验的字段的数量远远少于需要进行校验的字段的数量,因此,在预设字段信息中设置非校验字段,利用非校验字段来排除不需要进行校验的键值对数据的计算量会更少,而且对于预设字段信息的调整的工作量也比较少。举例来说,假设,接口返回总字段包括:code、data、subData、fuction1、fuction2等字段,非校验字段包括data、subData等字段,也就是说,code、fuction1、fuction2为需要校验的字段。
具体地,在一种实现方式中,获取到测试数据后,可以先对测试数据进行拆分,得到测试数据中的每一个键值对数据,例如,可以包括所有字段的key(即键),也就是说,可以包含了有值的key(有具体数值的字段)和无值的key(没有数值的字段,如对象和列表的key)。然后,可以针对该测试数据中的每一键值对数据,若该键值对数据中的键为该接口返回总字段中的一个字段,且该键值对数据中的键不为该非校验字段中的任一字段,说明该键值对数据中的键是测试目标测试功能场景下期望采集到的字段,且该键值对数据是需要进行校验的;此时,则可以将该键值对数据作为待校验的键值对数据。若键值对数据中的键不为接口返回总字段中的任意一个字段,说明该键值对数据不是测试目标测试功能场景下期望采集到的字段,可以将该键值对数据标注为多余返回的键值对数据。若该键值对数据中的键为该接口返回总字段中的一个字段,且该键值对数据中的键为该非校验字段中的任一字段,说明该键值对数据中的键是测试目标测试功能场景下期望采集到的字段,且该键值对数据是不需要进行校验的;此时,则可以将该键值对数据作为不需要校验的键值对数据,可以将该键值对数据标注为不用校验的键值对数据。而对于接口返回总字段中未存在测试数据中键值对数据相对应的字段,可以标注为没有返回的字段。
举例来说,假设目标测试功能为打开车窗;目标测试功能对应的待测试接口输出的测试数据为:{"code":2000,"data":{"subData":[{"fuction1":"车窗","subFunction":{"action":"打开"}}]}};接口返回总字段包括:code、fuction1、fuction2;非校验字段包括:code,根据递归方法获取到的无效字段包括:data、subData、subFunction;因此,可以确定待校验的键值对数据为:"fuction1":"车窗";将键值对数据"action":"打开"标注为多余返回的键值对数据;将该键值对数据code标注为不用校验的键值对数据;将字段fuction2标注为没有返回的字段。
S203,根据该待校验的键值对数据和该校验参数,确定该待测试接口的该目标测试功能对应的测试结果。
测试代码实现模块确定待校验的键值对数据后,可以利用校验参数对各个待校验的键值对数据进行校验,以判断各个待校验的键值对数据中的值是否符合要求,从而可以确定该待测试接口的该目标测试功能对应的测试结果。
在一种实现方式中,校验参数可以包括若干键各自分别对应的校验期望值。可以理解的是,校验参数可以包括若干校验键值对,其中,每个校验键值对包括校验键和校验期望值。具体地,针对每一待校验的键值对数据,可以先根据该键值对数据中的键和校验参数,确定该键对应的校验期望值,可以理解的是,可以找到该键值对数据对应的校验键值对,其中,该键值对数据中的键与该校验键值对中的键是相同的;然后,可以根据该键对应的校验期望值和该键值对数据中的值,确定该待校验的键值对数据对应的测试结果,可以理解的是,可以将该键值对数据中的值与该校验键值对中的校验期望值进行比对,若该键值对数据中的值与该校验键值对中的校验期望值是相同的,则该待校验的键值对数据对应的测试结果为测试通过,反之,若该键值对数据中的值与该校验键值对中的校验期望值是不相同的,则该待校验的键值对数据对应的测试结果为测试失败。在得到所有待检验的键值对数据对应的测试结果后,可以将全部待校验的键值对数据对应的测试结果作为该待测试接口的该目标测试功能对应的测试结果。
在一种实现方式中,目标测试功能对应的测试结果还可以包括以下至少一个:待校验的键值对数据对应的测试结果为测试失败的原因、多余返回的键值对数据、不用校验的键值对数据、没有返回的字段。
需要说明的是,在本实施例中,可以将每个测试功能对应的测试结果存储在一个类(如,类Result)中,即可以使用相同的类存储不同测试功能对应的测试结果,可以理解的是,不同测试功能的测试结果所存储的类是相同的。例如,实例化一个Result类来存储功能a的测试结果,再实例化一个Result类来存储功能b的测试结果。这样,需要读取测试功能的测试结果时,可以从该测试功能对应的类中提取并输出。
根据本申请实施例提供的技术方案,在获取目标测试功能对应的预设字段信息、校验参数和待测试接口输出的测试数据后,可以先利用该预设字段信息对该测试数据进行筛选,得到待校验的键值对数据;接着,可以根据该待校验的键值对数据和该校验参数,确定该待测试接口的该目标测试功能对应的测试结果。在本实施例中,由于预先定义了预设字段信息、校验参数,因此,在对待测试接口输出的测试数据进行校验得到测试结果的过程中,直接调用目标测试功能对应的预先定义的预设字段信息、校验参数对待测试接口输出的测试数据进行测试即可;这样,当对不同功能进行测试时,虽然不同功能对应的预先定义的预设字段信息、校验参数会有所不同,但是不需要人工对测试逻辑代码进行调整,而仅直接对预设字段信息、校验参数进行调整即可,从而可以使得预设字段信息、校验参数的调整与测试逻辑代码实现了解耦,也不需要人工对测试逻辑代码进行调整,进而可以避免出现由于人工操作错误所导致的校验错误的问题,提高了接口测试的测试结果的准确率以及接口测试的效率。也就是说,本实施例可以实现针对一种或多种测试功能下的待测试接口输出的测试数据的校验,而不需要再更改测试逻辑代码,只需对静态数据(即预设字段信息、校验数据)进行改动即可;这样,可以不再需要针对同一接口大数据量的测试任务下,需针对不同测试功能下的待测试接口输出的测试数据,再对测试逻辑代码进行繁琐的人工编写工作,从而实现了预设字段信息、校验参数的调整与测试逻辑代码解耦,减少由于人工操作错误造成的测试错误的概率,提高测试准确率。
在一些实施例中,在该S202“利用该预设字段信息对该测试数据进行筛选,得到待校验的键值对数据”的步骤之前,该方法可以还包括:
步骤a,确定该测试数据中的无效键值对数据。
在本实施例中,无效键值对数据可以理解为仅存在键而不存在键对应的值的键值对数据,例如,值为列表(即包括另一键值对数据)的键值对数据为无效键值对数据。例如,假设键值对数据为"data":{"subData":[{"fuction1":"车窗","subFunction":{"action":"打开"}}]},则“data”字段对应的键值对数据(即"data":{})和“subData”字段对应的键值对数据(即"subData":[])均属于无效键值对数据。
需要说明的是,本实施例提供了两种确定该测试数据中的无效键值对数据的方式,接下来一一介绍。
第一种确定该测试数据中的无效键值对数据的方式为:利用递归处理方法,确定该测试数据中的无效键值对数据。在本实施例中,测试代码实现模块可以利用递归的处理方式确定测试数据中的每一键值对数据中是否有值,若键值对数据中不存在值,则可以确定该键值对数据为无效键值对数据。
第二种确定该测试数据中的无效键值对数据的方式为:先根据该字段层级信息,确定无效字段;然后,可以根据该无效字段,确定该测试数据中的无效键值对数据。在本实现方式中,预设字段信息可以包括字段层级信息;其中,该字段层级信息用于表征字段之间的上下层级关系,例如,键值对数据为"subData":[{"fuction1":"车窗","subFunction":{"action":"打开"}}]时,键值对数据"subData":[]的字段层级信息为字段“subData”为字段“fuction1”和字段“subFunction”的上级字段。在本实施例中,测试代码实现模块可以先根据该字段层级信息,确定无效字段;在一种实现方式中,可以将存在下级字段的字段作为无效字段,例如,由于字段“subData”为字段“fuction1”和字段“subFunction”的上级字段,即第一层级的字段为字段“subData”、第二层级的字段为字段“fuction1”和字段“subFunction”,因此,可以将第一层级的字段“subData”作为无效字段。接着,测试代码实现模块可以根据该无效字段,确定该测试数据中的无效键值对数据,也就是说,若测试数据中的一键值对数据中的键为无效字段,则可以将该键值对数据作为无效键值对数据。
步骤b,将该测试数据中的无效键值对数据去除,得到调整后的测试数据。
具体地,测试代码实现模块在确定无效键值对数据后,可以将无效键值对数据从测试数据中去除,剩下的键值对数据便可以作为调整后的测试数据。
相应地,该利用该预设字段信息对该测试数据进行筛选,得到待校验的键值对数据,可以包括:利用该预设字段信息对该调整后的测试数据进行筛选,得到待校验的键值对数据。
根据本申请实施例提供的技术方案,在筛选待校验的键值对数据之前,先将测试数据中的无效键值对数据去除,从而可以使得测试数据中的噪声数据(即无效键值对数据)去除,从而可以减少了后续需要处理的键值对数据的数量,进而可以缩短接口测试的时间,提高接口测试的效率。
上述所有可选技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图4是本申请实施例提供的一种测试装置的示意图。如图4所示,该测试装置包括:
获取模块401,被配置为获取目标测试功能对应的预设字段信息、校验参数和待测试接口输出的测试数据;其中,该测试数据包括若干键值对数据;
筛选模块402,被配置为利用该预设字段信息对该测试数据进行筛选,得到待校验的键值对数据;
确定模块403,被配置为根据该待校验的键值对数据和该校验参数,确定该待测试接口的该目标测试功能对应的测试结果。
根据本申请实施例提供的技术方案,由于预先定义了预设字段信息、校验参数,因此,在对待测试接口输出的测试数据进行校验得到测试结果的过程中,直接调用目标测试功能对应的预先定义的预设字段信息、校验参数对待测试接口输出的测试数据进行测试即可;这样,当对不同功能进行测试时,虽然不同功能对应的预先定义的预设字段信息、校验参数会有所不同,但是不需要人工对测试逻辑代码进行调整,而仅直接对预设字段信息、校验参数进行调整即可,从而可以使得预设字段信息、校验参数的调整与测试逻辑代码实现了解耦,也不需要人工对测试逻辑代码进行调整,进而可以避免出现由于人工操作错误所导致的校验错误的问题,提高了接口测试的测试结果的准确率以及接口测试的效率。
在一些实施例中,该预设字段信息包括接口返回总字段和非校验字段;该筛选模块402,被配置为:
针对该测试数据中的每一键值对数据,若该键值对数据中的键为该接口返回总字段中的一个字段,且该键值对数据中的键不为该非校验字段中的任一字段,则将该键值对数据作为待校验的键值对数据。
在一些实施例中,该校验参数包括若干键各自分别对应的校验期望值;该确定模块403,被配置为:
针对每一待校验的键值对数据,根据该键值对数据中的键和该校验参数,确定该键对应的校验期望值;根据该键对应的校验期望值和该键值对数据中的值,确定该待校验的键值对数据对应的测试结果;
将全部待校验的键值对数据对应的测试结果作为该待测试接口的该目标测试功能对应的测试结果。
在一些实施例中,该装置还包括去除模块,被配置为:在该利用该预设字段信息对该测试数据进行筛选,得到待校验的键值对数据的步骤之前,
确定该测试数据中的无效键值对数据;
将该测试数据中的无效键值对数据去除,得到调整后的测试数据;其中,该无效键值对数据为仅存在键而不存在键对应的值的键值对数据;
相应地,该利用该预设字段信息对该测试数据进行筛选,得到待校验的键值对数据,包括:
利用该预设字段信息对该调整后的测试数据进行筛选,得到待校验的键值对数据。
在一些实施例中,该去除模块,被配置为:
利用递归处理方法,确定该测试数据中的无效键值对数据。
在一些实施例中,该预设字段信息包括字段层级信息;其中,该字段层级信息用于表征字段之间的上下层级关系;
相应地,在一些实施例中,该去除模块404,被配置为:
根据该字段层级信息,确定无效字段;
根据该无效字段,确定该测试数据中的无效键值对数据。
在一些实施例中,该测试装置应用于接口测试***中的测试代码实现模块;其中,该接口测试***还包括测试准备模块和校验规则模块,该测试准备模块存储有该目标测试功能对应的预设字段信息,该校验规则模块存储有该目标测试功能对应的校验参数;
相应地,该获取模块401,被配置为:
该测试代码实现模块接收该待测试接口发送的该目标测试功能标识和测试数据;
该测试代码实现模块从该测试准备模块中获取到该目标测试功能标识对应的预设字段信息;
该测试代码实现模块根据该目标测试功能标识,从该校验规则模块中获取到该目标测试功能标识对应的校验参数。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
图5是本申请实施例提供的电子设备5的示意图。如图5所示,该实施例的电子设备5包括:处理器501、存储器502以及存储在该存储器502中并且可在处理器501上运行的计算机程序503。处理器501执行计算机程序503时实现上述各个方法实施例中的步骤。或者,处理器501执行计算机程序503时实现上述各装置实施例中各模块/单元的功能。
电子设备5可以是桌上型计算机、笔记本、掌上电脑及云端服务器等电子设备。电子设备5可以包括但不仅限于处理器501和存储器502。本领域技术人员可以理解,图5仅仅是电子设备5的示例,并不构成对电子设备5的限定,可以包括比图示更多或更少的部件,或者不同的部件。
处理器501可以是中央处理单元(Central Processing Unit,CPU),也可以是其它通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
存储器502可以是电子设备5的内部存储单元,例如,电子设备5的硬盘或内存。存储器502也可以是电子设备5的外部存储设备,例如,电子设备5上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。存储器502还可以既包括电子设备5的内部存储单元也包括外部存储设备。存储器502用于存储计算机程序以及电子设备所需的其它程序和数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可以存储在计算机可读存储介质中,该计算机程序在被处理器执行时,可以实现上述各个方法实施例的步骤。计算机程序可以包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如,在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (10)

1.一种测试方法,其特征在于,包括:
获取目标测试功能对应的预设字段信息、校验参数和待测试接口输出的测试数据;其中,所述测试数据包括若干键值对数据;
利用所述预设字段信息对所述测试数据进行筛选,得到待校验的键值对数据;
根据所述待校验的键值对数据和所述校验参数,确定所述待测试接口的所述目标测试功能对应的测试结果。
2.根据权利要求1所述的方法,其特征在于,所述预设字段信息包括接口返回总字段和非校验字段;所述利用所述预设字符信息对所述测试数据进行筛选,得到待校验的键值对数据,包括:
针对所述测试数据中的每一键值对数据,若所述键值对数据中的键为所述接口返回总字段中的一个字段,且所述键值对数据中的键不为所述非校验字段中的任一字段,则将所述键值对数据作为待校验的键值对数据。
3.根据权利要求1所述的方法,其特征在于,所述校验参数包括若干键各自分别对应的校验期望值;所述根据所述待校验的键值对数据和所述校验参数,确定所述待测试接口的所述目标测试功能对应的测试结果,包括:
针对每一待校验的键值对数据,根据所述键值对数据中的键和所述校验参数,确定所述键对应的校验期望值;根据所述键对应的校验期望值和所述键值对数据中的值,确定所述待校验的键值对数据对应的测试结果;
将全部待校验的键值对数据对应的测试结果作为所述待测试接口的所述目标测试功能对应的测试结果。
4.根据权利要求1所述的方法,其特征在于,在所述利用所述预设字段信息对所述测试数据进行筛选,得到待校验的键值对数据的步骤之前,所述方法还包括:
确定所述测试数据中的无效键值对数据;
将所述测试数据中的无效键值对数据去除,得到调整后的测试数据;其中,所述无效键值对数据为仅存在键而不存在键对应的值的键值对数据;
相应地,所述利用所述预设字段信息对所述测试数据进行筛选,得到待校验的键值对数据,包括:
利用所述预设字段信息对所述调整后的测试数据进行筛选,得到待校验的键值对数据。
5.根据权利要求4所述的方法,其特征在于,所述确定所述测试数据中的无效键值对数据,包括:
利用递归处理方法,确定所述测试数据中的无效键值对数据。
6.根据权利要求4所述的方法,其特征在于,所述预设字段信息包括字段层级信息;其中,所述字段层级信息用于表征字段之间的上下层级关系;
相应地,所述确定所述测试数据中的无效键值对数据,包括:
根据所述字段层级信息,确定无效字段;
根据所述无效字段,确定所述测试数据中的无效键值对数据。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述测试方法应用于接口测试***中的测试代码实现模块;其中,所述接口测试***还包括测试准备模块和校验规则模块,所述测试准备模块存储有所述目标测试功能对应的预设字段信息,所述校验规则模块存储有所述目标测试功能对应的校验参数;
相应地,所述获取目标测试功能对应的预设字段信息、校验参数和待测试接口输出的测试数据,包括:
所述测试代码实现模块接收所述待测试接口发送的所述目标测试功能标识和测试数据;
所述测试代码实现模块从所述测试准备模块中获取到所述目标测试功能标识对应的预设字段信息;
所述测试代码实现模块根据所述目标测试功能标识,从所述校验规则模块中获取到所述目标测试功能标识对应的校验参数。
8.一种测试装置,其特征在于,包括:
获取模块,被配置为获取目标测试功能对应的预设字段信息、校验参数和待测试接口输出的测试数据;其中,所述测试数据包括若干键值对数据;
筛选模块,被配置为利用所述预设字段信息对所述测试数据进行筛选,得到待校验的键值对数据;
确定模块,被配置为根据所述待校验的键值对数据和所述校验参数,确定所述待测试接口的所述目标测试功能对应的测试结果。
9.一种电子设备,包括存储器、处理器以及存储在所述存储器中并且可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述方法的步骤。
CN202310410581.5A 2023-04-18 2023-04-18 一种测试方法、装置、电子设备及计算机可读存储介质 Pending CN116610559A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310410581.5A CN116610559A (zh) 2023-04-18 2023-04-18 一种测试方法、装置、电子设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310410581.5A CN116610559A (zh) 2023-04-18 2023-04-18 一种测试方法、装置、电子设备及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN116610559A true CN116610559A (zh) 2023-08-18

Family

ID=87673635

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310410581.5A Pending CN116610559A (zh) 2023-04-18 2023-04-18 一种测试方法、装置、电子设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN116610559A (zh)

Similar Documents

Publication Publication Date Title
CN108628748B (zh) 自动化测试管理方法和自动化测试管理***
CN111190551B (zh) 一种redis数据的迁移***、迁移方法、装置及终端
CN111258832B (zh) 一种接口参数校验方法、装置、设备及介质
CN112506798A (zh) 一种区块链平台的性能测试方法、装置、终端及存储介质
CN111046393B (zh) 漏洞信息上传方法、装置、终端设备及存储介质
CN110020166B (zh) 一种数据分析方法及相关设备
CN116610559A (zh) 一种测试方法、装置、电子设备及计算机可读存储介质
CN112379967B (zh) 模拟器检测方法、装置、设备及介质
CN113452533B (zh) 计费自巡检、自愈合方法、装置、计算机设备和存储介质
CN115203178A (zh) 数据质检方法、装置、电子设备及存储介质
CN110532186B (zh) 利用验证码进行测试的方法、装置、电子设备和存储介质
CN111190824A (zh) 监测方法、装置、终端设备及存储介质
CN112948269B (zh) 信息处理方法、信息处理装置、电子设备及可读存储介质
CN112650679B (zh) 一种测试校验方法、装置及计算机***
CN117313856B (zh) 一种可靠性测试规划***及方法
CN113032266B (zh) 代码的检验方法、装置、设备及存储介质
CN116828404B (zh) 行业短信准确发送方法、装置、电子设备和介质
CN114860550A (zh) 对应用实时监控的方法及装置
CN116828522A (zh) 一种测试方法、装置、电子设备及计算机可读存储介质
CN117785630A (zh) 一种交易***的性能测试方法及装置
CN116955198A (zh) 一种规则集合的确定方法及装置
CN114840372A (zh) 接口测试方法、装置、电子设备及计算机可读存储介质
CN115941565A (zh) Can信号的测试方法、***、电子设备及存储介质
CN114418142A (zh) 设备巡检方法及装置
CN116012158A (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