CN115237814B - 自动生成接口测试案例的方法及系统、存储介质、设备 - Google Patents
自动生成接口测试案例的方法及系统、存储介质、设备 Download PDFInfo
- Publication number
- CN115237814B CN115237814B CN202211140388.6A CN202211140388A CN115237814B CN 115237814 B CN115237814 B CN 115237814B CN 202211140388 A CN202211140388 A CN 202211140388A CN 115237814 B CN115237814 B CN 115237814B
- Authority
- CN
- China
- Prior art keywords
- parameters
- interface
- case
- test
- interface 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.)
- 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
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
技术领域
本发明涉及软件自动化测试技术领域,特别涉及一种自动生成接口测试案例的方法及系统。
背景技术
接口测试主要包括参数是否必填验证、长度验证、枚举值正确性验证、业务功能验证、性能验证等等。接口测试主要通过接口测试案例进行测试。现有的接口测试案例一般是人工进行单条编写,效率低下,而且依赖于测试人员的工作经验和技术能力,因此限制了接口测试案例的多样性。
为了改善人工编写接口测试案例效率低下的问题,行业中提出了自动生成接口测试案例的方案。目前自动生成接口测试案例的方法是根据接口参数文档进行相应配值,然后自动生成不同参数配值下的接口测试案例。这样的方法很好地解决了人工编写案例效率低下的问题,但同时也存在缺陷,例如参数间可能有关联性也可能没有关联性,按照统一规则生成的测试案例可能不太能满足应用的实际需求,即测试案例的准确性可能不高。
发明内容
本发明的目的在于提供一种自动生成接口测试案例的方法及系统,以提高自动生成的接口测试案例的准确性。
为了实现上述发明目的,本发明实施例提供了以下技术方案:
第一方面,本发明实施例中提供了一种自动生成接口测试案例的方法,包括以下步骤:
根据被测接口所有的接口入参字段,选择相应已编写完成的基础案例,所述基础案例由人工编写并调试通过,且包含被测接口测试所需的所有参数;
判断参数间是否存在关联性,若没有关联性,则采用第一规则进行配值,若有关联性,则采用第二规则进行配值;
根据配置,在基础案例的基础上,生成对应的测试数据,赋值给接口参数,从而生成新的接口测试案例。
根据本发明实施例,所述采用第一规则进行配置的步骤,包括:在参数配值时,只改变其中一个参数的取值,其余参数的取值保持基础案例中的取值不变。
根据本发明实施例,所述采用第二规则进行配置的步骤,包括:在参数配值时,同时对相互有关联性的两个或以上参数配值,其余参数的取值保持基础案例中的取值不变。
在更优化的方案中,生成新的接口测试案例之前,还包括:判断欲生成的接口测试案例是否已经存在,若存在则不生成该接口测试案例,若不存在则生成该接口测试案例。本方案中,通过预先判断接口测试案例是否已经存在,如果存在则不生成新的接口测试案例,只有在不存在的情况下才生成新的接口测试案例,如此可以避免接口测试案例重复冗余,降低数据库的存储空间。
第二方面,本发明实施例提供了一种自动生成接口测试案例的系统,包括以下功能模块:
基础案例选择模块,用于根据被测接口所有的接口入参字段,选择相应已编写完成的基础案例,所述基础案例由人工编写并调试通过,且包含被测接口测试所需的所有参数;
参数配值模块,用于判断参数间是否存在关联性,若没有关联性,则采用第一规则进行配值,若有关联性,则采用第二规则进行配值;
案例自动生成模块,用于根据配置,在基础案例的基础上,生成对应的测试数据,赋值给接口参数,从而生成新的接口测试案例。
根据本发明实施例,所述案例自动生成模块生成的接口测试案例包括校验成功的案例和校验失败的案例。
第三方面,本发明实施例提供了一种存储介质,其上存储有可运行程序,所述可运行程序被处理器运行时,实现本发明任一实施方式所述的方法的步骤。
第四方面,本发明实施例提供了一种设备,包括处理器以及存储器,所述存储器用于存储可执行程序;所述处理器用于执行所述可执行程序以实现本发明任一实施方式所述的方法的步骤。
与现有技术相比,通过本发明方案自动生成接口测试案例,不仅可以提升测试案例的生成效率,继而提升测试效率,而且可以提升测试案例的质量。经过实验对比,相比于人工编写案例,本发明案例自动生成测试效率可以提升274%,质量提升62.5%。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍, 应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为实施例中自动生成接口测试案例的方法的步骤流程图。
图2为实施例中自动生成接口测试案例的系统的功能模块图。
图3为人工编写测试案例与本发明自动生成接口测试案例的实验对比结果图。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的器件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,本实施例中提供的一种自动生成接口测试案例的方法,包括以下步骤:
S10,根据被测接口所有的接口入参字段,选择相应已编写完成的基础案例。
此处的基础案例是人工编写的测试案例,包括被测接口测试所需的所有参数,本发明方案是基于已有的基础案例进行新的测试案例自动生成。自动生成接口测试案例的前提是已确认被测接口所有的接口入参字段,并已经在接口平台编写调试通过。基础案例的请求报文中包含该接口已确认的所有上送字段。
在某些测试中,一般是对接口的参数类型、是否必填、枚举值、长度(包括最小长度和最大长度)、值大小(包括最大值和最小值)进行校验,所以此处的基础案例包括参数类型、是否必填、枚举值、最小长度、最大长度、最大值和最小值这几个参数项。参数类型目前主要包括字符型、整型、浮点型、布尔型,覆盖了常用的参数类型。是否校验必填为单项选择框,包括:是、否;所有参数类型均可进行校验是否必填。枚举值可根据实际情况进行填写,系统会对填写的每个枚举值进行校验;所有参数类型均可进行枚举值校验。长度校验只针对参数类型为字符型的字段进行校验。值大小校验除了布尔类型以外均可进行校验。
当然地,上述仅是作为举例,在其他接口测试环境中,可能还包括其他参数项,或者包含更多或更少的参数项,或者会临时增加或减少一些参数项,本发明方案对于测试案例具体包括哪些参数项是没有限制的,针对于不同情况,只需要选择对应的基础案例即可。
S20,判断参数间是否存在关联性,若没有关联性,则采用第一规则进行配值,若有关联性,则采用第二规则进行配值。
第一规则是:每条测试案例只有一个参数值发生变化,其他参数值取自选择的基础案例。也就是在参数配值时,只改变其中一个参数的取值,其余参数的取值保持基础案例中的取值不变。每改变一个参数的取值,就对应生成一个或多个接口测试案例。第一规则适合参数间没有逻辑关系的场景。
第二规则是:每个参数的每一个取值都与至少一个测试案例中其他参数的取值配对过一次。也就是在参数配值时,需要同时对相互有关联性的两个或以上参数配值,其余参数的取值保持基础案例中的取值不变。比如参数A和参数B,同时必填,那么在配值时需要同时对参数A和参数B进行配值。每改变一组相互有关联性的参数的取值,就对应生成一个或多个接口测试案例。第二规则适合参数间有逻辑关系的场景。
S30,根据配置(即步骤S20中给对应参数取值),在基础案例的基础上,生成对应的测试数据,赋值给接口参数,从而生成新的接口测试案例。
本方案中,会同时生成校验成功的接口测试案例和校验失败的接口测试案例。比如最小长度设置为10,即会生成长度等于10的校验成功用例和长度小于10的校验失败用例,以便于对接口参数进行更好地测试。
本发明从测试效率角度,极大的节约了测试案例编写时间,大大提高接口测试案例编写效率。从质量角度,将测试人员从测试确认阶段解放出来,测试人员把更多的精力投入到测试验证阶段,去发现更多的业务缺陷。
为了验证本发明的技术优势,选择了一个测试环境的内部系统,进行了对比试验,由测试人员对该系统进行测试案例编写,与采用本发明方法自动化生成的测试案例进行对比,结果如图3所示,由图3可见,与原来手工编写接口测试案例相比,案例自动生成测试效率可以提升274%,质量提升62.5%。
另外,本发明方案还可以避免生成重复冗余的测试案例。例如,如果接口后来增加了新参数,可以只针对新参数再次生成对应的测试案例,而不需要重新生成所有参数的测试案例,因此可以避免生成重复的测试案例。
另外,上述方法中,在生成新的接口测试案例时,是以基础案例为基础,因此,如果基础案例中有加签/验签、加密/验密、数据库初始化和对应的验证点中的一项或多项,或者还有其他项目时,那么自动生成的接口测试案例也会包括这些内容,因此就不需要再重复编写这些内容,进一步提高效率。换言之,如果希望生成的接口测试案例中包括这些特殊化处理的内容,那么只需要在人工编写基础案例时进行编写,后续自动生成的新的接口测试案例中即可自然携带这些内容,而无需每条测试案例都相应编写这些特殊化处理的内容,因此效率大大提高。
另外,对于携带这些特殊化处理内容的接口测试案例,在实际测试时,如果不需要这些内容,那么也可以通过将这些内容停用(不生效)的方式使其在测试时不执行这些内容,继而不影响接口的正常测试。
在更优化的方案中,上述步骤S30 中,在生成新的接口测试案例之前,还包括:判断欲生成的接口测试案例是否已经存在,若存在则不生成该接口测试案例,若不存在则生成该接口测试案例。
在某些情况下,可能测试人员不仅仅编写了一条基础案例,而是编写了几条不同场景的基础案例,即对某一个参数进行了多种场景的赋值,比如一个参数有枚举值A、B、C,已经人工编写了带有枚举值A和枚举值B的基础案例,自动生成新的测试案例时,虽然配置项设置了A、B、C,但是只会生成枚举值C对应的测试案例,枚举值A和枚举值B对应的测试案例检测到已经有了,就不再生成,以此避免新生成的接口测试案例不重复但也不遗漏。
在其他实施例中,上述方法还可以包括批量修改测试案例的步骤,该步骤包括:首先,根据用户指令选择需要修改的多个接口测试案例;然后,接收用户输入的需要修改替换的内容,即原始内容和用于替换原始内容的新内容;然后根据用户指令选择修改方式,例如逐个替换、全部替换等;最后,根据前面的配置执行批量修改操作。本方案中,通过批量修改测试案例,可以大大提高测试案例的修改效率,同时通过批量修改可以快速增加测试案例的数量,丰富接口测试案例。
请参阅图2,基于相同的发明构思,本实施例中同时提供了一种自动生成接口测试案例的系统,该系统包括基础案例选择模块、参数配值模块和案例自动生成模块。
其中,基础案例选择模块,用于根据被测接口所有的接口入参字段,选择相应已编写完成的基础案例。此处的基础案例由人工编写并调试通过,且包含被测接口测试所需的所有参数。
其中,参数配值模块,用于判断参数间是否存在关联性,若没有关联性,则采用第一规则进行配值,若有关联性,则采用第二规则进行配值。
参数配值模块采用第一规则进行参数配值时,只改变其中一个参数的取值,其余参数的取值保持基础案例中的取值不变;采用第二规则进行参数配值时,同时对相互有关联性的两个或以上参数配值,其余参数的取值保持基础案例中的取值不变。参数配值模块在进行参数配值时,先分析参数间的关联性,然后分别针对不同情况选择不同规则进行配值,这样配值后生成的测试案例的准确性更高。
其中,案例自动生成模块,用于根据配置,在基础案例的基础上,生成对应的测试数据,赋值给接口参数,从而生成新的接口测试案例。此处生成的接口测试案例中,同时包括校验成功的案例和校验失败的案例。
对于系统的描述相对比较简略,可以参见前面方法的相关描述,此处不再赘述。
应该理解到,所揭露的系统,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
在一个实施例中,本发明还提供一种设备,所述设备中包括处理器及存储器,所述存储器中存储有可执行程序,当所述可执行程序在计算机上运行时,所述计算机执行上述任一实施例所述的自动生成接口测试案例的方法的步骤。
在一个实施例中,本发明还提供一种存储有可运行程序的存储介质,所述可运行程序被处理器运行时,其中所述可运行程序使得处理器执行上述任一实施例所述的自动生成接口测试案例的方法所包含的操作步骤。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (6)
1.一种自动生成接口测试案例的方法,其特征在于,包括以下步骤:
根据被测接口所有的接口入参字段,选择相应已编写完成的基础案例,所述基础案例由人工编写并调试通过,且包含被测接口测试所需的所有参数;
判断参数间是否存在关联性,若没有关联性,则采用第一规则进行配值,若有关联性,则采用第二规则进行配值;
所述采用第一规则进行配值的步骤,包括:在参数配值时,只改变其中一个参数的取值,其余参数的取值保持基础案例中的取值不变;
所述采用第二规则进行配值的步骤,包括:在参数配值时,同时对相互有关联性的两个或以上参数配值,其余参数的取值保持基础案例中的取值不变;
根据配值,在基础案例的基础上,生成对应的测试数据,赋值给接口参数,从而生成新的接口测试案例。
2.根据权利要求1所述的自动生成接口测试案例的方法,其特征在于,在所述生成新的接口测试案例之前,还包括:判断欲生成的接口测试案例是否已经存在,若存在则不生成该接口测试案例,若不存在则生成该接口测试案例。
3.一种自动生成接口测试案例的系统,其特征在于,包括以下功能模块:
基础案例选择模块,用于根据被测接口所有的接口入参字段,选择相应已编写完成的基础案例,所述基础案例由人工编写并调试通过,且包含被测接口测试所需的所有参数;
参数配值模块,用于判断参数间是否存在关联性,若没有关联性,则采用第一规则进行配值,若有关联性,则采用第二规则进行配值;
所述参数配值模块采用第一规则进行参数配值时,只改变其中一个参数的取值,其余参数的取值保持基础案例中的取值不变;
所述参数配值模块采用第二规则进行参数配值时,同时对相互有关联性的两个或以上参数配值,其余参数的取值保持基础案例中的取值不变;
案例自动生成模块,用于根据配值,在基础案例的基础上,生成对应的测试数据,赋值给接口参数,从而生成新的接口测试案例。
4.根据权利要求3所述的自动生成接口测试案例的系统,其特征在于,所述案例自动生成模块在生成新的接口测试案例之前,预先判断欲生成的接口测试案例是否已经存在,若存在则不生成该接口测试案例,若不存在则生成该接口测试案例。
5.一种存储介质,其上存储有可运行程序,其特征在于,所述可运行程序被处理器运行时,实现权利要求1-2中任一项所述的方法的步骤。
6.一种设备,包括处理器以及存储器,所述存储器用于存储可执行程序;其特征在于,所述处理器用于执行所述可执行程序以实现权利要求1-2中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211140388.6A CN115237814B (zh) | 2022-09-20 | 2022-09-20 | 自动生成接口测试案例的方法及系统、存储介质、设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211140388.6A CN115237814B (zh) | 2022-09-20 | 2022-09-20 | 自动生成接口测试案例的方法及系统、存储介质、设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115237814A CN115237814A (zh) | 2022-10-25 |
CN115237814B true CN115237814B (zh) | 2022-12-13 |
Family
ID=83681723
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211140388.6A Active CN115237814B (zh) | 2022-09-20 | 2022-09-20 | 自动生成接口测试案例的方法及系统、存储介质、设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115237814B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113672520A (zh) * | 2021-09-08 | 2021-11-19 | 京东科技控股股份有限公司 | 测试案例的生成方法、装置、电子设备及存储介质 |
CN114020630A (zh) * | 2021-11-09 | 2022-02-08 | 上海浦东发展银行股份有限公司 | 一种接口用例自动生成方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256558B (zh) * | 2020-09-17 | 2023-03-17 | 苏宁云计算有限公司 | 一种测试用例的生成方法、装置、计算机设备及存储介质 |
-
2022
- 2022-09-20 CN CN202211140388.6A patent/CN115237814B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113672520A (zh) * | 2021-09-08 | 2021-11-19 | 京东科技控股股份有限公司 | 测试案例的生成方法、装置、电子设备及存储介质 |
CN114020630A (zh) * | 2021-11-09 | 2022-02-08 | 上海浦东发展银行股份有限公司 | 一种接口用例自动生成方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN115237814A (zh) | 2022-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10872034B2 (en) | Method, device and computer program product for executing test cases | |
CN109063477B (zh) | 一种自动化的智能合约代码缺陷检测系统和方法 | |
US7293257B2 (en) | Method and system for efficient testing of sequences of computer-related operations | |
US20100115496A1 (en) | Filter generation for load testing managed environments | |
US20040194063A1 (en) | System and method for automated testing of a software module | |
WO2007005123A2 (en) | Automated test case result analyzer | |
Weigert et al. | Practical experiences in using model-driven engineering to develop trustworthy computing systems | |
CN110059068B (zh) | 一种分布式存储系统中的数据校验方法及数据校验系统 | |
US20140047276A1 (en) | Model-based testing of a graphical user interface | |
CN111679979A (zh) | 破坏性测试方法及装置 | |
JP2017174418A (ja) | モデルチェックのためのデータ構造抽象化 | |
Kim et al. | A new hybrid algorithm for software fault localization | |
CN118131006A (zh) | Atpg测试向量的精简方法和装置、存储介质、电子装置 | |
CN115237814B (zh) | 自动生成接口测试案例的方法及系统、存储介质、设备 | |
CN113886239A (zh) | Maven依赖检查方法及装置 | |
CN113486358A (zh) | 一种漏洞检测方法及装置 | |
CN117194230A (zh) | 不同版本板卡的fct匹配测试方法、装置、设备及介质 | |
US7017150B2 (en) | Method and apparatus for automatically isolating minimal distinguishing stimuli in design verification and software development | |
CN116089275A (zh) | 数据库测试方法、数据库系统、电子设备和存储介质 | |
EP2820547B1 (en) | Debugging method and computer program product | |
CN115687129A (zh) | 一种覆盖率报告生成方法、装置、存储介质和计算机设备 | |
CN115470152A (zh) | 测试代码生成方法、测试代码生成装置以及存储介质 | |
US10330728B2 (en) | Method and apparatus for obtaining a maximally compressed verification test set | |
US20200242253A1 (en) | System Vulnerability Mitigation | |
CN111782553A (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 |