CN114817024A - 用例生成方法及装置、设备、存储介质 - Google Patents

用例生成方法及装置、设备、存储介质 Download PDF

Info

Publication number
CN114817024A
CN114817024A CN202210423925.1A CN202210423925A CN114817024A CN 114817024 A CN114817024 A CN 114817024A CN 202210423925 A CN202210423925 A CN 202210423925A CN 114817024 A CN114817024 A CN 114817024A
Authority
CN
China
Prior art keywords
interface
determining
use case
test
parameter
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.)
Withdrawn
Application number
CN202210423925.1A
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.)
Shenzhen Sensetime Technology Co Ltd
Original Assignee
Shenzhen Sensetime 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 Shenzhen Sensetime Technology Co Ltd filed Critical Shenzhen Sensetime Technology Co Ltd
Priority to CN202210423925.1A priority Critical patent/CN114817024A/zh
Publication of CN114817024A publication Critical patent/CN114817024A/zh
Withdrawn legal-status Critical Current

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/3684Test management for test design, e.g. generating new test cases

Abstract

本申请实施例公开了一种用例生成方法及装置、设备、存储介质,其中,所述方法包括:响应于接收到接口用例的生成请求,确定所述接口用例对应的接口文件;对所述接口文件进行解析,得到所述接口文件的接口信息;基于所述接口文件的接口信息,确定接口用例模板和所述接口用例模板对应的预期测试结果;通过所述接口用例模板和所述预期测试结果,生成所述接口用例。

Description

用例生成方法及装置、设备、存储介质
技术领域
本申请实施例涉及自动化技术,涉及但不限于一种用例生成方法及装置、设备、存储介质。
背景技术
为了保证软件系统数据处理的正常运行,需要针对系统或组件之间的接口进行测试,测试的主要目的是校验数据的交换、传递和控制管理过程,以及相互之间的逻辑依赖关系。
目前,通用的接口测试方法主要由接口测试人员针对系统接口,根据测试理论方法,设计并实现相应的测试用例。随着系统处理复杂程度的增加,系统接口也会相应的调整。这些都需要测试人员重新设计、实现测试用例。如此,会增加软件测试的人力及时间成本,且会出现由于测试人员的能力限制导致的接口测试用例设计覆盖不全的情况。
发明内容
有鉴于此,本申请实施例提供一种用例生成方法及装置、设备、存储介质。
本申请实施例的技术方案是这样实现的:
第一方面,本申请实施例提供一种用例生成方法,所述方法包括:响应于接收到接口用例的生成请求,确定所述接口用例对应的接口文件;对所述接口文件进行解析,得到所述接口文件的接口信息;基于所述接口文件的接口信息,确定接口用例模板和所述接口用例模板对应的预期测试结果;通过所述接口用例模板和所述预期测试结果,生成所述接口用例。
通过上述方式,能够实现从接口文档生成接口测试用例的自动化。
在一些实施例中,所述接口信息包括接口参数,以及所述接口参数的属性信息;所述基于所述接口文件的接口信息,确定接口用例模板,包括:从多个预设的规则中,确定出与所述属性信息相匹配的目标规则;基于所述属性信息和所述目标规则,确定所述接口参数的接口用例模板。
通过上述方式,能够按照系统的预置策略自动生成接口测试用例,避免由于测试人员的能力限制导致的测试用例覆盖不全的情况。
在一些实施例中,所述属性信息包括参数类型,所述从多个预设的规则中,确定出与所述属性信息相匹配的目标规则,包括:从多个预设的规则中,确定所述目标规则为生成与所述参数类型匹配的测试值,以及与所述参数类型不匹配的测试值。
通过上述方式,能够按照系统的预置策略自动生成与参数类型相关的接口测试用例。
在一些实施例中,所述属性信息包括取值范围,所述从多个预设的规则中,确定出与所述属性信息相匹配的目标规则,包括:从多个预设的规则中,确定所述目标规则为生成位于所述取值范围内的测试值、位于所述取值范围外的测试值,以及位于所述取值范围边界上的测试值。
通过上述方式,能够按照系统的预置策略自动生成与参数取值范围相关的接口测试用例。
在一些实施例中,所述接口信息还包括接口地址和接口方法;所述基于所述属性信息和所述目标规则,确定所述接口参数的接口用例模板,包括:基于所述属性信息和所述目标规则,确定所述接口参数的测试值;基于所述测试值、所述接口地址和所述接口参数对应的接口方法,确定所述接口参数的接口用例模板。
通过上述方式,能够利用对接口文档进行解析获取到的接口相关信息和预设的规则,自动生成接口用例模板。
在一些实施例中,在所述接口信息中包含的接口参数的数量大于等于2的情况下,所述通过所述接口用例模板和所述预期测试结果,生成所述接口用例,包括:确定接口用例模板中每一接口参数的测试值;对不同接口参数的所述测试值的取值进行排列组合,得到至少一组测试值;基于所述至少一组测试值和每一组测试值对应的预期测试结果,生成每一组测试值对应的接口用例。
通过上述方式,能够对不同接口参数的取值进行排列组合,从而批量生成接口测试用例。
在一些实施例中,所述基于所述接口文件的接口信息,确定接口用例模板,还包括:获取表明取值为空的特定数据;将所述特定数据作为测试值对所述接口参数进行处理,得到所述接口参数的接口用例模板。
通过上述方式,能够按照系统的预置策略自动生成与特定数据相关的接口测试用例。
在一些实施例中,所述响应于接收到接口用例的生成请求,确定所述接口用例对应的接口文件,包括:响应于接收到接口用例的生成请求,确定所述接口用例对应的待测试接口;基于所述待测试接口,确定所述接口用例对应的接口文件。
通过上述方式,能够根据待测试接口确定接口用例对应的接口文件。
第二方面,本申请实施例提供一种用例生成装置,所述装置包括:第一确定单元,用于响应于接收到接口用例的生成请求,确定所述接口用例对应的接口文件;文件解析单元,用于对所述接口文件进行解析,得到所述接口文件的接口信息;第二确定单元,用于基于所述接口文件的接口信息,确定接口用例模板和所述接口用例模板对应的预期测试结果;用例生成单元,用于通过所述接口用例模板和所述预期测试结果,生成所述接口用例。
第三方面,本申请实施例提供一种电子设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法中的步骤。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的步骤。
本申请实施例提供一种用例生成方法及装置、设备、存储介质,通过响应于接收到接口用例的生成请求,确定所述接口用例对应的接口文件;对所述接口文件进行解析,得到所述接口文件的接口信息;基于所述接口文件的接口信息,确定接口用例模板和所述接口用例模板对应的预期测试结果;通过所述接口用例模板和所述预期测试结果,生成所述接口用例,如此,能够实现从接口文档生成接口测试用例的自动化。
附图说明
图1为本申请实施例用例生成方法的实现流程示意图一;
图2为本申请实施例用例生成方法的实现流程示意图二;
图3为本申请实施例用例生成方法的实现流程示意图三;
图4为本申请实施例用例生成方法的实现流程示意图四;
图5为本申请实施例用例生成装置的组成结构示意图;
图6为本申请实施例电子设备的一种硬件实体示意图。
具体实施方式
下面结合附图和实施例对本申请的技术方案进一步详细阐述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本申请的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
需要指出,本申请实施例所涉及的术语“第一\第二\第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
基于此,本申请实施例提供一种用例生成方法,所述方法应用于电子设备,该方法所实现的功能可以通过所述电子设备的处理器调用程序代码来实现,当然程序代码可以保存在所述电子设备的存储介质中。图1为本申请实施例用例生成方法的实现流程示意图一,如图1所示,所述方法包括:
步骤S101、响应于接收到接口用例的生成请求,确定所述接口用例对应的接口文件;
这里,所述电子设备可以为各种类型的具有信息处理能力的设备,例如导航仪、智能手机、平板电脑、可穿戴设备、膝上型便携计算机、一体机和台式计算机、服务器集群等。
为了保证软件系统数据处理的正常运行,需要针对系统或组件之间的接口进行测试,则需要获取对应的接口用例。接口的全称是应用程序编程接口,是应用程序重要的组成部分。接口可以是一个功能,例如天气查询,短信群发等,接口也可以是一个模块,例如登录验证。接口通过发送请求参数至接口URL(Uniform Resource Locator,统一资源定位符),经过后台代码处理后,返回所需的结果。
通常,接口文件为具有标准格式的文件。例如,JSON(JavaScript ObjectNotation,JS对象简谱)格式的文件。所述接口文件可以为接口文档,研发人员可以根据接口文档进行开发、协作,测试人员可以根据接口文档进行测试,系统也需要参照接口文档进行维护等。接口文档的内容主要包括接口方法、接口URL、接口请求参数和接口返回参数。其中,接口方法包括新增、删除、修改和查询等;接口的调用方法一般是从前端调后端的方法地址(即方法URL);接口的请求参数一般包括五个部分,即字段、说明、类型、备注和是否必填。例如,接口文档的部分内容可以为{“username”:“string”:“(0-10]”,“userid”:“integer”:“[0-50]”}。该接口文档中包括两个参数“username”和“userid”,其中,参数“username”的参数类型是“string”,取值范围是(0-10]个字符;参数“userid”的参数类型是“integer”,取值范围是[0-50]的整数。当然,接口文档的内容还可以包括接口协议、接口名称等。
本申请实施例中,测试人员可以点击待测试接口对应的测试用例生成按钮,进而触发接口用例的生成请求,处理器在接收到该请求后,会确定出所述接口用例对应的接口文件。
步骤S102、对所述接口文件进行解析,得到所述接口文件的接口信息;
这里,可以利用接口解析模块自动对接口文件进行解析,得到所述接口文件的接口信息,所述接口文档的接口信息即接口文档的内容。
步骤S103、基于所述接口文件的接口信息,确定接口用例模板和所述接口用例模板对应的预期测试结果;
这里,模板是将一个事物的结构规律予以固定化、标准化的成果,它体现的是结构形式的标准化。接口用例模板就是在接口测试过程中,将一部分固定的内容,抽取出来而形成的标准化的内容。简单地说,将一些必要的参数整合起来就是一份接口用例模板。本申请实施例中,可以利用模板生成器基于接口文件的接口信息生成接口用例模板。接口用例模板的内容可以包括用例名称、用例编号、用例优先级、接口地址、请求方法、请求类型、前置条件、请求参数、操作步骤和预期结果等。
本申请实施例中,模板生成器在生成接口用例模板的参数数据时是已知是否符合接口参数预期的,故生成的模板用例也是能预期该参数数据执行的结果是成功还是失败。因此系统在生成接口用例模板时,也会生成对应的用例的预期执行结果。
举例来说,接口文档的部分内容可以为{“username”:“string”:“(0-10]”,“userid”:“integer”:“[0-50]”}。接口用例模板中参数“username”的测试值为“小明”、参数“userid”的测试值为“20”,对应的预期测试结果为“成功”。接口用例模板中参数“username”的测试值为“小明”、参数“userid”的测试值为“100”,对应的预期测试结果为“失败”。接口用例模板中参数“username”的测试值为“小明”、参数“userid”的测试值为“a”,对应的预期测试结果为“失败”。
步骤S104、通过所述接口用例模板和所述预期测试结果,生成所述接口用例。
本申请实施例中,在确定出待测试接口的接口用例模板和接口用例模板中每一用例对应的预期测试结果后,就可以生成待测试接口的接口用例,如此,能够实现从接口文档生成接口测试用例的自动化。
在一些实施例中,所述步骤S101、响应于接收到接口用例的生成请求,确定所述接口用例对应的接口文件,可以通过以下方式实现:
步骤S1011、响应于接收到接口用例的生成请求,确定所述接口用例对应的待测试接口;
步骤S1012、基于所述待测试接口,确定所述接口用例对应的接口文件。
这里,处理器在接收到接口用例的生成请求后,会确定出所述接口用例对应的待测试接口,进而可以根据所述待测试接口确定出对应的接口文件。
基于前述的实施例,本申请实施例再提供一种用例生成方法,所述方法应用于电子设备,图2为本申请实施例用例生成方法的实现流程示意图二,如图2所示,所述方法包括:
步骤S201、响应于接收到接口用例的生成请求,确定所述接口用例对应的接口文件;
步骤S202、对所述接口文件进行解析,得到所述接口文件的接口信息;其中,所述接口信息包括接口参数,以及所述接口参数的属性信息;
这里,接口信息主要包括接口方法、接口URL、接口请求参数和接口返回参数。进而所述接口参数包括接口请求参数和接口返回参数,所述接口参数的属性信息可以包括参数的类型、参数的取值范围、参数的描述信息等。
步骤S203、从多个预设的规则中,确定出与所述属性信息相匹配的目标规则;
本申请实施例中,可以在系统内预置一系列的接口参数数据生成规则,该一系列的接口参数数据生成规则可以与接口参数的属性信息相关,也可以与接口参数的属性信息无关。例如,该一系列的接口参数数据生成规则包括接口参数类型生成规则、接口参数边界值生成规则、接口参数特殊数据生成规则、接口参数特定类型数据生成规则等。进而,可以从该一系列的接口参数数据生成规则中确定出与接口参数的属性信息相匹配的目标规则。例如,在接口参数的属性信息为参数类型的情况下,可以从该一系列的接口参数数据生成规则中确定出接口参数类型生成规则;又如,在接口参数的属性信息为参数的取值范围的情况下,可以从该一系列的接口参数数据生成规则中确定出接口参数边界值生成规则。
步骤S204、基于所述属性信息和所述目标规则,确定所述接口参数的接口用例模板;
本申请实施例中,可以根据接口参数的属性信息和与该属性信息相匹配的目标规则,确定所述接口参数的接口用例模板。
举例来说,接口参数“userid”的属性信息为“integer”,则与该属性信息相匹配的目标规则为“根据接口请求参数定义的数据类型,生成符合该参数类型的值和不符合该参数类型的值”;进而,应用该规则生成接口用例模板,模板中的测试值包括符合“integer”类型的参数值“1”,以及不符合“integer”类型的参数值“a”。
又如,接口参数“userid”的属性信息为“[0-50]”,则与该属性信息相匹配的目标规则为“根据接口的参数取值范围,生成随机界内测试值、边界测试值及随机界外测试值的参数”。进而,应用该规则生成接口用例模板,模板中的测试值包括随机的界内测试值“40”,边界测试值“0”“50”,随机的界外测试值“-10”和“60”。
步骤S205、基于所述接口文件的接口信息,确定所述接口用例模板对应的预期测试结果;
步骤S206、通过所述接口用例模板和所述预期测试结果,生成所述接口用例。
基于前述的实施例,本申请实施例再提供一种用例生成方法,所述方法应用于电子设备,所述方法包括:
步骤S211、响应于接收到接口用例的生成请求,确定所述接口用例对应的接口文件;
步骤S212、对所述接口文件进行解析,得到所述接口文件的接口信息;其中,所述接口信息包括接口参数,以及所述接口参数的参数类型;
举例来说,接口文档的部分内容可以为{“username”:“string”:“(0-10]”,“userid”:“integer”:“[0-50]”}。该接口文档中包括两个接口参数“username”和“userid”,其中,接口参数“username”的参数类型是“string”,接口参数“userid”的参数类型是“integer”。
步骤S213、从多个预设的规则中,确定目标规则为生成与所述参数类型匹配的测试值,以及与所述参数类型不匹配的测试值;
本申请实施例中,在接口参数的属性信息为参数类型的情况下,可以从多个预设的规则中,确定出与参数类型相匹配的目标规则;其中,与参数类型相匹配的目标规则为:生成与参数类型匹配的测试值,以及与所述参数类型不匹配的测试值。
步骤S214、基于所述接口参数的参数类型和所述目标规则,确定所述接口参数的接口用例模板;
举例来说,接口文档的部分内容可以为{“userid”:“integer”:“[0-50]”},则所述接口参数“userid”的参数类型为“integer”,所述目标规则为“生成与该参数类型匹配的测试值,以及与该参数类型不匹配的测试值”。进而,确定所述接口参数的接口用例模板;其中,所述接口用例模板中与参数类型匹配的测试值为“40”,与参数类型不匹配的测试值为“a”。
步骤S215、基于所述接口文件的接口信息,确定所述接口用例模板对应的预期测试结果;
举例来说,接口文档的部分内容可以为{“userid”:“integer”:“[0-50]”},则接口用例模板中测试值“40”对应的用例预期测试结果为“成功”,接口用例模板中测试值“a”对应的用例预期测试结果为“失败”。
步骤S216、通过所述接口用例模板和所述预期测试结果,生成所述接口用例。
基于前述的实施例,本申请实施例再提供一种用例生成方法,所述方法应用于电子设备,所述方法包括:
步骤S221、响应于接收到接口用例的生成请求,确定所述接口用例对应的接口文件;
步骤S222、对所述接口文件进行解析,得到所述接口文件的接口信息;其中,所述接口信息包括接口参数,以及所述接口参数的取值范围;
举例来说,接口文档的部分内容可以为{“username”:“string”:“(0-10]”,“userid”:“integer”:“[0-50]”}。该接口文档中包括两个接口参数“username”和“userid”,其中,接口参数“username”的取值范围是(0-10]个字符,接口参数“userid”的取值范围是[0-50]的整数。
步骤S223、从多个预设的规则中,确定目标规则为生成位于所述取值范围内的测试值、位于所述取值范围外的测试值,以及位于所述取值范围边界上的测试值;
本申请实施例中,在接口参数的属性信息为取值范围的情况下,可以从多个预设的规则中,确定出与取值范围相匹配的目标规则;其中,与取值范围相匹配的目标规则为:生成位于取值范围内的测试值、位于取值范围外的测试值,以及位于取值范围边界上的测试值。
步骤S224、基于所述接口参数的取值范围和所述目标规则,确定所述接口参数的接口用例模板;
举例来说,接口文档的部分内容可以为{“userid”:“integer”:“[0-50]”},则所述接口参数“userid”的取值范围为[0-50],所述目标规则为“生成位于取值范围内的测试值、位于取值范围外的测试值,以及位于取值范围边界上的测试值”。进而,确定所述接口参数的接口用例模板;其中,所述接口用例模板中位于取值范围内的测试值为“40”、位于取值范围外的测试值为“-3”和“60”,位于取值范围边界上的测试值为“0”和“50”。
步骤S225、基于所述接口文件的接口信息,确定所述接口用例模板对应的预期测试结果;
举例来说,接口文档的部分内容可以为{“userid”:“integer”:“[0-50]”},则接口用例模板中测试值“40”对应的用例预期测试结果为“成功”,接口用例模板中测试值“-3”和测试值“60”对应的用例预期测试结果为“失败”,接口用例模板中测试值“0”和测试值“50”对应的用例预期测试结果为“成功”。
步骤S226、通过所述接口用例模板和所述预期测试结果,生成所述接口用例。
基于前述的实施例,本申请实施例再提供一种用例生成方法,所述方法应用于电子设备,图3为本申请实施例用例生成方法的实现流程示意图三,如图3所示,所述方法包括:
步骤S301、响应于接收到接口用例的生成请求,确定所述接口用例对应的接口文件;
步骤S302、对所述接口文件进行解析,得到所述接口文件的接口信息;其中,所述接口信息包括接口参数、所述接口参数的属性信息、接口地址和接口方法;
这里,接口地址即接口URL;接口方法即接口请求方式,常见的接口请求方式有新增、修改、删除和查询。
步骤S303、从多个预设的规则中,确定出与所述属性信息相匹配的目标规则;
步骤S304、基于所述属性信息和所述目标规则,确定所述接口参数的测试值;
步骤S305、基于所述测试值、所述接口地址和所述接口参数对应的接口方法,确定所述接口参数的接口用例模板;
这里,就是针对接口URL及URL的一些方法进行设计的测试用例,URL方法的差异形成不同的测试用例。接口方法、接口URL和接口参数构成测试点,并且对于测试点而言接口方法和接口URL是固定的(即被测对象是固定的),但是接口参数是需要设计的部分,就是真正测试到的接口内容。
步骤S306、基于所述接口文件的接口信息,确定所述接口用例模板对应的预期测试结果;
步骤S307、通过所述接口用例模板和所述预期测试结果,生成所述接口用例。
基于前述的实施例,本申请实施例再提供一种用例生成方法,所述方法应用于电子设备,所述方法包括:
步骤S311、响应于接收到接口用例的生成请求,确定所述接口用例对应的接口文件;
步骤S312、对所述接口文件进行解析,得到所述接口文件的接口信息;其中,所述接口信息包括接口参数,以及所述接口参数的属性信息;
步骤S313、从多个预设的规则中,确定出与所述属性信息相匹配的目标规则;
步骤S314、基于所述属性信息和所述目标规则,确定所述接口参数的接口用例模板;
步骤S315、获取表明取值为空的特定数据;
步骤S316、将所述特定数据作为测试值对所述接口参数进行处理,得到所述接口参数的接口用例模板;
本申请实施例中,除了根据接口参数的属性信息确定接口用例模板中的测试值外,还可以获取一些特定数据,例如0、None、空字符串等特定数据,然后将该特定数据作为测试值对接口参数进行处理,得到该接口参数的接口用例模板。
步骤S317、基于所述接口文件的接口信息,确定所述接口用例模板对应的预期测试结果;
举例来说,接口文档的部分内容可以为{“username”:“string”:“(0-10]”,“userid”:“integer”:“[0-50]”},将空字符串作为测试值对接口参数“username”进行处理后,确定接口用例模板中测试值空字符串对应的用例预期测试结果为“失败”;将“None”作为测试值对接口参数“userid”进行处理后,确定接口用例模板中测试值“None”对应的用例预期测试结果为“失败”。
步骤S318、通过所述接口用例模板和所述预期测试结果,生成所述接口用例
基于前述的实施例,本申请实施例再提供一种用例生成方法,所述方法应用于电子设备,所述方法包括:
步骤S321、响应于接收到接口用例的生成请求,确定所述接口用例对应的接口文件;
步骤S322、对所述接口文件进行解析,得到所述接口文件的接口信息;其中,所述接口信息包括接口参数、所述接口参数的属性信息、接口地址和接口方法;
步骤S323、从多个预设的规则中,确定出与所述属性信息相匹配的目标规则;
步骤S324、基于所述属性信息和所述目标规则,确定所述接口参数的测试值;
步骤S325、基于所述测试值、所述接口地址和所述接口参数对应的接口方法,确定所述接口参数的接口用例模板;
步骤S326、基于所述接口文件的接口信息,确定所述接口用例模板对应的预期测试结果;
步骤S327、在所述接口信息中包含的接口参数的数量大于等于2的情况下,确定接口用例模板中每一接口参数的测试值;
例如,对于接口参数A,模板中取值集合为{1,3,5},即接口参数A的测试值为1、3和5;对于接口参数B,模板中取值集合为{2,4},即接口参数B的测试值为2和4。
步骤S328、对不同接口参数的所述测试值的取值进行排列组合,得到至少一组测试值;
例如,对于接口参数A,模板中取值集合为{1,3,5},即接口参数A的测试值为1、3和5,对于接口参数B,模板中取值集合为{2,4},即接口参数B的测试值为2和4,则生成的测试用例中的参数组合包括:{1,2}、{1,4}、{3,2}、{3,4}、{5,2}和{5,4}。即,将接口参数A的第一个测试值和接口参数B的第一个测试值组合,获得参数组合{1,2}为该接口的一个测试用例;将接口参数A的第一个测试值和接口参数B的第二个测试值组合,获得参数组合{1,4}为该接口的又一个测试用例,以此类推,直至获取到所有的参数组合。
步骤S329、基于所述至少一组测试值和每一组测试值对应的预期测试结果,生成每一组测试值对应的接口用例。
本申请实施例中,自动化测试平台会解析接口用例模板生成接口测试用例。对于模板中存在的多个参数,默认采用笛卡尔积方法,组合生成多种场景的测试用例。
基于前述的实施例,本申请实施例提供一种基于接口API(ApplicationProgramming Interface,应用程序接口)文档自动生成接口测试用例模板及接口测试用例的方法,该方法的主要实现方式为:
(1)根据接口API文档,通过系统的接口解析模块,自动解析获取待测试接口的相关信息,所述相关信息包括接口路径(即接口地址),例如接口的URL,所述相关信息还包括接口方法,以及接口参数,例如接口请求参数、接口返回参数等信息。
(2)系统解析出接口的相关信息后,通过系统的接口用例模板生成器,生成接口用例模板。在该接口用例模板生成器中预置了一系列的接口参数数据生成规则,包括接口参数类型生成规则、接口参数边界值生成规则、接口参数特殊数据生成规则和接口参数特定类型数据生成规则等。其中,所述接口参数类型生成规则,用于根据解析得到的接口的参数类型,自动生成校验接口参数类型的测试用例。所述接口参数边界值生成规则,用于根据解析得到的接口指定参数类型及取值范围,自动生成校验接口参数取值的测试用例,所述参数取值包括生成界内测试值、边界测试值及界外测试值的用例。所述接口参数特殊数据生成规则,用于根据解析得到的接口参数,自动生成特殊数据的测试用例,例如参数取值为0、None、空字符串等特殊数据。所述接口参数特定类型数据生成规则,用于自动生成时间戳、UTC(Universal Time Coordinated,协调世界时)等特殊时间格式、Base64等特殊图片数据等类型数据的测试用例。
这里,接口用例模板是对接口中的某一参数而言,对于某一参数都有一系列的方式,模板参数使用上的组合才会定义到生成一个具体用例的情况。模板是对某个参数使用规则的一个指令,用例是对接口包括的所有参数按照模板形式去组合生成的。
(3)自动化测试平台根据生成的接口用例模板,生成一系列的接口测试用例。
这里,系统可以理解为软件的一些功能,是自动化测试平台里面的某一些方式,是在自动化测试平台上去使用的。
上述方法能够自动解析接口API文档并根据预置的系统参数生成策略,自动生成接口自动化测试模板及接口测试用例,下面对完整的自动生成接口测试用例流程进行详细的说明:
图4为本申请实施例用例生成方法的实现流程示意图四,如图4所示,所述方法包括:
步骤S401、确定接口文档;
这里,产品对外提供一系列的API能力,接口文档就是对这些API如何使用、具有何种功能的一个描述文档。其他产品需要用到这些功能的话可以参考API文档(即接口文档)去调用这个接口实现一定的能力。
步骤S402、利用接口解析模块解析所述接口文档,生成接口信息;
这里,接口文档一般为存储在git仓库(即gitlab仓库)中的swagger.json格式的文件。接口解析模块通过解析swagger文件,获取到待测试接口的相关信息,包括接口的方法,例如Get方法、Post方法、Delete方法和Patch方法,接口的路径,接口请求的参数、接口预期返回的响应等。
步骤S403、利用模板生成器基于解析出的所述接口信息,生成测试用例模板;
本申请实施例中,接口模板生成器根据解析到的接口文档中的接口相关信息,配合系统内预置的接口参数数据生成规则生成接口用例模板。系统内预置的接口参数数据生成规则包括接口参数类型生成规则、接口参数边界值生成规则、接口参数特殊数据生成规则、接口参数特定类型数据生成规则等。
其中,接口参数类型生成规则为,根据接口请求参数定义的数据类型,生成符合该类型的值和不符合该参数类型的值。例如,当接口参数类型为整型int型时,应用该规则生成符合预期的参数:0,以及不符合预期的参数:随机的字符串、布尔值、浮点的数字、数组等。
接口参数边界值生成规则为,根据接口的参数类型及指定的参数取值范围,生成随机界内测试值、边界测试值及随机界外测试值的参数。例如,接口参数类型为整型int型,接口参数的取值范围为[0,100]时,应用该规则生成符合预期的参数:随机的界内测试值[0,100]内的任一整数,边界测试值:0、100、-1、101,随机的界外测试值(-∞,0)中的任一整数、(100,+∞)中的任一整数。
接口参数特殊数据生成规则为,根据接口参数自动生成特殊数据的测试用例。例如,给接口参数生成测试值为0、None、空字符串等特殊数据的测试用例。
接口参数特定类型数据生成规则,主要当接口参数为指定类型如时间戳、UTC时间、Base64图片数据等,生成相应的符合参数格式要求的测试用例。
当然,本申请实施例中接口模板生成器在生成接口用例模板的参数数据时是已知是否符合接口参数预期的,故生成的模板用例也是能预期该接口执行的结果是成功还是失败。所以,系统在生成用例模板时,也会生成相应的对应的用例的预期执行结果。进而,后续自动化测试平台会根据生成的接口用例模板和对应的预期执行结果,批量生成接口测试用例。
步骤S404、自动化测试平台根据生成的接口用例模板批量生成接口测试用例。
本申请实施例中,自动化测试平台会解析接口模板生成接口测试用例。对于模板中存在的多个参数,默认采用笛卡尔积方法,组合生成多种场景的测试用例。例如对于参数a,模板中取值为集合{1,3,5},对于参数b,模板中取值为集合{2,4},则生成的测试用例中的参数组合为[{1,2},{1,4},{3,2},{3,4},{5,2},{5,4}]。即将接口参数a的第一个值和接口参数b的第一个值组合,获得{1,2},为该接口的一个测试用例;将接口参数a的第一个值和接口参数b的第二个值组合,获得{1,4}为该接口的又一测试用例,以此类推。
需要说明的是,在使用过程中测试人员可以根据实际的接口情况,只选择正向的参数值(即符合接口参数使用要求的参数值),使用笛卡尔积方法,组合生成正向的测试用例。
也就是说,相比于相关技术中由测试人员根据接口文档进行测试点拆分、设计及实现测试用例,本申请实施例实现了从接口文档自动生成接口测试用例的自动化;相比于相关技术中需要测试人员手动从文档中获取相关信息,本申请实施例可以解析接口文档;相比于相关技术中接口测试用例由测试人员主观设计,受限于测试人员的水平,本申请实施例可以按照一定的策略,自动设计接口测试用例。
本申请实施例提供的用例生成方法能够达到以下技术效果:(1)实现从接口文档生成接口测试用例的自动化;(2)完成对接口文档的解析,获取接口相关信息,为测试用例的设计提供便利;(3)可以按照系统的预置策略自动生成接口测试用例,避免由于测试人员的能力限制导致的测试用例覆盖不全的情况。
如此,在需要进行接口自动化测试的场景,可以利用本申请实施例中的方法自动生成接口测试用例,当然也可以利用本申请实施例中的方法自动生成接口测试用例模板。
基于前述的实施例,本申请实施例提供一种用例生成装置,该装置包括所包括的各单元、以及各单元所包括的各子单元和各模块、以及各模块所包括的各子模块和各部件,可以通过电子设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为CPU(Central Processing Unit,中央处理器)、MPU(MicroprocessorUnit,微处理器)、DSP(Digital Signal Processing,数字信号处理器)或FPGA(FieldProgrammable Gate Array,现场可编程门阵列)等。
图5为本申请实施例用例生成装置的组成结构示意图,如图5所示,所述装置500包括:
第一确定单元501,用于响应于接收到接口用例的生成请求,确定所述接口用例对应的接口文件;
文件解析单元502,用于对所述接口文件进行解析,得到所述接口文件的接口信息;
第二确定单元503,用于基于所述接口文件的接口信息,确定接口用例模板和所述接口用例模板对应的预期测试结果;
用例生成单元504,用于通过所述接口用例模板和所述预期测试结果,生成所述接口用例。
在一些实施例中,所述接口信息包括接口参数,以及所述接口参数的属性信息;
所述第二确定单元503,包括:
规则确定模块,用于从多个预设的规则中,确定出与所述属性信息相匹配的目标规则;
第一模板确定模块,用于基于所述属性信息和所述目标规则,确定所述接口参数的接口用例模板。
在一些实施例中,所述属性信息包括参数类型,所述规则确定模块,包括:
第一规则确定子模块,用于从多个预设的规则中,确定所述目标规则为生成与所述参数类型匹配的测试值,以及与所述参数类型不匹配的测试值。
在一些实施例中,所述属性信息包括取值范围,所述规则确定模块,包括:
第二规则确定子模块,用于从多个预设的规则中,确定所述目标规则为生成位于所述取值范围内的测试值、位于所述取值范围外的测试值,以及位于所述取值范围边界上的测试值。
在一些实施例中,所述接口信息还包括接口地址和接口方法;
所述第一模板确定模块,包括:
测试值确定部件,用于基于所述属性信息和所述目标规则,确定所述接口参数的测试值;
模板确定部件,用于基于所述测试值、所述接口地址和所述接口参数对应的接口方法,确定所述接口参数的接口用例模板。
在一些实施例中,在所述接口信息中包含的接口参数的数量大于等于2的情况下,所述用例生成单元504,包括:
测试值确定模块,用于确定接口用例模板中每一接口参数的测试值;
排列组合模块,用于对不同接口参数的所述测试值的取值进行排列组合,得到至少一组测试值;
用例生成模块,用于基于所述至少一组测试值和每一组测试值对应的预期测试结果,生成每一组测试值对应的接口用例。
在一些实施例中,所述第二确定单元503,还包括:
数据确定模块,用于获取表明取值为空的特定数据;
第二模板确定模块,用于将所述特定数据作为测试值对所述接口参数进行处理,得到所述接口参数的接口用例模板。
在一些实施例中,所述第一确定单元501,包括:
接口确定模块,用于响应于接收到接口用例的生成请求,确定所述接口用例对应的待测试接口;
接口文件确定模块,用于基于所述待测试接口,确定所述接口用例对应的接口文件。
以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述的用例生成方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机、服务器等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、ROM(Read Only Memory,只读存储器)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。
对应地,本申请实施例提供一种电子设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述实施例中提供的用例生成方法中的步骤。
对应地,本申请实施例提供一种可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述用例生成方法中的步骤。
对应地,本申请实施例提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行本申请实施例上述的用例生成方法。
这里需要指出的是:以上设备、存储介质、程序产品、程序实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请设备、存储介质、程序产品、程序实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
需要说明的是,图6为本申请实施例电子设备的一种硬件实体示意图,如图6所示,该电子设备600的硬件实体包括:处理器601、通信接口602和存储器603,其中
处理器601通常控制电子设备600的总体操作。
通信接口602可以使电子设备600通过网络与其他服务器或电子设备或平台通信。
存储器603配置为存储由处理器601可执行的指令和应用,还可以缓存待处理器601以及电子设备600中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过FLASH(闪存)或RAM(Random Access Memory,随机访问存储器)实现;
其中,电子设备600中的各个硬件实体通过总线604耦合在一起。可理解,总线604用于实现这些硬件实体之间的连接通信。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (11)

1.一种用例生成方法,其特征在于,所述方法包括:
响应于接收到接口用例的生成请求,确定所述接口用例对应的接口文件;
对所述接口文件进行解析,得到所述接口文件的接口信息;
基于所述接口文件的接口信息,确定接口用例模板和所述接口用例模板对应的预期测试结果;
通过所述接口用例模板和所述预期测试结果,生成所述接口用例。
2.根据权利要求1所述的方法,其特征在于,所述接口信息包括接口参数,以及所述接口参数的属性信息;
所述基于所述接口文件的接口信息,确定接口用例模板,包括:
从多个预设的规则中,确定出与所述属性信息相匹配的目标规则;
基于所述属性信息和所述目标规则,确定所述接口参数的接口用例模板。
3.根据权利要求2所述的方法,其特征在于,所述属性信息包括参数类型,所述从多个预设的规则中,确定出与所述属性信息相匹配的目标规则,包括:
从多个预设的规则中,确定所述目标规则为生成与所述参数类型匹配的测试值,以及与所述参数类型不匹配的测试值。
4.根据权利要求2所述的方法,其特征在于,所述属性信息包括取值范围,所述从多个预设的规则中,确定出与所述属性信息相匹配的目标规则,包括:
从多个预设的规则中,确定所述目标规则为生成位于所述取值范围内的测试值、位于所述取值范围外的测试值,以及位于所述取值范围边界上的测试值。
5.根据权利要求2至4任一项所述的方法,其特征在于,所述接口信息还包括接口地址和接口方法;
所述基于所述属性信息和所述目标规则,确定所述接口参数的接口用例模板,包括:
基于所述属性信息和所述目标规则,确定所述接口参数的测试值;
基于所述测试值、所述接口地址和所述接口参数对应的接口方法,确定所述接口参数的接口用例模板。
6.根据权利要求5所述的方法,其特征在于,在所述接口信息中包含的接口参数的数量大于等于2的情况下,所述通过所述接口用例模板和所述预期测试结果,生成所述接口用例,包括:
确定接口用例模板中每一接口参数的测试值;
对不同接口参数的所述测试值的取值进行排列组合,得到至少一组测试值;
基于所述至少一组测试值和每一组测试值对应的预期测试结果,生成每一组测试值对应的接口用例。
7.根据权利要求2至6任一项所述的方法,其特征在于,所述基于所述接口文件的接口信息,确定接口用例模板,还包括:
获取表明取值为空的特定数据;
将所述特定数据作为测试值对所述接口参数进行处理,得到所述接口参数的接口用例模板。
8.根据权利要求1至7任一项所述的方法,其特征在于,所述响应于接收到接口用例的生成请求,确定所述接口用例对应的接口文件,包括:
响应于接收到接口用例的生成请求,确定所述接口用例对应的待测试接口;
基于所述待测试接口,确定所述接口用例对应的接口文件。
9.一种用例生成装置,其特征在于,所述装置包括:
第一确定单元,用于响应于接收到接口用例的生成请求,确定所述接口用例对应的接口文件;
文件解析单元,用于对所述接口文件进行解析,得到所述接口文件的接口信息;
第二确定单元,用于基于所述接口文件的接口信息,确定接口用例模板和所述接口用例模板对应的预期测试结果;
用例生成单元,用于通过所述接口用例模板和所述预期测试结果,生成所述接口用例。
10.一种电子设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1至8任一项所述方法中的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现权利要求1至8任一项所述方法中的步骤。
CN202210423925.1A 2022-04-21 2022-04-21 用例生成方法及装置、设备、存储介质 Withdrawn CN114817024A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210423925.1A CN114817024A (zh) 2022-04-21 2022-04-21 用例生成方法及装置、设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210423925.1A CN114817024A (zh) 2022-04-21 2022-04-21 用例生成方法及装置、设备、存储介质

Publications (1)

Publication Number Publication Date
CN114817024A true CN114817024A (zh) 2022-07-29

Family

ID=82505152

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210423925.1A Withdrawn CN114817024A (zh) 2022-04-21 2022-04-21 用例生成方法及装置、设备、存储介质

Country Status (1)

Country Link
CN (1) CN114817024A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117033234A (zh) * 2023-08-24 2023-11-10 广东保伦电子股份有限公司 一种接口测试方法、装置、设备及介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117033234A (zh) * 2023-08-24 2023-11-10 广东保伦电子股份有限公司 一种接口测试方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
CN108984389B (zh) 一种应用程序测试方法及终端设备
CN110377462B (zh) 接口测试方法、装置及终端设备
CN111444103B (zh) 一种Web页面自动化测试方法及相关设备
CN109062807B (zh) 测试应用程序的方法及装置、存储介质、电子装置
CN112035344A (zh) 多场景测试方法、装置、设备和计算机可读存储介质
CN116204438A (zh) 测试用例生成方法、自动化测试方法和相关装置
CN115118582A (zh) 日志分析的方法和装置
CN114817024A (zh) 用例生成方法及装置、设备、存储介质
CN111752834A (zh) 自动化测试方法和装置
CN111367531A (zh) 代码处理方法及装置
CN112395182A (zh) 自动化测试方法、装置、设备及计算机可读存储介质
CN117493188A (zh) 接口测试方法及装置、电子设备及存储介质
CN112235124A (zh) 一种皮基站配置方法、装置、存储介质和电子装置
CN116346660A (zh) 基于依赖替换服务的数据处理方法、装置、设备及介质
CN114721943A (zh) 测试范围的确定方法和装置
CN113609014A (zh) 一种接口字段校验方法、装置、存储介质及电子设备
CN114371866A (zh) 业务系统的版本重构测试方法、装置和设备
CN112988588A (zh) 客户端软件调试方法、装置、存储介质及电子设备
CN110048940A (zh) 即时通信消息的发送方法、装置、服务器及可读存储介质
CN113141366B (zh) 报文报送方法及装置、存储介质和电子设备
CN113608996B (zh) 一种镜像编译测试方法、系统、装置及可读存储介质
CN112950138B (zh) 协同开发的状态管理方法、装置和服务器
CN115098075A (zh) 一种多系统集成方法、装置、电子设备及介质
CN115220822A (zh) 接口挡板的实现方法及装置
CN115543807A (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
WW01 Invention patent application withdrawn after publication

Application publication date: 20220729

WW01 Invention patent application withdrawn after publication