CN112100078A - 一种生成接口测试用例的方法、装置及设备 - Google Patents

一种生成接口测试用例的方法、装置及设备 Download PDF

Info

Publication number
CN112100078A
CN112100078A CN202011036288.XA CN202011036288A CN112100078A CN 112100078 A CN112100078 A CN 112100078A CN 202011036288 A CN202011036288 A CN 202011036288A CN 112100078 A CN112100078 A CN 112100078A
Authority
CN
China
Prior art keywords
interface
test case
information
generating
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.)
Granted
Application number
CN202011036288.XA
Other languages
English (en)
Other versions
CN112100078B (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.)
China Construction Bank Corp
Original Assignee
China Construction Bank Corp
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 China Construction Bank Corp filed Critical China Construction Bank Corp
Priority to CN202011036288.XA priority Critical patent/CN112100078B/zh
Publication of CN112100078A publication Critical patent/CN112100078A/zh
Application granted granted Critical
Publication of CN112100078B publication Critical patent/CN112100078B/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/3684Test management for test design, e.g. generating new test cases
    • 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

一种生成接口测试用例的方法、装置及设备
技术领域
本申请涉及开发测试技术领域,特别涉及一种生成接口测试用例的方法、装置及设备。
背景技术
随着前后端分离逐渐成为互联网项目一种标准的开发方式,项目开发中前端与后端对Web应用程序接口的沟通成本也随之升高,例如,只要接口变更,后端需要及时和前端沟通,以便前端对接口进行调整,一旦没有及时调整,就会出现接口访问异常。因此,接口测试变得越来越重要。
现有技术中,开发人员主要基于测试框架编写测试用例进行接口测试。然而,利用现有的测试框架进行接口测试,不仅需要开发人员手动写测试用例,而且当某个接口或者某些接口需要增加、删除或者修改时,需要一个一个的编写代码进行维护。这种方式进行接口测试需要花费较长时间,从而使得接口测试效率很低。
因此,业内亟需一种可以解决上述问题的技术方案。
发明内容
本说明书实施例提供了一种生成接口测试用例的方法、装置及设备,可以提高生成接口测试用例的效率,进而提高接口测试效率。
本说明书提供的生成接口测试用例的方法、装置及设备是包括以下方式实现的。
一种生成接口测试用例的方法,包括:扫描项目代码控制层接口,获取目标接口信息;比较所述目标接口信息与预设接口信息是否一致;在所述目标接口信息与预设接口信息不一致的情况下,基于所述目标接口信息生成接口测试用例模板;根据所述接口测试用例模板和配置参数,生成接口测试用例。
一种生成接口测试用例的装置,包括:获取模块,用于扫描项目代码控制层接口,获取目标接口信息;比较模块,用于比较所述目标接口信息与预设接口信息是否一致;模板生成模块,用于在所述目标接口信息与预设接口信息不一致的情况下,基于所述目标接口信息生成接口测试用例模板;用例生成模块,用于根据所述接口测试用例模板和配置参数,生成接口测试用例。
一种生成接口测试用例的设备,包括处理器及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现本说明书实施例中任意一个方法实施例的步骤。
一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现本说明书实施例中任意一个方法实施例的步骤。
本说明书提供的一种生成接口测试用例的方法、装置及设备。一些实施例中通过扫描项目代码控制层接口,可以自动获取需要的接口信息,从而为提高后续测试效率提供基础。通过将获取的目标接口信息与预设接口信息进行比较,可以为后续确定是否生成对应的接口测试用例模板提供基础。在确定目标接口信息与预设接口信息不一致的情况下,通过根据目标接口信息生成格式化接口文档,基于格式化接口文档生成接口测试用例模板,不仅不需要开发人员提供开发文档就可以生成接口测试用例模板,而且可以使开发人员能够利用接口测试用例模板,快速生成新的测试脚本进行测试。在生成接口测试用例模板后,无需开发人员编写接口测试用例,只需要配置接口测试用例模板中各字段具体测试取值,就可以自动化高效的生成接口测试用例,从而在保证代码质量的同时,给开发人员节省大量的测试用例编写时间,提高生成接口测试用例的效率,进而提高接口测试效率。采用本说明书提供的实施方案,可以提高生成接口测试用例的效率,进而提高接口测试效率。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,并不构成对本说明书的限定。在附图中:
图1是本说明书提供的一种生成接口测试用例的方法的一个实施例的流程示意图;
图2是本说明书提供的生成接口测试用例的方法的一个具体实施例的流程示意图;
图3是本说明书提供的一种生成接口测试用例的装置的一个实施例的模块结构示意图;
图4是本说明书提供的一种接口测试系统的一个实施例的流程示意图;
图5是本说明书提供的一种生成接口测试用例的服务器的一个实施例的硬件结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书中的一部分实施例,而不是全部的实施例。基于本说明书中的一个或多个实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书实施例保护的范围。
下面以一个具体的应用场景为例对本说明书实施方案进行说明。具体的,图1是本说明书提供的一种生成接口测试用例的方法的一个实施例的流程示意图。虽然本说明书提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者部分合并后更少的操作步骤或模块单元。
本说明书提供的一种实施方案可以应用到客户端、服务器等中。所述客户端可以包括终端设备,如智能手机、平板电脑等。所述服务器可以包括单台计算机设备,也可以包括多个服务器组成的服务器集群,或者分布式系统的服务器结构等。
需要说明的是,下述实施例描述并不对基于本说明书的其他可扩展到的应用场景中的技术方案构成限制。具体的一种实施例如图1所示,本说明书提供的一种生成接口测试用例的方法的一种实施例中,所述方法可以包括以下步骤。
S0:扫描项目代码控制层接口,获取目标接口信息。
本说明书实施例中,项目可以包括java spring MVC项目。代码控制层可以理解为是java spring MVC项目中的controller层。目标接口信息可以理解为是项目执行过程中用到的接口的信息,例如接口名称、请求报文、响应报文、请求类型等。需要说明的是,本说明书实施例可以应用于java语言编写的后端工程项目。spring是一个开源的轻量级的java开发框架,可以简化应用程序的开发,可以增量引入到项目中,是一个轻量级的架构解决方案。MVC(Model View Controlle,模型-视图-控制器)是一种软件设计典范,其用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。
一些实施场景中,通常为了能够使项目结构更清晰、可读性更强、后期更方便维护和升级,会对项目信息进行分层,降低层与层之间的依赖。
一些实施场景中,通常会通过接口使测试系统与外部其他系统、系统内部各个子模块之间进行沟通。项目代码控制层接口可以用于与其他接口进行沟通。接口也可以称为应用程序接口(Application Programming Interface,API),其是一些预先定义的函数,或指软件系统不同组成部分衔接的约定,可以用来提供应用程序与开发人员基于某软件或硬件得以访问的一组例程,而又无需访问源码,或理解内部工作机制的细节。
一些实施例中,可以通过触发器扫描java spring MVC controller类中的方法,然后通过统一web应用开发中关于API定义的规范和java注解的规范来获取目标接口信息。
一些实施场景中,可以预先设定扫描时间。这样,在到达设定的扫描时间时,进行扫描操作,从而可以降低服务器压力。其中,预先设定扫描时间可以根据实际场景进行设定,例如,可以是工作日中下午3点到5点,非工作日上午8点到12点等。
一些实施场景中,为了缓解数据库压力,可以针对同一用户在预设时间内对接口修改的次数进行限定。例如一些实施场景中,在频繁提交代码的工作时间worktime内,可以设置在时间周期n_worktime有m_worktime次及以上的修改,才获取目标接口信息。在非工作时间idletime内,可以设置在时间周期j_idletime有k_idletime次及以上修改,才获取目标接口信息。其中,worktime、idletime、n_worktime、m_worktime、j_idletime、k_idletime可以根据实际场景进行设置。例如,可以设置worktime=[8:30-18:00]为工作时间,idletime=[00:00-8,30)、(18:00-24:00]为非工作时间,n_worktime=180min,m_worktime=5,j_idletime=200min,k_idletime=6。
一些实施场景中,在获取目标接口信息后,可以将其进行保存。例如,可以保存到数据库、存储器等中,这样,后续需要时可以从中获取。一些实施场景中,在获取目标接口信息后,可以为其分配对应的编号,然后在按照编号进行对应存储,这样后续可以直接根据编号快速方便的获取到对应的接口信息。其中,编号可以是字母、数字、符号中一种或多种组合生成。
S2:比较所述目标接口信息与预设接口信息是否一致。
本说明书实施例中,在获取目标接口信息后,可以进一步比较目标接口信息与预设接口信息,以便后续根据比较结果确定是否生成对应的接口测试用例模板。
一些实施场景中,预设接口信息可以为上一次获取的接口信息。一些实施场景中,预设接口信息可以为项目首次执行时对应的接口信息。其中,预设接口信息可以预先存储在数据库或存储器中。
本说明书实施例,通过将获取的目标接口信息与预设接口信息进行比较,可以为后续确定是否生成对应的接口测试用例模板提供基础。
一些实施例中,在所述目标接口信息与预设接口信息一致时,可以说明接口信息没有发生变更,此时可以继续使用预设接口信息对应的接口测试用例模板,无需生成模板接口信息对应的接口测试用例模板。
S4:在所述目标接口信息与预设接口信息不一致的情况下,基于所述目标接口信息生成接口测试用例模板。
本说明书实施例中,在所述目标接口信息与预设接口信息不一致时,可以说明接口信息发生了变更,此时可需要进一步对基于目标接口信息生成接口测试用例模板。一些实施场景中,目标接口信息与预设接口信息不一致的情况可以包括接口名称不一致、请求报文或响应报文中字段名不一致、请求报文或响应报文中字段类型不一致、请求类型不一致等。
一些实施例中,所述在所述目标接口信息与预设接口信息不一致的情况下,基于所述目标接口信息生成接口测试用例模板,可以包括:对所述目标接口信息进行格式化操作,获得格式化接口文档;基于所述格式化接口文档生成接口测试用例模板。其中,所述格式化接口文档可以包括接口名称、请求类型、请求报文、响应报文等。
一些实施场景中,由于扫描项目代码控制层接口获取的目标接口信息是从代码中获取的,其可能包括一些不规范的表达,为了使接口信息更加规范化,在目标接口信息与预设接口信息不一致的情况下,可以对目标接口信息进行格式化操作,获得格式化接口文档。其中,格式化操作可以用于将信息进行规范化。格式化接口文档可以理解为是通过对接口信息进行格式化获得。格式化接口文档可以用于生成测试用例模板。
一些实施场景中,比较所述目标接口信息与预设接口信息后,可以用预设标志对比较结果进行标记。例如一些实施场景中,在比较所述目标接口信息与预设接口信息后,可以用标志位flg来标记接口信息是否发生变更。例如,如果接口信息没有变更,可以将flg标记为0;如果接口信息有变更,则可以将flg标记为1。这样,后续可以根据对比较结果的标记,确定是否需要对接口信息进行格式化操作,以及生成格式化接口文档。一些实施场景中,首次对比时,预设接口信息即上一次获取的接口信息为空,此时可以视为接口信息有变更,flg标记为1,相应的,可以对接口信息进行格式化操作,从而生成格式化接口文档。
一些实施场景中,在生成格式化接口文档后,可以基于格式化接口文档生成接口测试用例模板。例如一些实施场景中,当格式化接口文档生成之后,可以读取格式化的接口请求报文和响应报文,根据接口文档生成对应的接口测试用例模板。其中,接口测试用例模板可以用于生成接口测试用例。接口测试用例模板也可以称为测试用例模板。接口测试用例模板可以包括接口文档对应的信息,如字段名、字段类型等。
S6:根据所述接口测试用例模板和配置参数,生成接口测试用例。
本说明书实施例中,在基于目标接口信息生成接口测试用例模板后,可以根据接口测试用例模板和配置参数,生成接口测试用例。其中,接口测试用例可以理解为是对一项特定的接口进行测试任务的描述,体现测试方案、方法、技术和策略,其内容可以包括测试接口、测试环境、输入数据、测试步骤、预期结果、测试脚本等。接口测试用例可以用于对接口进行测试。接口测试用例也可以称为测试用例。通过对接口测试可以检查接口参数传递的正确性、接口功能实现的正确性、输出结果的正确性以及对各种异常情况的容错处理的完整性和合理性。配置参数可以是与接口测试用例模板中对应的参数,其可以通过从其他库中获取,也可以通过用户输入,还可以通过其他方式获取。
一些实施例中,所述根据所述接口测试用例模板和配置参数,生成接口测试用例,可以包括:获取开发人员在所述接口测试用例模板中配置的输入输出参数;根据所述接口测试用例模板和所述输入输出参数,生成接口测试用例。
一些实施场景中,开发人员可以在接口测试用例模板中配置用例的输入输出参数,系统接收后可以根据配置好的参数以及接口测试用例模板自动生成JSON测试用例。测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,用于核实是否满足某个特定软件需求。JSON(JavaScript Object Notation,JS对象简谱)是一种轻量级的数据交换格式,其是基于ECMAScript(欧洲计算机协会制定的JS规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得JSON成为理想的数据交换语言,JSON不仅易于人阅读和编写,同时也易于机器解析和生成,可以有效地提升网络传输效率。
一些实施例中,在生成接口测试用例后,还可以调用JUnit框架执行所述接口测试用例,获得执行结果。其中,JUnit是一个Java语言的测试框架。JUnit测试是程序员测试,由于程序员知道被测试的软件如何完成功能和完成什么样的功能,所以JUnit测试也可以称为白盒测试。
一些实施场景中,所述调用JUnit框架执行所述接口测试用例,获得执行结果,可以包括:判断所述接口测试用例是否包括对数据库的操作;确定包括时,在执行完所述接口测试用例的情况下,进行事务回滚。例如一些实施场景中,当生成接口测试用例后,可以调用JUnit框架服务执行JSON测试用例,并且对涉及数据库操作的测试用例执行后做事务回滚,防止测试数据污染数据库。
一些实施场景中,可在预先配置执行测试用例的时间,这样可以根据实际场景调整执行时间。例如,可以选择定时执行或开发人员手动执行等。此外,开发人员也可以根据模板配置数据随时执行测试用例。
一些实施例中,所述获得执行结果后,可以包括:获取执行日志;基于所述执行日志,确定是否存在报错的接口测试用例。一些实施场景中,获得执行结果后,可以将执行结果输出并保存执行日志。执行日志可以用于记录执行测试用例过程中的一些信息。一些实施场景中,获得执行结果后,可以自动打印执行日志,然后根据执行日志记录的信息判断是否存在报错的测试用例,如果有报错的测试用例,可以通过预先配置的方式进行提醒。其中,预先配置的方式可以包括电话、短信、邮件等。一些实施场景中,可以将报错的测试用例对应的信息通过预先配置的方式发送给开发人员,以便开发人员进一步处理。
一些实施例中,还可以包括:比较所述接口测试用例模板与预设接口测试用例模板,获得差异信息;将所述差异信息保存。一些实施场景中,可以将每一次生成接口测试用例模板进行存储,然后对比当前生成的接口测试用例模板和上一次生成的接口测试用例模板,最后可以将不同信息存储在预先设定的对比差异文件中,这样后续通过此文件可以知悉最新测试用例变更之处。需要说明的是,由于每次生成接口测试用例模板前,均对获得的接口信息与之前的接口信息进行了比较,在接口信息不一致的情况下才生成接口测试用例模板,所以在将当前生成的接口测试用例模板和上一次生成的接口测试用例模板进行比对时,会获得差异信息。差异信息中包括不同的信息,如接口名称、字段名、请求类型等。
一些实施场景中,可以将差异信息进行展示,以便开发人员可以更直观的了解不同接口测试用例模板之间的差异,方便后续维护。
当然,上述只是进行示例性说明,本说明书实施例的方式并不限于上述举例,所属领域技术人员在本申请技术精髓的启示下,还可能做出其它变更,但只要其实现的功能和效果与本申请相同或相似,均应涵盖于本申请保护范围内。
下面结合一个具体实施例对上述方法进行说明,然而,值得注意的是,该具体实施例仅是为了更好地说明本申请,并不构成对本申请的不当限定。如图2所示,图2是本说明书提供的生成接口测试用例的方法的一个具体实施例的流程示意图。本实施例以某java后台项目开发过程中,项目用户信息接口增加了户手机号码phoneNo为例说明自动生成接口测试用例的过程。在本具体实施例中,可以包括以下步骤。
S201:运行核心系统服务和其他子业务。
本实施例中,在运行核心系统服务和其他子业务前,可以进行参数设置。其中,参数设置可以包括项目工程代码路径设置、测试用例执行时间开关、测试用例执行时间、项目代码控制层接口扫描时间等。
本实施例中,项目工程代码路径可以配置为/home/ap/demo/src/main/java/com/example/;测试用例执行时间开关timeFlg可以配置为true,测试用例执行时间testTime可以配置为15:00/1-5/startupTest。其中,测试用例执行时间开关timeFlg为true,可以表示定时执行,此时,测试用例执行时间testTime配置生效;测试用例执行时间开关timeFlg为false,可以表示手动执行,此时,测试用例执行时间testTime配置不生效。15:00/1-5/startupTest表示周一到周五每天下午3:00执行startupTest程序进行自动化测试,startupTest是测试用例执行程序。可以理解的是,测试用例执行时间配置好后,可以在该配置时机前的预设时间扫描项目代码控制层接口,获取目标接口信息,例如,可以是周一到周五每天下午3:00前一段时间。
S202:基于预设扫描时间扫描项目代码控制层接口,获取目标接口信息。
本实施例中,项目指java spring MVC项目,代码控制层指java spring MVC项目中的controller层。
本实施例中,为了缓解数据库压力,可以针对同一用户在预设时间内对接口修改的次数进行限定。其中,设置worktime=[8:30-18:00]为工作时间,idletime=[00:00-8:30)、(18:00-24:00]为非工作时间,n_worktime=180min,m_worktime=5,j_idletime=200min,k_idletime=6。
S203:在目标接口信息与上一次获取的接口信息不一致时,基于目标接口信息生成接口测试用例模板。
本实施例中,在获取目标接口信息后,可以将目标接口信息与上一次获取的接口信息进行比较。当目标接口信息与上一次获取的接口信息一致时,可以不用生成接口测试用例模板,将利用上一次获取的接口信息生成的接口测试用例模板进行接口测试。当目标接口信息与上一次获取的接口信息不一致时,可以基于目标接口信息重新生成接口测试用例模板。
本实施例中,由于用户信息接口请求报文和响应报文增加了户手机号码phoneNo字段,所以目标接口信息相比上一次获取的接口信息进行了变更,此时,可以将目标接口信息进行格式化处理,获得格式化接口文档,然后基于格式化接口文档生成接口测试用例模板。其中,格式化接口文档包括接口名称、请求类型、请求报文、响应报文等内容。如表1所示,表1是一种基于格式化接口文档生成的接口测试用例模板,其中,在请求报文、响应报文中均增加了用户手机号码phoneNo字段。
S204:根据接口测试用例模板和配置参数,生成接口测试用例。
本实施例中,开发人员可以在接口测试用例模板中配置用例的输入输出参数,这样接收用户输入的参数后,可以根据接口测试用例模板和配置参数,生成接口测试用例。
本实施例中,开发人员可以在接口测试用例模板的请求报文和响应报文phoneNo字段都填入13812345678,这样,根据接口测试用例模板和配置参数可以自动生成JSON测试用例,此时,请求报文的报文体requestEntity和响应报文的报文体responseEntity将自动增加以下JSON串:
Figure BDA0002705179560000091
Figure BDA0002705179560000101
表1
Figure BDA0002705179560000102
S205:执行接口测试用例。
本实施例中,可以基于步骤S201中设置的测试用例执行时间开关、测试用例执行时间,调用JUnit框架服务执行JSON测试用例。其中,对涉及数据库操作的测试用例执行后做事务回滚,防止测试数据污染数据库。进一步,将执行结果输出并保存执行日志。
本实施例中,由于上述对接口测试用例模板中响应报文配置的数据是预期结果,该预期结果与请求报文中输入数据一致,所以执行结果为success,表示接口测试用例执行成功。如果在步骤S204中,开发人员在接口测试用例模板为响应报文配置的phoneNo是13812341234,由于该预期结果与请求报文中输入数据不一致,所以执行结果为failed,表示接口测试用例执行失败,此时可以打印预期结果和配置数据的对比日志,并通过邮件提醒开发人员。
本实施例中,还可以存储每一次生成的接口测试用例模板,并且对比当前接口测试用例模板和上一次生成的接口测试用例模板,然后生成一个独立的对比差异文件diff_patch,通过此文件可知悉最新测试用例变更之处,以便开发人员调试。
本说明书中上述方法的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参加即可,每个实施例重点说明的都是与其他实施例的不同之处。相关之处参见方法实施例的部分说明即可。
从以上的描述中,可以看出,本申请实施例可以实现如下技术效果:通过扫描项目代码控制层接口,可以自动获取需要的接口信息,从而为提高后续测试效率提供基础。通过将获取的目标接口信息与预设接口信息进行比较,可以为后续确定是否生成对应的接口测试用例模板提供基础。在确定目标接口信息与预设接口信息不一致的情况下,通过根据目标接口信息生成格式化接口文档,基于格式化接口文档生成接口测试用例模板,不仅不需要开发人员提供开发文档就可以生成接口测试用例模板,而且可以使开发人员能够利用接口测试用例模板,快速生成新的测试脚本进行测试。在生成接口测试用例模板后,无需开发人员编写接口测试用例,只需要配置接口测试用例模板中各字段具体测试取值,就可以自动化高效的生成接口测试用例,从而可以在保证代码质量的同时,给开发人员节省大量的测试用例编写时间,提高生成接口测试用例的效率,进而提高接口测试效率。在生成接口测试用例后,通过调用JUnit框架服务自动执行测试用例,并对涉及数据库操作的用例执行后做事务回滚,可以防止测试数据污染数据库。在执行完测试用例后,基于执行日志确定存在报错的测试用例时,通过预设提醒服务通知开发人员,可以让开发人员及早发现问题并及时解决问题。通过提取不同接口测试用例模板的差异信息并展示,可以更直观让开发人员了解差异信息,从而使后续维护更加方便。
基于上述所述一种生成接口测试用例的方法,本说明书一个或多个实施例还提供一种生成接口测试用例的装置。所述的装置可以包括使用了本说明书实施例所述方法的系统(包括分布式系统)、软件(应用)、模块、组件、服务器、客户端等并结合必要的实施硬件的装置。基于同一创新构思,本说明书实施例提供的一个或多个实施例中的装置如下面的实施例所述。由于装置解决问题的实现方案与方法相似,因此本说明书实施例具体的装置的实施可以参见前述方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
具体地,图3是本说明书提供的一种生成接口测试用例的装置的一个实施例的模块结构示意图,如图3所示,本说明书提供的一种生成接口测试用例的装置可以包括:获取模块120,比较模块122,模板生成模块124,用例生成模块126。
获取模块120,可以用于扫描项目代码控制层接口,获取目标接口信息;
比较模块122,可以用于比较所述目标接口信息与预设接口信息是否一致;
模板生成模块124,可以用于在所述目标接口信息与预设接口信息不一致的情况下,基于所述目标接口信息生成接口测试用例模板;
用例生成模块126,可以用于根据所述接口测试用例模板和配置参数,生成接口测试用例。
需要说明的,上述所述的装置根据方法实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。
如图4所示,图4是本说明书提供的一种接口测试系统的一个实施例的流程示意图。该接口测试系统可以实现上述任意一项方法实施例。例如,可以用于扫描项目代码控制层接口获取目标接口信息,在目标接口信息与预设接口信息不一致的情况下,基于目标接口信息生成接口测试用例模板,以及根据接口测试用例模板和配置参数,生成接口测试用例;还可以用于调用JUnit框架执行所述接口测试用例等。上述接口测试系统可以包括:核心服务模块10、格式化接口模块20、测试用例生成模块30、测试脚本执行模块40、用例差异化分析模块50。其中,核心服务模块10可以用于祈祷系统各个模块,为各个模块配置参数。格式化接口模块20可以用于对接口信息进行格式化操作,获得格式化接口文档。测试用例生成模块30可以用根据接口测试用例模板和配置参数生成接口测试用例。测试脚本执行模块40可以用于调用JUnit框架执行接口测试用例。测试脚本可以理解为是测试用例。用例差异化分析模块50可以用于比较接口测试用例模板与预设接口测试用例模板,获得差异信息。
本说明书还提供一种生成接口测试用例的设备的实施例,包括处理器及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时可以实现上述任意一项方法实施例。例如,所述指令被所述处理器执行时实现包括以下步骤:扫描项目代码控制层接口,获取目标接口信息;比较所述目标接口信息与预设接口信息是否一致;在所述目标接口信息与预设接口信息不一致的情况下,基于所述目标接口信息生成接口测试用例模板;根据所述接口测试用例模板和配置参数,生成接口测试用例。
需要说明的,上述所述的设备根据方法或装置实施例的描述还可以包括其他的实施方式。具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。
本说明书所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的运算装置中执行。以运行在服务器上为例,图5是本说明书提供的一种生成接口测试用例的服务器的一个实施例的硬件结构框图,该服务器可以是上述实施例中的生成接口测试用例的装置或生成接口测试用例的设备。如图5所示,服务器10可以包括一个或多个(图中仅示出一个)处理器100(处理器100可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器200、以及用于通信功能的传输模块300。本领域普通技术人员可以理解,图5所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,服务器10还可包括比图5中所示更多或者更少的组件,例如还可以包括其他的处理硬件,如数据库或多级缓存、GPU,或者具有与图5所示不同的配置。
存储器200可用于存储应用软件的软件程序以及模块,如本说明书实施例中的生成接口测试用例的方法对应的程序指令/模块,处理器100通过运行存储在存储器200内的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器200可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器200可进一步包括相对于处理器100远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输模块300用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输模块300包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块300可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书提供的上述实施例所述的方法或装置可以通过计算机程序实现业务逻辑并记录在存储介质上,所述的存储介质可以计算机读取并执行,实现本说明书实施例所描述方案的效果。所述存储介质可以包括用于存储信息的物理装置,通常是将信息数字化后再以利用电、磁或者光学等方式的媒体加以存储。所述存储介质可以包括:利用电能方式存储信息的装置如,各式存储器,如RAM、ROM等;利用磁能方式存储信息的装置如,硬盘、软盘、磁带、磁芯存储器、磁泡存储器、U盘;利用光学方式存储信息的装置如,CD或DVD。当然,还有其他方式的可读存储介质,例如量子存储器、石墨烯存储器等等。
本说明书提供的上述生成接口测试用例的方法或装置实施例可以在计算机中由处理器执行相应的程序指令来实现,如使用windows操作系统的c++语言在PC端实现、linux系统实现,或其他例如使用android、iOS系统程序设计语言在智能终端实现,以及基于量子计算机的处理逻辑实现等。
需要说明的是说明书上述所述的装置、设备根据相关方法实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照对应方法实施例的描述,在此不作一一赘述。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个时可以把部分模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。
本发明是参照根据本发明实施例的方法、装置、设备的流程图和/或方框图来描述的。应理解可由计算机程序指令实现,可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
本领域技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。
以上所述仅为本说明书一个或多个实施例的实施例而已,并不用于限制本本说明书一个或多个实施例。对于本领域技术人员来说,本说明书一个或多个实施例可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在权利要求范围之内。

Claims (11)

1.一种生成接口测试用例的方法,其特征在于,包括:
扫描项目代码控制层接口,获取目标接口信息;
比较所述目标接口信息与预设接口信息是否一致;
在所述目标接口信息与预设接口信息不一致的情况下,基于所述目标接口信息生成接口测试用例模板;
根据所述接口测试用例模板和配置参数,生成接口测试用例。
2.根据权利要求1所述的方法,其特征在于,所述预设接口信息为上一次获取的接口信息或项目首次执行时对应的接口信息。
3.根据权利要求1所述的方法,其特征在于,所述在所述目标接口信息与预设接口信息不一致的情况下,基于所述目标接口信息生成接口测试用例模板,包括:
对所述目标接口信息进行格式化操作,获得格式化接口文档,所述格式化接口文档包括接口名称、请求类型、请求报文、响应报文;
基于所述格式化接口文档生成接口测试用例模板。
4.根据权利要求1所述的方法,其特征在于,所述根据所述接口测试用例模板和配置参数,生成接口测试用例,包括:
获取开发人员在所述接口测试用例模板中配置的输入输出参数;
根据所述接口测试用例模板和所述输入输出参数,生成接口测试用例。
5.根据权利要求1所述的方法,其特征在于,还包括:
调用JUnit框架执行所述接口测试用例,获得执行结果。
6.根据权利要求5所述的方法,其特征在于,所述调用JUnit框架执行所述接口测试用例,获得执行结果,包括:
判断所述接口测试用例是否包括对数据库的操作;
确定包括时,在执行完所述接口测试用例的情况下,进行事务回滚。
7.根据权利要求6所述的方法,其特征在于,所述获得执行结果后,包括:
获取执行日志;
基于所述执行日志,确定是否存在报错的接口测试用例。
8.根据权利要求1所述的方法,其特征在于,还包括:
比较所述接口测试用例模板与预设接口测试用例模板,获得差异信息;
将所述差异信息保存。
9.一种生成接口测试用例的装置,其特征在于,包括:
获取模块,用于扫描项目代码控制层接口,获取目标接口信息;
比较模块,用于比较所述目标接口信息与预设接口信息是否一致;
模板生成模块,用于在所述目标接口信息与预设接口信息不一致的情况下,基于所述目标接口信息生成接口测试用例模板;
用例生成模块,用于根据所述接口测试用例模板和配置参数,生成接口测试用例。
10.一种生成接口测试用例的设备,其特征在于,包括处理器及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现权利要求1-8中任意一项所述方法的步骤。
11.一种计算机可读存储介质,其特征在于,其上存储有计算机指令,所述指令被执行时实现权利要求1至8中任一项所述方法的步骤。
CN202011036288.XA 2020-09-27 2020-09-27 一种生成接口测试用例的方法、装置及设备 Active CN112100078B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011036288.XA CN112100078B (zh) 2020-09-27 2020-09-27 一种生成接口测试用例的方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011036288.XA CN112100078B (zh) 2020-09-27 2020-09-27 一种生成接口测试用例的方法、装置及设备

Publications (2)

Publication Number Publication Date
CN112100078A true CN112100078A (zh) 2020-12-18
CN112100078B CN112100078B (zh) 2024-05-03

Family

ID=73782688

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011036288.XA Active CN112100078B (zh) 2020-09-27 2020-09-27 一种生成接口测试用例的方法、装置及设备

Country Status (1)

Country Link
CN (1) CN112100078B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112799959A (zh) * 2021-02-24 2021-05-14 网易(杭州)网络有限公司 接口测试方法、装置、存储介质和电子装置
CN113535548A (zh) * 2021-06-21 2021-10-22 上汽通用五菱汽车股份有限公司 测试脚本生成方法、装置、设备及计算机可读存储介质
CN113760745A (zh) * 2021-05-19 2021-12-07 北京沃东天骏信息技术有限公司 一种接口自动化测试用例生成方法和装置
CN114647587A (zh) * 2022-03-30 2022-06-21 中国银行股份有限公司 确定接口正确性的方法、装置、设备、存储介质和产品
CN115470152A (zh) * 2022-11-02 2022-12-13 平安银行股份有限公司 测试代码生成方法、测试代码生成装置以及存储介质
CN117033249A (zh) * 2023-10-08 2023-11-10 卓望数码技术(深圳)有限公司 一种测试用例生成方法、装置、计算机设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130227528A1 (en) * 2012-02-29 2013-08-29 International Business Machines Corporation Paradigm for concurrency testcase generation
US20140281721A1 (en) * 2013-03-14 2014-09-18 Sap Ag Automatic generation of test scripts
CN108319547A (zh) * 2017-01-17 2018-07-24 阿里巴巴集团控股有限公司 测试用例生成方法、装置和系统
CN108446190A (zh) * 2017-02-16 2018-08-24 杭州海康威视数字技术股份有限公司 接口测试方法及装置
CN109446068A (zh) * 2018-09-26 2019-03-08 平安健康保险股份有限公司 接口测试方法、装置、计算机设备和存储介质
CN110647471A (zh) * 2019-09-26 2020-01-03 招商局金融科技有限公司 接口测试用例生成方法、电子装置及存储介质
CN110750442A (zh) * 2019-09-06 2020-02-04 平安医疗健康管理股份有限公司 测试用例的生成方法、装置、设备及存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130227528A1 (en) * 2012-02-29 2013-08-29 International Business Machines Corporation Paradigm for concurrency testcase generation
US20140281721A1 (en) * 2013-03-14 2014-09-18 Sap Ag Automatic generation of test scripts
CN108319547A (zh) * 2017-01-17 2018-07-24 阿里巴巴集团控股有限公司 测试用例生成方法、装置和系统
CN108446190A (zh) * 2017-02-16 2018-08-24 杭州海康威视数字技术股份有限公司 接口测试方法及装置
CN109446068A (zh) * 2018-09-26 2019-03-08 平安健康保险股份有限公司 接口测试方法、装置、计算机设备和存储介质
CN110750442A (zh) * 2019-09-06 2020-02-04 平安医疗健康管理股份有限公司 测试用例的生成方法、装置、设备及存储介质
CN110647471A (zh) * 2019-09-26 2020-01-03 招商局金融科技有限公司 接口测试用例生成方法、电子装置及存储介质

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112799959A (zh) * 2021-02-24 2021-05-14 网易(杭州)网络有限公司 接口测试方法、装置、存储介质和电子装置
CN113760745A (zh) * 2021-05-19 2021-12-07 北京沃东天骏信息技术有限公司 一种接口自动化测试用例生成方法和装置
CN113535548A (zh) * 2021-06-21 2021-10-22 上汽通用五菱汽车股份有限公司 测试脚本生成方法、装置、设备及计算机可读存储介质
CN113535548B (zh) * 2021-06-21 2023-01-03 上汽通用五菱汽车股份有限公司 测试脚本生成方法、装置、设备及计算机可读存储介质
CN114647587A (zh) * 2022-03-30 2022-06-21 中国银行股份有限公司 确定接口正确性的方法、装置、设备、存储介质和产品
CN115470152A (zh) * 2022-11-02 2022-12-13 平安银行股份有限公司 测试代码生成方法、测试代码生成装置以及存储介质
CN117033249A (zh) * 2023-10-08 2023-11-10 卓望数码技术(深圳)有限公司 一种测试用例生成方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN112100078B (zh) 2024-05-03

Similar Documents

Publication Publication Date Title
CN112100078A (zh) 一种生成接口测试用例的方法、装置及设备
CN109582301B (zh) 基于任务调度系统的业务处理方法、装置、设备及介质
US11113050B2 (en) Application architecture generation
CN108446223B (zh) 一种基于动态编译的业务场景自动化测试方法
CN102841841B (zh) 一种测试中的断言处理方法及系统
CN112765023B (zh) 测试用例生成方法、装置
CN110647471B (zh) 接口测试用例生成方法、电子装置及存储介质
CN108196878A (zh) 应用程序安装包的生成方法、装置、电子设备及存储介质
CN110933095A (zh) 一种报文解析方法及装置
CN104821954A (zh) 一种跨平台远程过程调用方法
CN112241360A (zh) 一种测试用例生成方法、装置、设备及存储介质
CN111475390A (zh) 日志采集系统部署方法、装置、设备及存储介质
EP3447635A1 (en) Application architecture generation
CN111158741A (zh) 监控业务模块对第三方类库依赖关系变化的方法及装置
US8661414B2 (en) Method and system for testing an order management system
KR102226463B1 (ko) 프로세스자동화프로그램과 연동되는 ui/ux솔루션제공서버, 이를 포함하는 프로세스자동화시스템, 이를 이용한 프로세스자동화방법, 및 이를 실행하기 위한 컴퓨터 프로그램
CN105404574B (zh) 一种智能卡与移动终端一致性测试方法及装置
CN107122203B (zh) 一种配置文件的设置方法及装置
CN111897738A (zh) 基于原子服务的自动化测试方法及装置
CN108959508B (zh) Sql数据生成方法及装置
CN114218072A (zh) 测试脚本生成方法、装置、存储介质及计算机设备
CN114090365A (zh) 使用动态链接库进行功能测试的方法、装置和设备
KR101792864B1 (ko) 애플리케이션 검증 시스템 및 방법
CN113778878A (zh) 接口测试方法、装置、电子设备及存储介质
CN111752601A (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