CN110865941A - 接口测试用例生成方法、装置和系统 - Google Patents
接口测试用例生成方法、装置和系统 Download PDFInfo
- Publication number
- CN110865941A CN110865941A CN201911096855.8A CN201911096855A CN110865941A CN 110865941 A CN110865941 A CN 110865941A CN 201911096855 A CN201911096855 A CN 201911096855A CN 110865941 A CN110865941 A CN 110865941A
- Authority
- CN
- China
- Prior art keywords
- interface
- test
- test case
- intelligent analysis
- information
- 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
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
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
技术领域
本发明涉及计算机自动化领域,特别涉及一种接口测试用例生成方法、装置和接口测试方法、装置及相应系统。
背景技术
自动化是软件研发中一个重要环节。后台接口测试自动化作为提升回归测试效率和质量的重要工具,越来越受到大家的重视。
目前比较普遍的做法有:单元测试UT(Java、Python、PHP等语言都有相关单元测试工具)、接口测试工具(各大厂商一般都有自研工具;开源社区也有一些开源工具,例如:去哪儿开源的YAPI工具)、基于压测工具LoadRunner、Jmeter等的一些录制回放工具。
随着软件研发的不断完善,对软件质量要求和后台接口自动化的要求不断提高。目前,各种接口测试方案均需要大量有编程能力的人员进行维护,同时测试脚本统一性差,导致回归测试效率低,自动化功能开发、维护成本高,最终导致项目难以落地。
发明内容
为解决接口测试用例需要人工编写,导致接口测试效率和质量低、维护成本高的问题,本发明提供一种接口测试用例生成方法、生成装置,一种接口测试方法、测试装置和一种接口测试系统。所述技术方案具体如下:
本发明提供一种接口测试用例生成方法和装置,使得接口测试用例生成智能化。
第一方面,提供一种接口测试用例生成方法,其包括:
采集接口信息;
调取代码,采用异步的方式对所述接口参数进行智能分析,提取接口参数;
对所述接口参数的智能分析结果进行排列组合,生成测试用例。
第二方面,提供一种接口测试用例生成装置,其特征在于,所述装置包括:
采集模块,用于采集接口信息;
智能分析模块,用于调取代码,提取接口参数,采用异步的方式对所述接口参数进行分析;
用例生成模块,用于对接口参数进行排列组合,生成测试用例。
基于此,本发明提供一种接口测试的方法、装置和系统,使得接口测试智能化。
第三方面,本发明提供一种接口测试方法,其特征在于,
从用例库中调取所有接口的测试用例,其中所述测试用例根据上述接口测试用例生成方法生成;
在测试流水线上运行自动化脚本。
第四方面,提供一种接口测试装置,其包括:
调取模块,用于调取测试用例,其中所述测试用例根据上述接口测试用例生成方法生成;
自动化执行系统,用于运行自动化脚本。
本申请还提供一种用于接口测试的计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面接口测试用例生成方法和第三方面接口测试方法。
综上所述,通过采用异步的方式智能分析采集到的接口信息,提取接口参数,并对接口参数排列组合,生成用例的技术手段,使接口测试用例能够自动生成,进而接口测试可以自动化完成,解决了接口测试用例需要人工编写、接口测试需要人工参与的问题,提高了用例编写和接口测试的效率和质量,进而降低了运维成本。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例中接口测试用例生成方法的流程示意图;
图2为本发明另一实施例中接口测试用例生成装置的架构示意图;
图3为本发明另一实施例中接口测试方法的流程示意图;
图4为本发明另一实施例中接口测试装置的架构示意图;
图5为本发明另一实施例中接口测试系统的流程示意图;
图6为本发明另一实施例中接口测试系统的架构示意图。
具体实施方式
下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
实施例1
请参见图1,其示出一种接口测试用例生成方法的流程示意图,该方法可以用于根据采集接口信息,智能分析接口信息,自动生成接口测试所需测试用例,该方法具体方案如下:
001,采集接口信息。
例如在tomcat上抓取被测服务接口信息。
002,调取代码,采用异步的方式对所述接口信息进行智能分析,提取接口参数。
其中智能分析指利用代码从接口信息中提取接口参数,代码从GIT仓中提取。根据服务的名称,存在服务名称和代码库的映射关系表,此表可以通过规则自动生成,如果不符合服务规则的关系,则需要手工维护。通过这个映射关系,可以将接口根据服务定位到GIT仓库中的对应的代码,并且能够将该代码复制到接口分析所在服务器。没有代码的工程,需要对编译文件进行反编译解析操作。
采集接口信息时已经拿到了每个接口的报文,但是并不知道各个接口字段的具体信息,如类型,长短限制、类型限制等,需要通过代码,对接口信息进行智能分析,获取接口具体参数。接口信息包括:入参类型、入参限制等,例如,如果入参类型是对象,对接口信息进行递归分析。
递归分析的具体内容,以入参的递归分析为例:在方法A的入参中,不只是简单地类型,如Int、String、Double等,而是复杂的类型如Class,Object等。并且在Class中还包含其他的Class,依次包含下去。需要通过逐层分析各个参数的类型,递归找到最后的简单类型。
如果采集的信息涉及敏感数据(如金融系统中的客户数据),此处对数据进行如脱敏、按规则填充等工作。
003,对所述接口参数进行排列组合,生成测试用例。
接口类型可以是如枚举、String、Int、Long、double等,如在接口分析中遇到枚举类型,需要对各个枚举进行测试,有N个取值;例如,对有限制的入参需要对正常值,上边界值和下边界值,范围外的值进行取值,有4中可能;如果一个接口中的参数,有三个枚举,分别有5、8、6种取值可能,有4个有边界限制的参数,那么可生成用例数为5*8*6*4*4*4*4=61440种可能。
在此阶段,用户可以配置剔除用例生成规则。
具体地,该方法还包括:
所述采用异步的方式对所述接口信息进行智能分析包括对被测接口信息进行所述智能分析和对外部服务接口信息进行所述智能分析。
接口中调用的所有外部服务接口分析,主要分析外部接口的返回对程序的影响。
根据所述对外部服务接口信息进行所述智能分析的结果,生成挡板数据。
在接口智能分析中分析调用外部有接口的基础上,对mock挡板数据进行智能生成,为后续的自动化测试做准备。
具体地,该方法还包括:实时监控各接口,按预设监控策略采集所述接口信息。
其中监控策略包括按频率采集和按接口名称采集。监控策略是预先配置的,启用监控功能时直接将监控策略读取到内存,使用时按策略为后续异步分析重新采集数据。该设置的目的是为避免监控功能涉及复杂判断逻辑而影响系统的每秒事务数(TPS)。
数据采集和种在被测服务上的接口实时监控实现联动,接收监控模块发来的接口信息,以收单模式直接入库;保证数据尽可能少的丢失,如果由于系统问题不能抛异常给监控模块,监控模块也不处理任何异常,以保证监控步骤的高效性。
所述对智能分析结果进行排列组合,生成测试用例还包括对所述挡板数据的排列组合。
将生成所述用例存储到用例库。
实施例2
如图2所示,一种接口测试用例生成装置,其包括:
采集模块101,用于采集接口信息;
智能分析模块102,用于调取代码,采用异步的方式对所述接口信息进行分析,提取接口参数;
用例生成模块103,用于对接口参数进行排列组合,生成测试用例。
具体地,该装置还包括:
所述对所述接口信息进行智能分析包括对被测接口信息进行所述智能分析和对外部服务接口信息进行所述智能分析;
挡板数据生成模块,用于根据所述对外部服务接口信息进行所述智能分析的结果生成mock挡板数据。
具体地,该装置还包括:
实时监控模块,用于根据预设策略监控接口,所述实时监控模块与所述采集模块联动;
用例库,用于存储所述生成用例。
采集模块和种在被测服务上的接口实时监控模块联动,接收监控模块发来的接口信息,以收单模式直接入库;保证数据尽可能少的丢失,如果由于系统问题不能抛异常给监控模块,监控模块也不会处理任何的异常,以保证监控模块的高效性。
本实施例中接口数据的具体采集方式、分析方法、用例生成方法,与实施例1中的方法相同。
实施例3
请参见图3,其示出了一种接口测试方法,该方法包括:
201,从用例库中调取所有接口的测试用例,其中所述测试用实施例1中的方法生成;
202,在测试流水线上运行自动化测试脚本。
在测试流水线上,部署自动化Docker环境,对外围服务全部mock掉,每个微服务都是一个可独立部署的单元,可不依赖任何外部服务运行。mock掉外围服务的目的是模拟每个接口的外围服务的各种返回情况,模拟一个稳定可控的组网环境:对外围接口进行模拟;第一,可以对外围接口进行控制,按照不同的测试场景进行模拟数据返回,尤其是反例的各种场景;第二,环境相对比较稳定,不依赖外部服务的稳定,避免影响测试结果。
具体地,所述在测试流水线上运行自动化测试脚本包括:
根据实施例1所述的挡板数据,设置自动化环境测试策略;
因为在微服务架构和传统整体式架构下,每个被测试的服务都会连接多个外围服务(在微服务架构下尤其明显),都会形成以本服务为中心一个发散性网络结构。该智能接口自动化测试系统,将每个服务独立部署,进行独立的自动化测试,这样就需要把相关的外围服务MOCK(用挡板服务进行模拟)掉,形成一个独立可部署的被测服务。
把接口数据分配到所述自动化环境中。
接口数据分配到自动化环境种的具体方式如图5所示,包括步骤如下:
步骤1:智能接口自动化系统将预计返回结果设置到MOCK模块中,把被测服务的外围接口的返回状态模拟成功。
步骤2,:智能接口自动化系统发送测试报文到被测服务。
步骤3:被测服务的接口,走到调用外部接口时,会路由到MOCK模块中。
步骤4:MOCK模块将步骤1中设置的报文依次返回给被测服务,进行逻辑处理。
步骤5:被测服务讲该接口的处理结果返回给智能接口自动化系统。
步骤6:智能接口自动化系统将初始化的MOCK报文设置到MOCK模块中,以达到不影响下一条脚本运行的目的。
循环执行所述测试用例。
实施例4
请参见图4,其示出了一种接口测试装置,该装置包括:
调取模块301,用于调取测试用例,其中所述测试用例根据实施例1所述的方法生成;调取模块301从用例库300调取用例。
自动化执行系统302,用于运行自动化脚本。
具体自动化执行方法与实施例3中所述方法相同。
实施例5
请参见图6,其示出了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现实施例1所述的接口测试用例生成方法和实施例3所述的接口测试方法。
用例生成服务器用于采集接口信息,智能分析接口信息,生成测试用例,并存储在用例存储数据库中,接口测试流水线从用例存储数据库中调取测试用例,在dockers环境下,将其他微服务mock屏蔽,按设计好的策略对接口进行测试。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的一种接口测试用例生成方法、接口测试装置进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
Claims (10)
1.一种接口测试用例生成方法,其特征在于,包括:
采集接口信息;
调取代码,采用异步的方式对所述接口参数进行智能分析,提取接口参数;
对所述智能分析结果进行排列组合,生成测试用例。
2.根据权利要求1所述的接口测试用例生成方法,其特征在于,该方法还包括:
所述采用异步的方式对所述接口参数进行智能分析包括对被测接口信息进行所述智能分析和对外部服务接口信息进行所述智能分析;
根据所述对外部服务接口信息进行所述智能分析的结果,生成挡板数据。
3.根据权利要求2所述的接口测试用例生成方法,其特征在于,该方法还包括:
实时监控各接口,按预设监控策略采集所述接口信息;
所述对智能分析结果进行排列组合,生成测试用例还包括对所述挡板数据的排列组合;
将生成所述用例存储到用例库。
4.一种接口测试用例生成装置,其特征在于,所述装置包括:
采集模块,用于采集接口信息;
智能分析模块,用于调取代码,采用异步的方式对所述接口信息进行分析,提取接口参数;
用例生成模块,用于对接口参数进行排列组合,生成测试用例。
5.根据权利要求4所述的接口测试用例生成装置,其特征在于,该装置还包括:
所述对所述接口信息进行智能分析包括对被测接口信息进行所述智能分析和对外部服务接口信息进行所述智能分析;
挡板数据生成模块,用于根据所述对外部服务接口信息进行所述智能分析的结果生成挡板数据。
6.根据权利要求5所述的接口测试用例生成装置,其特征在于,该装置还包括:
实时监控模块,用于根据预设策略监控接口,所述实时监控模块与所述采集模块联动;
用例库,用于存储所述生成用例。
7.一种接口测试方法,其特征在于,
从用例库中调取所有接口的测试用例,其中所述测试用例根据权利要求1~3任一所述的方法生成;
在测试流水线上运行自动化测试脚本。
8.根据权利要求7所述的接口测试方法,其特征在于,所述在测试流水线上运行自动化测试脚本包括:
根据权利要求2中生成的挡板数据,设置自动化环境测试策略;
把接口数据分配到所述自动化环境中;
循环执行所述测试用例。
9.一种接口测试装置,其特征在于,该系统包括:
调取模块,用于调取测试用例,其中所述测试用例根据权利要求1~3任一所述的方法生成;
自动化执行系统,用于运行自动化脚本。
10.一种计算机可读存储介质,其特征在于,
所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1~3任一所述的接口测试用例生成方法和权利要求7~8任一所述的接口测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911096855.8A CN110865941A (zh) | 2019-11-11 | 2019-11-11 | 接口测试用例生成方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911096855.8A CN110865941A (zh) | 2019-11-11 | 2019-11-11 | 接口测试用例生成方法、装置和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110865941A true CN110865941A (zh) | 2020-03-06 |
Family
ID=69653918
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911096855.8A Pending CN110865941A (zh) | 2019-11-11 | 2019-11-11 | 接口测试用例生成方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110865941A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111459814A (zh) * | 2020-03-30 | 2020-07-28 | 上海依图网络科技有限公司 | 自动化测试用例生成方法、装置及电子设备 |
CN112346983A (zh) * | 2020-11-24 | 2021-02-09 | 中信银行股份有限公司 | 一种测试案例自动化生成的方法和系统 |
CN113419970A (zh) * | 2021-08-24 | 2021-09-21 | 卡斯柯信号(北京)有限公司 | 一种接口故障测试方法及装置 |
CN113778779A (zh) * | 2020-11-18 | 2021-12-10 | 北京京东拓先科技有限公司 | 一种数据接口的监控方法、系统、装置、电子设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101996132A (zh) * | 2009-08-14 | 2011-03-30 | 中兴通讯股份有限公司 | 公用对象请求代理程序体系结构接口自动测试方法和装置 |
CN105005532A (zh) * | 2015-08-05 | 2015-10-28 | 广东欧珀移动通信有限公司 | 一种自动化测试应用程序接口稳定性的系统及方法 |
CN109344076A (zh) * | 2018-10-22 | 2019-02-15 | 浙江执御信息技术有限公司 | 一种基于JMeter和Jenkins的接口自动化测试方法及其装置 |
US20190188119A1 (en) * | 2017-12-14 | 2019-06-20 | Cognizant Technology Solutions India Pvt. Ltd. | System and a method for providing automated performance detection of application programming interfaces |
CN110232024A (zh) * | 2019-05-26 | 2019-09-13 | 必成汇(成都)科技有限公司 | 软件自动化测试框架及测试方法 |
-
2019
- 2019-11-11 CN CN201911096855.8A patent/CN110865941A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101996132A (zh) * | 2009-08-14 | 2011-03-30 | 中兴通讯股份有限公司 | 公用对象请求代理程序体系结构接口自动测试方法和装置 |
CN105005532A (zh) * | 2015-08-05 | 2015-10-28 | 广东欧珀移动通信有限公司 | 一种自动化测试应用程序接口稳定性的系统及方法 |
US20190188119A1 (en) * | 2017-12-14 | 2019-06-20 | Cognizant Technology Solutions India Pvt. Ltd. | System and a method for providing automated performance detection of application programming interfaces |
CN109344076A (zh) * | 2018-10-22 | 2019-02-15 | 浙江执御信息技术有限公司 | 一种基于JMeter和Jenkins的接口自动化测试方法及其装置 |
CN110232024A (zh) * | 2019-05-26 | 2019-09-13 | 必成汇(成都)科技有限公司 | 软件自动化测试框架及测试方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111459814A (zh) * | 2020-03-30 | 2020-07-28 | 上海依图网络科技有限公司 | 自动化测试用例生成方法、装置及电子设备 |
CN113778779A (zh) * | 2020-11-18 | 2021-12-10 | 北京京东拓先科技有限公司 | 一种数据接口的监控方法、系统、装置、电子设备及介质 |
CN113778779B (zh) * | 2020-11-18 | 2024-04-16 | 北京京东拓先科技有限公司 | 一种数据接口的监控方法、系统、装置、电子设备及介质 |
CN112346983A (zh) * | 2020-11-24 | 2021-02-09 | 中信银行股份有限公司 | 一种测试案例自动化生成的方法和系统 |
CN112346983B (zh) * | 2020-11-24 | 2024-05-17 | 中信银行股份有限公司 | 一种测试案例自动化生成的方法和系统 |
CN113419970A (zh) * | 2021-08-24 | 2021-09-21 | 卡斯柯信号(北京)有限公司 | 一种接口故障测试方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110865941A (zh) | 接口测试用例生成方法、装置和系统 | |
CN105094783B (zh) | 安卓应用稳定性测试的方法及装置 | |
US7596778B2 (en) | Method and system for automatic error prevention for computer software | |
US7881440B2 (en) | Method for automatic graphical profiling of a system | |
US9465718B2 (en) | Filter generation for load testing managed environments | |
CN107102947B (zh) | Atm交易流程测试装置及方法 | |
US20040153837A1 (en) | Automated testing | |
CN111124919A (zh) | 一种用户界面的测试方法、装置、设备及存储介质 | |
CN110543420B (zh) | 一种软件测试方法、系统、终端及存储介质 | |
AU2018202153A1 (en) | System and method for tool chain data capture through parser for empirical data analysis | |
CN114003451B (zh) | 一种接口测试方法、装置、系统及介质 | |
CN114546738A (zh) | 服务器通用测试方法、系统、终端及存储介质 | |
CN112463588A (zh) | 一种自动化测试系统及方法、存储介质、计算设备 | |
CN111400171B (zh) | 一种接口测试方法、系统、装置及可读存储介质 | |
CN113934642A (zh) | 一种基于动静态结合的软件兼容性测试方法 | |
CN110795338B (zh) | 一种基于前后端交互的自动化测试方法、装置及电子设备 | |
CN114490413A (zh) | 测试数据的准备方法及装置、存储介质和电子设备 | |
CN113806231A (zh) | 一种代码覆盖率分析方法、装置、设备和介质 | |
CN112699042A (zh) | 一种单元测试案例的生成方法及装置 | |
CN111813662A (zh) | 用户行为驱动的可持续集成的测试方法、装置和设备 | |
CN114218073A (zh) | 一种接口测试方法、装置、服务器及介质 | |
CN113672282B (zh) | 数据处理方法、设备、产品及存储介质 | |
KR101012805B1 (ko) | 모듈러 메시지들의 수정 방법 및 장치 | |
CN116974910A (zh) | 区块链sdk的持续交付方法、装置、存储介质以及电子设备 | |
CN112527662A (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 |