CN110321283B - 接口测试用例生成方法、装置、计算机装置及存储介质 - Google Patents

接口测试用例生成方法、装置、计算机装置及存储介质 Download PDF

Info

Publication number
CN110321283B
CN110321283B CN201910442281.9A CN201910442281A CN110321283B CN 110321283 B CN110321283 B CN 110321283B CN 201910442281 A CN201910442281 A CN 201910442281A CN 110321283 B CN110321283 B CN 110321283B
Authority
CN
China
Prior art keywords
interface
database
test case
interface test
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
Application number
CN201910442281.9A
Other languages
English (en)
Other versions
CN110321283A (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.)
Ping An Bank Co Ltd
Original Assignee
Ping An Bank 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 Ping An Bank Co Ltd filed Critical Ping An Bank Co Ltd
Priority to CN201910442281.9A priority Critical patent/CN110321283B/zh
Publication of CN110321283A publication Critical patent/CN110321283A/zh
Application granted granted Critical
Publication of CN110321283B publication Critical patent/CN110321283B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/3684Test 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

接口测试用例生成方法、装置、计算机装置及存储介质
技术领域
本发明涉及接口测试技术领域,具体涉及一种接口测试用例生成方法、装置、计算机装置及计算机存储介质。
背景技术
随着软件技术发展,越来越多软件通过平台化为用户提供服务,第三方可以根据平台提供的接口定制自己需要服务。因此,经常需要生成软件的接口测试用例进行接口测试。接口是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
目前,已有的接口自动化工具操作复杂,需要配置详细的参数属性,操作门槛要求过高。另外,对已经完成的接口测试用例的修改不方便,修改时的工作量较大。而且支持的协议较少,只支持HTTP(HyperText Transfer Protocol)、HTTPS(Hypertext TransferProtocol Secure)协议,很多协议都不能满足,如:MQ(Message Queue),TCP(TransmissionControl Protocol),ESB(EnterpriseServiceBus)等。
发明内容
鉴于以上内容,有必要提出一种接口测试用例生成方法、装置、计算机装置及计算机存储介质,其可以提高接口测试用例生成的场景适应性。
本申请的第一方面提供一种接口测试用例生成方法,所述方法包括:
获取接口的访问信息;
获取所述接口的协议类型对应的请求报文模板;
根据所述访问信息、所述请求报文模板生成所述接口的接口测试用例;
判断所述接口是否需要对数据库进行操作,若所述接口需要对数据库进行操作,确定所述数据库的数据库类型;
将所述数据库类型对应的数据库脚本添加到所述接口测试用例。
另一种可能的实现方式中,所述将所述数据库类型对应的数据库脚本添加到所述接口测试用例包括:
将所述数据库类型对应的前置的数据库脚本添加到所述接口测试用例,所述前置的数据库脚本用于在所述接口的测试开始时对所述数据库进行操作;和/或
将所述数据库类型对应的后置的数据库脚本添加到所述接口测试用例,所述后置的数据库脚本用于在所述接口的测试结束前对所述数据库进行操作。
另一种可能的实现方式中,所述方法还包括:
在所述接口测试用例中添加系统函数,所述系统函数用于在所述接口的测试过程中生成特定数据。
另一种可能的实现方式中,所述方法还包括:
若所述接口依赖于其他接口,则在所述接口测试用例中添加前置的所述其他接口的接口测试用例,所述前置的所述其他接口的接口测试用例用于在所述接口的测试开始时对所述其他接口进行测试。
另一种可能的实现方式中,所述方法还包括:
在所述接口测试用例中添加断言信息,所述断言信息用于判断所述接口是否通过测试。
另一种可能的实现方式中,所述方法还包括:
执行所述接口测试用例以对所述接口进行测试;
若所述接口测试用例包含所述前置的数据库脚本,则在所述接口的测试开始时执行所述前置的数据库脚本以对所述数据库进行操作;
若所述接口测试用例包含所述后置的数据库脚本,则在所述接口的测试结束前执行所述后置的数据库脚本以对所述数据库进行操作;
若所述接口测试用例包含所述系统函数,则在所述接口的测试过程中调用所述系统函数以生成特定数据;
若所述接口测试用例包含所述前置的所述其他接口的接口测试用例,则在所述接口的测试开始时执行所述前置的所述其他接口的接口测试用例以对所述其他接口进行测试;
若所述接口测试用例包含所述断言信息,则根据所述断言信息判断所述接口是否通过测试。
另一种可能的实现方式中,所述执行所述接口测试用例以对所述接口进行测试包括:
将所述接口测试用例与其他接口的接口测试用例组成接口测试用例集;
执行所述接口测试用例集。
本申请的第二方面提供一种接口测试用例生成装置,所述装置包括:
第一获取模块,用于获取接口的访问信息;
第二获取模块,用于获取所述接口的协议类型对应的请求报文模板;
生成模块,用于根据所述访问信息、所述请求报文模板生成所述接口的接口测试用例;
判断模块,用于判断所述接口是否需要对数据库进行操作,若所述接口需要对数据库进行操作,确定所述数据库的数据库类型;
添加模块,用于将所述数据库类型对应的数据库脚本添加到所述接口测试用例。
本申请的第三方面提供一种计算机装置,所述计算机装置包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现所述接口测试用例生成方法。
本申请的第四方面提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述接口测试用例生成方法。
本发明获取接口的访问信息;获取所述接口的协议类型对应的请求报文模板;根据所述访问信息、所述请求报文模板生成所述接口的接口测试用例;判断所述接口是否需要对数据库进行操作,若所述接口需要对数据库进行操作,确定所述数据库的数据库类型;将所述数据库类型对应的数据库脚本添加到所述接口测试用例。本发明快速生成接口的接口测试用例,并且支持不同的协议类型和不同的数据库类型。
附图说明
图1是本发明实施例提供的接口测试用例生成方法的流程图。
图2是本发明实施例提供的接口测试用例生成装置的结构图。
图3是本发明实施例提供的计算机装置的示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
优选地,本发明的接口测试用例生成方法应用在一个或者多个计算机装置中。所述计算机装置是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机装置可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机装置可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
实施例一
图1是本发明实施例一提供的接口测试用例生成方法的流程图。所述接口测试用例生成方法应用于计算机装置。
本发明接口测试用例生成方法可以快速生成用于接口测试的接口测试用例。所述接口测试用例生成方法可以提高接口测试用例生成的场景适应性,支持不同的协议类型和不同的数据库类型
如图1所示,所述接口测试用例生成方法包括:
步骤101,获取接口的访问信息。
所述访问信息包括所述接口的接口ID、IP地址、端口号、URL(Uniform ResourceLocator,统一资源定位符)、接口名、协议类型等。
所述接口ID、IP地址、端口号、URL、接口名、协议类型用于访问所述接口。
所述协议类型表示所述接口支持的协议。所述协议类型可以包括HTTP(HyperText Transfer Protocol超文本传输协议)、HTTPS(HyperText Transfer ProtocolSecure,超文本传输安全协议)、TCP(Transmission Control Protocol,传输控制协议)、SOAP(Simple Object Access Protocol,简单对象访问协议)。
可以接收用户输入的访问信息。例如,生成接口测试用例生成界面,从所述接口测试用例生成界面接收用户输入的访问信息。
或者,可以从原有的接口测试用例中提取所述访问信息。例如,若某一接口的请求数据发生变化,需要生成新的接口测试用例,则从该接口原有的接口测试用例中提取所述访问信息。
或者,可以获取预先存储的访问信息。例如,可以预先设置并存储接口的访问信息。当需要生成该接口的接口测试用例时,获取该预先设置并存储的访问信息。
步骤102,获取所述接口的协议类型对应的请求报文模板。
所述请求报文模板包括一个或多个请求参数。
所述请求报文模板可以是JSON(JavaScript Object Notation,JS对象简谱)或XML(Extensible Markup Language,可扩展标记语言)格式。JSON和XML都是一种数据交换格式。JSON是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据,任何JavaScript支持的类型都可以通过JSON来表示,例如字符串、数字、对象、数组等。XML是一种用于标记电子文件使其具有结构性的标记语言,用来传输和存储数据。
在本实施例中,可以预先设置多种协议类型的请求报文模板。预先设置的协议类型可以包括HTTP、HTTPS、TCP、SOAP。
不同协议类型的请求报文模板具有不同的报文格式。例如,HTTP协议类型的请求报文模板包含请求方法字段,所述请求方法字段为GET或POST。又如,TCP协议类型的请求报文模板的报文首部是否包含4字节的序号和4字节的确认号。再如,SOAP协议类型的请求报文模板包含SOAP信封(<soap:Envelope>)、SOAP头(<soap:Header>)、SOAP消息体(<soap:Body>)和请求标识(HTTP request)。
步骤103,根据所述访问信息、所述请求报文模板生成所述接口的接口测试用例。
可以利用测试用例生成工具,例如JMeter根据所述访问信息、所述请求报文模板生成所述接口的接口测试用例。
在生成所述接口的接口测试用例时,可以生成所述接口测试用例的测试用例ID,建立所述测试用例ID与所述接口ID的映射关系。根据所述映射关系,可以得到接口ID对应的测试用例ID,从而得到接口对应的接口测试用例。
步骤104,判断所述接口是否需要对数据库进行操作,若所述接口需要对数据库进行操作,确定所述数据库的数据库类型。
可以判断所述请求报文模板是否包含数据库操作命令(例如数据清理、数据初始化),若所述请求报文模板中包含数据库操作命令,则确定所述接口需要对所述数据库进行操作。
可以根据所述数据库操作命令确定所述数据库的数据库类型。数据库不同,数据库操作命令不同,因此可以根据不所述数据库操作命令识别对应的数据库类型。
所述数据库类型可以是MySQL、Oracle、MongoDb或其他的数据库类型。
步骤105,将所述数据库类型对应的数据库脚本添加到所述接口测试用例。
所述数据库脚本用于对所述数据库进行操作。将数据库脚本添加到所述接口测试用例是为了满足接口测试中对数据库进行操作的需求。
不同数据库类型对应不同格式的数据库脚本。可以根据数据库类型和数据库操作生成对应的数据库脚本。
所述将所述数据库类型对应的数据库脚本添加到所述接口测试用例可以包括将所述数据库类型对应的前置的数据库脚本添加到所述接口测试用例。所述前置的数据库脚本用于在接口测试开始时(即其他操作之前)对数据库进行操作。例如,所述前置的数据库脚本用于在接口测试开始时从数据库中获取数据。又如,所述前置的数据库脚本用于在接口测试开始时更新数据库中的数据。再如,所述前置的数据库脚本用于在接口测试开始时删除数据库中的数据。
所述将所述数据库类型对应的数据库脚本添加到所述接口测试用例还可以包括将所述数据库类型对应的后置的数据库脚本添加到所述接口测试用例。所述后置的数据库脚本用于在接口测试结束前(即其他操作之后)对数据库进行操作。例如,在接口测试结束前从数据库中获取数据。又如,在接口测试结束前更新数据库中的数据。再如,在接口测试结束前删除数据库中的数据。
实施例一的接口测试用例生成方法获取接口的访问信息;获取所述接口的协议类型对应的请求报文模板;根据所述访问信息、所述请求报文模板生成所述接口的接口测试用例;判断所述接口是否需要对数据库进行操作,若所述接口需要对数据库进行操作,确定所述数据库的数据库类型;将所述数据库类型对应的数据库脚本添加到所述接口测试用例。实施例一提高了接口测试用例生成的场景适应性,可以快速生成接口的接口测试用例,并且支持不同的协议类型和不同的数据库类型。
作为一种可选的实施方式,所述方法还包括:
在所述接口测试用例中添加系统函数。
所述系统函数用于在所述接口的测试过程中生成特定数据。
可以生成系统函数配置界面,在所述系统函数配置界面中提供多个系统函数供用户使用,将用户选择的系统函数添加到所述接口测试用例。
所述系统信息可以包括随机函数、日期函数、时间函数等。所述随机函数用于生成随机数。所述日期函数用于生成日期(例如当前日期)。所述时间函数用于生成时间(例如当前时间)。
在所述接口测试用例中添加系统函数是为了满足接口测试中生成特定数据的需求。例如,如果接口测试中要生成随机数,则在所述接口测试用例中添加随机函数;如果接口测试中要生成日期,则在所述接口测试用例中添加日期函数。
作为一种可选的实施方式,所述方法还包括:
若所述接口依赖于其他接口,则在所述接口测试用例中添加前置的所述其他接口的接口测试用例。
所述前置的所述其他接口的接口测试用例用于在所述接口的测试开始时对所述其他接口进行测试。在所述接口测试用例中添加前置的所述其他接口的接口测试用例是为了满足接口测试中对其他接口的依赖关系。
例如,所述接口依赖于登录接口,需要登录后才能访问,则在所述接口的接口测试用例中添加前置的登陆接口测试用例。在执行所述接口测试用例的时候先执行登陆接口测试用例,再执行所述接口测试用例。
又如,所述接口的请求数据包括其他接口传递的参数值,则在所述接口测试用例中添加前置的传递参数的其他接口的接口测试用例。在执行所述接口测试用例的时候先执行传递参数的其他接口的接口测试用例,再执行所述接口测试用例。
作为一种可选的实施方式,所述方法还包括:
在所述接口测试用例中添加断言信息。
所述断言信息用于对所述接口的节点数据进行验证。
在所述接口测试用例中添加断言信息是为了判断所述接口测试用例是否执行成功,即判断所述接口是否通过测试。
可以在所述接口测试用例中添加一个或多个断言信息。若所有的断言信息都断言成功,则所述接口测试用例执行成功。否则,若断言信息中出现断言失败,则所述接口测试用例执行失败。
在所述接口测试用例中添加系统函数、在所述接口测试用例中添加前置的所述其他接口的接口测试用例、在所述接口测试用例中添加断言信息以及将所述数据库类型对应的数据库脚本添加到所述接口测试用例(将前置的数据库脚本添加到所述接口测试用例和/或将后置的数据库脚本添加到所述接口测试用例)都是为了满足接口测试的多样性需求,生成满足实际需要的接口测试用例。
作为一种可选的实施方式,所述方法还包括:
执行所述接口测试用例以对所述接口进行测试。
在执行所述接口测试用例以对所述接口进行测试的过程中,生成所述协议类型对应的请求报文,并且执行所述数据库脚本以对数据库进行操作。若所述接口测试用例包含前置的数据库脚本,则在所述接口的测试开始时(即其他操作之前)执行所述前置的数据库脚本以对所述数据库进行操作。若所述接口测试用例包含后置的数据库脚本,则在所述接口的测试结束前(即其他操作之后)执行所述后置的数据库脚本以对所述数据库进行操作。
若所述接口测试用例包含系统函数,则在所述接口的测试过程中调用所述系统函数以生成特定数据。
若所述接口测试用例包含前置的所述其他接口的接口测试用例,则在所述接口的测试开始时执行所述前置的所述其他接口的接口测试用例以对所述其他接口进行测试。
若所述接口测试用例包含断言信息,则根据所述断言信息判断所述接口是否通过测试。
在本实施例中,执行所述接口测试用例以对所述接口进行测试包括:将所述接口测试用例与其他接口的接口测试用例组成接口测试用例集;执行所述接口测试用例集。可以通过Jenkins执行所述接口测试用例集。Jenkins是基于Java开发的一种持续集成工具。Jenkins的功能包括持续的软件版本发布/测试项目,以及监控外部调用执行的工作。
可以定时执行所述接口测试用例。
在本实施例中,可以定时执行所述接口测试用例集。例如,通过Jenkins定时执行所述接口测试用例集。可以设置执行时间间隔,按照所述执行时间间隔执行所述接口测试用例集。或者,可以设置具体的执行时间(例如每天上午8点),在所述执行时间执行所述接口测试用例集。
当应用系统发生变化时,应用系统的各个接口都要进行回归测试。这种情况下,通过Jenkins执行各个接口的接口测试用例组成的接口测试用例集,可以快速实现各个接口的回归测试。
可以通过调度算法来调度Jenkins的执行机执行所述接口测试用例集,以保证执行机的利用率。
作为一种可选的实施方式,所述方法还包括:
修改所述请求报文模板;
将修改后的请求报文模板应用到所述接口测试用例。
当接口的头部内容(即报文头部)发生变化时,可以修改所述请求报文模板,再将修改后的请求报文模板应用到所述接口测试用例,修改就可以生效。
若多个接口测试用例使用所述请求报文模板,将修改后的请求报文模板应用到该多个接口测试用例,修改可以批量生效。
实施例二
图2是本发明实施例二提供的接口测试用例生成装置的结构图。所述接口测试用例生成装置20应用于计算机装置。本装置的接口测试用例生成是快速生成用于接口测试的接口测试用例。所述接口测试用例生成装置20可以提高接口测试用例生成的场景适应性,支持不同的协议类型和不同的数据库类型。如图2所示,所述接口测试用例生成装置20可以包括第一获取模块201、第二获取模块202、生成模块203、判断模块204、添加模块205。
第一获取模块201,用于获取接口的访问信息。
所述访问信息包括所述接口的接口ID、IP地址、端口号、URL(Uniform ResourceLocator,统一资源定位符)、接口名、协议类型等。
所述接口ID、IP地址、端口号、URL、接口名、协议类型用于访问所述接口。
所述协议类型表示所述接口支持的协议。所述协议类型可以包括HTTP(HyperText Transfer Protocol超文本传输协议)、HTTPS(HyperText Transfer ProtocolSecure,超文本传输安全协议)、TCP(Transmission Control Protocol,传输控制协议)、SOAP(Simple Object Access Protocol,简单对象访问协议)。
可以接收用户输入的访问信息。例如,生成接口测试用例生成界面,从所述接口测试用例生成界面接收用户输入的访问信息。
或者,可以从原有的接口测试用例中提取所述访问信息。例如,若某一接口的请求数据发生变化,需要生成新的接口测试用例,则从该接口原有的接口测试用例中提取所述访问信息。
或者,可以获取预先存储的访问信息。例如,可以预先设置并存储接口的访问信息。当需要生成该接口的接口测试用例时,获取该预先设置并存储的访问信息。
第二获取模块202,用于获取所述接口的协议类型对应的请求报文模板。
所述请求报文模板包括一个或多个请求参数。
所述请求报文模板可以是JSON(JavaScript Object Notation,JS对象简谱)或XML(Extensible Markup Language,可扩展标记语言)格式。JSON和XML都是一种数据交换格式。JSON是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据,任何JavaScript支持的类型都可以通过JSON来表示,例如字符串、数字、对象、数组等。XML是一种用于标记电子文件使其具有结构性的标记语言,用来传输和存储数据。
在本实施例中,可以预先设置多种协议类型的请求报文模板。预先设置的协议类型可以包括HTTP、HTTPS、TCP、SOAP。
不同协议类型的请求报文模板具有不同的报文格式。例如,HTTP协议类型的请求报文模板包含请求方法字段,所述请求方法字段为GET或POST。又如,TCP协议类型的请求报文模板的报文首部是否包含4字节的序号和4字节的确认号。再如,SOAP协议类型的请求报文模板包含SOAP信封(<soap:Envelope>)、SOAP头(<soap:Header>)、SOAP消息体(<soap:Body>)和请求标识(HTTP request)。
生成模块203,用于根据所述访问信息、所述请求报文模板生成所述接口的接口测试用例。
可以利用测试用例生成工具,例如JMeter根据所述访问信息、所述请求报文模板生成所述接口的接口测试用例。
在生成所述接口的接口测试用例时,可以生成所述接口测试用例的测试用例ID,建立所述测试用例ID与所述接口ID的映射关系。根据所述映射关系,可以得到接口ID对应的测试用例ID,从而得到接口对应的接口测试用例。
判断模块204,用于判断所述接口是否需要对数据库进行操作,若所述接口需要对数据库进行操作,确定所述数据库的数据库类型。
可以判断所述请求报文模板是否包含数据库操作命令(例如数据清理、数据初始化),若所述请求报文模板中包含数据库操作命令,则确定所述接口需要对所述数据库进行操作。
可以根据所述数据库操作命令确定所述数据库的数据库类型。数据库不同,数据库操作命令不同,因此可以根据不所述数据库操作命令识别对应的数据库类型。
所述数据库类型可以是MySQL、Oracle、MongoDb或其他的数据库类型。
添加模块205,用于将所述数据库类型对应的数据库脚本添加到所述接口测试用例。
所述数据库脚本用于对所述数据库进行操作。将数据库脚本添加到所述接口测试用例是为了满足接口测试中对数据库进行操作的需求。
不同数据库类型对应不同格式的数据库脚本。可以根据数据库类型和数据库操作生成对应的数据库脚本。
所述将所述数据库类型对应的数据库脚本添加到所述接口测试用例可以包括将所述数据库类型对应的前置的数据库脚本添加到所述接口测试用例。所述前置的数据库脚本用于在接口测试开始时(即其他操作之前)对数据库进行操作。例如,所述前置的数据库脚本用于在接口测试开始时从数据库中获取数据。又如,所述前置的数据库脚本用于在接口测试开始时更新数据库中的数据。再如,所述前置的数据库脚本用于在接口测试开始时删除数据库中的数据。
所述将所述数据库类型对应的数据库脚本添加到所述接口测试用例还可以包括将所述数据库类型对应的后置的数据库脚本添加到所述接口测试用例。在接口测试结束前(即其他操作之后)对数据库进行操作。例如,在接口测试结束前从数据库中获取数据。又如,在接口测试结束前更新数据库中的数据。再如,在接口测试结束前删除数据库中的数据。
实施例二的接口测试用例生成装置20获取接口的访问信息;获取所述接口的协议类型对应的请求报文模板;根据所述访问信息、所述请求报文模板生成所述接口的接口测试用例;判断所述接口是否需要对数据库进行操作,若所述接口需要对数据库进行操作,确定所述数据库的数据库类型;将所述数据库类型对应的数据库脚本添加到所述接口测试用例。实施例二提高了接口测试用例生成的场景适应性,可以快速生成接口的接口测试用例,并且支持不同的协议类型和不同的数据库类型。
在另一实施例中,所述接口测试用例生成装置20还可以包括:系统函数添加模块,用于在所述接口测试用例中添加系统函数。
所述系统函数用于在所述接口的测试过程中生成特定数据。
可以生成系统函数配置界面,在所述系统函数配置界面中提供多个系统函数供用户使用,将用户选择的系统函数添加到所述接口测试用例。
所述系统信息可以包括随机函数、日期函数、时间函数等。所述随机函数用于生成随机数。所述日期函数用于生成日期(例如当前日期)。所述时间函数用于生成时间(例如当前时间)。
在所述接口测试用例中添加系统函数是为了满足接口测试中生成特定数据的需求。例如,如果接口测试中要生成随机数,则在所述接口测试用例中添加随机函数;如果接口测试中要生成日期,则在所述接口测试用例中添加日期函数。
在另一实施例中,所述接口测试用例生成装置20还可以包括:前置用例添加模块,用于若所述接口依赖于其他接口,则在所述接口测试用例中添加前置的所述其他接口的接口测试用例。
所述前置的所述其他接口的接口测试用例用于在所述接口的测试开始时对所述其他接口进行测试。在所述接口测试用例中添加前置的所述其他接口的接口测试用例是为了满足接口测试中对其他接口的依赖关系。
例如,所述接口依赖于登录接口,需要登录后才能访问,则在所述接口的接口测试用例中添加前置的登陆接口测试用例。在执行所述接口测试用例的时候先执行登陆接口测试用例,再执行所述接口测试用例。
又如,所述接口的请求数据包括其他接口传递的参数值,则在所述接口测试用例中添加前置的传递参数的其他接口的接口测试用例。在执行所述接口测试用例的时候先执行传递参数的其他接口的接口测试用例,再执行所述接口测试用例。
在另一实施例中,所述接口测试用例生成装置20还可以包括:断言信息添加模块,用于在所述接口测试用例中添加断言信息。
所述断言信息用于对所述接口的节点数据进行验证。
在所述接口测试用例中添加断言信息是为了判断所述接口测试用例是否执行成功,即判断所述接口是否通过测试。
可以在所述接口测试用例中添加一个或多个断言信息。若所有的断言信息都断言成功,则所述接口测试用例执行成功。否则,若断言信息中出现断言失败,则所述接口测试用例执行失败。
在所述接口测试用例中添加系统函数、在所述接口测试用例中添加前置的所述其他接口的接口测试用例、在所述接口测试用例中添加断言信息以及将所述数据库类型对应的数据库脚本添加到所述接口测试用例(将前置的数据库脚本添加到所述接口测试用例和/或将后置的数据库脚本添加到所述接口测试用例)都是为了满足接口测试的多样性需求,生成满足实际需要的接口测试用例。
在另一实施例中,所述接口测试用例生成装置20还可以包括:执行模块,用于执行所述接口测试用例以对所述接口进行测试。
在执行所述接口测试用例以对所述接口进行测试的过程中,生成所述协议类型对应的请求报文,并且执行所述数据库脚本以对数据库进行操作。若所述接口测试用例包含前置的数据库脚本,则在所述接口的测试开始时(即其他操作之前)执行所述前置的数据库脚本以对所述数据库进行操作。若所述接口测试用例包含后置的数据库脚本,则在所述接口的测试结束前(即其他操作之后)执行所述后置的数据库脚本以对所述数据库进行操作。
若所述接口测试用例包含系统函数,则在所述接口的测试过程中调用所述系统函数以生成特定数据。
若所述接口测试用例包含前置的所述其他接口的接口测试用例,则在所述接口的测试开始时执行所述前置的所述其他接口的接口测试用例以对所述其他接口进行测试。
若所述接口测试用例包含断言信息,则根据所述断言信息判断所述接口是否通过测试。
在本实施例中,执行所述接口测试用例以对所述接口进行测试包括:将所述接口测试用例与其他接口的接口测试用例组成接口测试用例集;执行所述接口测试用例集。可以通过Jenkins执行所述接口测试用例集。Jenkins是基于Java开发的一种持续集成工具。Jenkins的功能包括持续的软件版本发布/测试项目,以及监控外部调用执行的工作。
可以定时执行所述接口测试用例。
在本实施例中,可以定时执行所述接口测试用例集。例如,通过Jenkins定时执行所述接口测试用例集。可以设置执行时间间隔,按照所述执行时间间隔执行所述接口测试用例集。或者,可以设置具体的执行时间(例如每天上午8点),在所述执行时间执行所述接口测试用例集。
当应用系统发生变化时,应用系统的各个接口都要进行回归测试。这种情况下,通过Jenkins执行各个接口的接口测试用例组成的接口测试用例集,可以快速实现各个接口的回归测试。
可以通过调度算法来调度Jenkins的执行机执行所述接口测试用例集,以保证执行机的利用率。
在另一实施例中,所述接口测试用例生成装置20还可以包括:修改模块,用于修改所述请求报文模板;
将修改后的请求报文模板应用到所述接口测试用例。
当接口的头部内容(即报文头部)发生变化时,可以修改所述请求报文模板,再将修改后的请求报文模板应用到所述接口测试用例,修改就可以生效。
若多个接口测试用例使用所述请求报文模板,将修改后的请求报文模板应用到该多个接口测试用例,修改可以批量生效。
实施例三
本实施例提供一种计算机存储介质,该计算机存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述接口测试用例生成方法实施例中的步骤,例如图1所示的步骤101-105:
步骤101,获取接口的访问信息;
步骤102,获取所述接口的协议类型对应的请求报文模板;
步骤103,根据所述访问信息、所述请求报文模板生成所述接口的接口测试用例;
步骤104,判断所述接口是否需要对数据库进行操作,若所述接口需要对数据库进行操作,确定所述数据库的数据库类型;
步骤105,将所述数据库类型对应的数据库脚本添加到所述接口测试用例。
或者,该计算机程序被处理器执行时实现上述装置实施例中各模块的功能,例如图2中的模块201-205:
第一获取模块201,用于获取接口的访问信息;
第二获取模块202,用于获取所述接口的协议类型对应的请求报文模板;
生成模块203,用于根据所述访问信息、所述请求报文模板生成所述接口的接口测试用例;
判断模块204,用于判断所述接口是否需要对数据库进行操作,若所述接口需要对数据库进行操作,确定所述数据库的数据库类型;
添加模块205,用于将所述数据库类型对应的数据库脚本添加到所述接口测试用例。
实施例四
图3为本发明实施例四提供的计算机装置的示意图。所述计算机装置30包括存储器301、处理器302以及存储在所述存储器301中并可在所述处理器302上运行的计算机程序303,例如接口测试用例生成程序。所述处理器302执行所述计算机程序303时实现上述接口测试用例生成方法实施例中的步骤,例如图1所示的步骤101-105:
步骤101,获取接口的访问信息;
步骤102,获取所述接口的协议类型对应的请求报文模板;
步骤103,根据所述访问信息、所述请求报文模板生成所述接口的接口测试用例;
步骤104,判断所述接口是否需要对数据库进行操作,若所述接口需要对数据库进行操作,确定所述数据库的数据库类型;
步骤105,将所述数据库类型对应的数据库脚本添加到所述接口测试用例。
或者,该计算机程序被处理器执行时实现上述装置实施例中各模块的功能,例如图2中的模块201-205:
第一获取模块201,用于获取接口的访问信息;
第二获取模块202,用于获取所述接口的协议类型对应的请求报文模板;
生成模块203,用于根据所述访问信息、所述请求报文模板生成所述接口的接口测试用例;
判断模块204,用于判断所述接口是否需要对数据库进行操作,若所述接口需要对数据库进行操作,确定所述数据库的数据库类型;
添加模块205,用于将所述数据库类型对应的数据库脚本添加到所述接口测试用例。
示例性的,所述计算机程序303可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器301中,并由所述处理器302执行,以完成本方法。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序303在所述计算机装置30中的执行过程。例如,所述计算机程序303可以被分割成图2中的第一获取模块201、第二获取模块202、生成模块203、判断模块204、添加模块205,各模块具体功能参见实施例二。
所述计算机装置30可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。本领域技术人员可以理解,所述示意图3仅仅是计算机装置30的示例,并不构成对计算机装置30的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述计算机装置30还可以包括输入输出设备、网络接入设备、总线等。
所称处理器302可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器302也可以是任何常规的处理器等,所述处理器302是所述计算机装置30的控制中心,利用各种接口和线路连接整个计算机装置30的各个部分。
所述存储器301可用于存储所述计算机程序303,所述处理器302通过运行或执行存储在所述存储器301内的计算机程序或模块,以及调用存储在存储器301内的数据,实现所述计算机装置30的各种功能。所述存储器301可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机装置30的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器301可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
所述计算机装置30集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他模块或步骤,单数不排除复数。系统权利要求中陈述的多个模块或装置也可以由一个模块或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

Claims (6)

1.一种接口测试用例生成方法,其特征在于,所述方法包括:
获取接口的访问信息;
获取所述接口的协议类型对应的预先设置的请求报文模板,不同的协议类型对应的所述请求报文模板具有不同的报文格式;
利用测试用例生成工具根据所述访问信息、所述请求报文模板生成所述接口的接口测试用例;
判断所述接口是否需要对数据库进行操作,若所述接口需要对数据库进行操作,确定所述数据库的数据库类型;
将所述数据库类型对应的数据库脚本添加到所述接口测试用例,不同数据库类型对应不同格式的数据库脚本,所述将所述数据库类型对应的数据库脚本添加到所述接口测试用例包括:将所述数据库类型对应的前置的数据库脚本添加到所述接口测试用例,所述前置的数据库脚本用于在所述接口的测试开始时对所述数据库进行操作;和/或将所述数据库类型对应的后置的数据库脚本添加到所述接口测试用例,所述后置的数据库脚本用于在所述接口的测试结束前对所述数据库进行操作;
在所述接口测试用例中添加系统函数,所述系统函数用于在所述接口的测试过程中生成特定数据;
若所述接口依赖于其他接口,则在所述接口测试用例中添加前置的所述其他接口的接口测试用例,所述前置的所述其他接口的接口测试用例用于在所述接口的测试开始时对所述其他接口进行测试;
在所述接口测试用例中添加断言信息,所述断言信息用于判断所述接口是否通过测试。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
执行所述接口测试用例以对所述接口进行测试;
若所述接口测试用例包含所述前置的数据库脚本,则在所述接口的测试开始时执行所述前置的数据库脚本以对所述数据库进行操作;
若所述接口测试用例包含所述后置的数据库脚本,则在所述接口的测试结束前执行所述后置的数据库脚本以对所述数据库进行操作;
若所述接口测试用例包含所述系统函数,则在所述接口的测试过程中调用所述系统函数以生成特定数据;
若所述接口测试用例包含所述前置的所述其他接口的接口测试用例,则在所述接口的测试开始时执行所述前置的所述其他接口的接口测试用例以对所述其他接口进行测试;
若所述接口测试用例包含所述断言信息,则根据所述断言信息判断所述接口是否通过测试。
3.如权利要求2所述的方法,其特征在于,所述执行所述接口测试用例以对所述接口进行测试包括:
将所述接口测试用例与其他接口的接口测试用例组成接口测试用例集;
执行所述接口测试用例集。
4.一种接口测试用例生成装置,其特征在于,所述装置包括:
第一获取模块,用于获取接口的访问信息;
第二获取模块,用于获取所述接口的协议类型对应的预先设置的请求报文模板,不同的协议类型对应的所述请求报文模板具有不同的报文格式;
生成模块,用于利用测试用例生成工具根据所述访问信息、所述请求报文模板生成所述接口的接口测试用例;
判断模块,用于判断所述接口是否需要对数据库进行操作,若所述接口需要对数据库进行操作,确定所述数据库的数据库类型;
添加模块,用于将所述数据库类型对应的数据库脚本添加到所述接口测试用例,不同数据库类型对应不同格式的数据库脚本,所述将所述数据库类型对应的数据库脚本添加到所述接口测试用例包括:将所述数据库类型对应的前置的数据库脚本添加到所述接口测试用例,所述前置的数据库脚本用于在所述接口的测试开始时对所述数据库进行操作;和/或将所述数据库类型对应的后置的数据库脚本添加到所述接口测试用例,所述后置的数据库脚本用于在所述接口的测试结束前对所述数据库进行操作;
所述添加模块还用于在所述接口测试用例中添加系统函数,所述系统函数用于在所述接口的测试过程中生成特定数据;
所述添加模块还用于若所述接口依赖于其他接口,则在所述接口测试用例中添加前置的所述其他接口的接口测试用例,所述前置的所述其他接口的接口测试用例用于在所述接口的测试开始时对所述其他接口进行测试;
所述添加模块还用于在所述接口测试用例中添加断言信息,所述断言信息用于判断所述接口是否通过测试。
5.一种计算机装置,其特征在于:所述计算机装置包括处理器,所述处理器用于执行存储器中存储的计算机程序以实现如权利要求1-3中任一项所述接口测试用例生成方法。
6.一种计算机存储介质,所述计算机存储介质上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1-3中任一项所述接口测试用例生成方法。
CN201910442281.9A 2019-05-24 2019-05-24 接口测试用例生成方法、装置、计算机装置及存储介质 Active CN110321283B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910442281.9A CN110321283B (zh) 2019-05-24 2019-05-24 接口测试用例生成方法、装置、计算机装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910442281.9A CN110321283B (zh) 2019-05-24 2019-05-24 接口测试用例生成方法、装置、计算机装置及存储介质

Publications (2)

Publication Number Publication Date
CN110321283A CN110321283A (zh) 2019-10-11
CN110321283B true CN110321283B (zh) 2024-05-10

Family

ID=68119131

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910442281.9A Active CN110321283B (zh) 2019-05-24 2019-05-24 接口测试用例生成方法、装置、计算机装置及存储介质

Country Status (1)

Country Link
CN (1) CN110321283B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111881021A (zh) * 2020-07-07 2020-11-03 上海中通吉网络技术有限公司 接口测试方法、装置和系统
CN113176993A (zh) * 2021-04-28 2021-07-27 平安银行股份有限公司 用例测试方法、装置、电子设备及存储介质
CN113407444B (zh) * 2021-06-03 2022-11-25 中科曙光国际信息产业有限公司 一种接口的测试用例生成方法、装置、设备及存储介质
CN113220595B (zh) * 2021-06-11 2023-10-03 中国农业银行股份有限公司 测试方法及设备
CN117579531B (zh) * 2024-01-15 2024-05-28 云筑信息科技(成都)有限公司 一种需要动态加验签接口的压测方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105528294A (zh) * 2015-12-29 2016-04-27 广东金赋信息科技有限公司 一种接口测试用例自动生成的方法及系统
CN108132879A (zh) * 2017-12-21 2018-06-08 周舟 自动化软件测试方法、平台、终端及介质
CN109614315A (zh) * 2018-11-06 2019-04-12 武汉达梦数据库有限公司 一种数据同步测试用例的自动生成方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105528294A (zh) * 2015-12-29 2016-04-27 广东金赋信息科技有限公司 一种接口测试用例自动生成的方法及系统
CN108132879A (zh) * 2017-12-21 2018-06-08 周舟 自动化软件测试方法、平台、终端及介质
CN109614315A (zh) * 2018-11-06 2019-04-12 武汉达梦数据库有限公司 一种数据同步测试用例的自动生成方法及系统

Also Published As

Publication number Publication date
CN110321283A (zh) 2019-10-11

Similar Documents

Publication Publication Date Title
CN110321283B (zh) 接口测试用例生成方法、装置、计算机装置及存储介质
CN111078315B (zh) 微服务编排、执行方法及系统、架构、设备、存储介质
CN108415832B (zh) 接口自动化测试方法、装置、设备及存储介质
US9959198B1 (en) Simulated testing of API
CA2915619C (en) Method and apparatus for customized software development kit (sdk) generation
US11635974B2 (en) Providing a different configuration of added functionality for each of the stages of predeployment, deployment, and post deployment using a layer of abstraction
WO2018126964A1 (zh) 任务执行方法、装置和服务器
CA2915620A1 (en) Method and apparatus for code virtualization and remote process call generation
CN113268336B (zh) 一种服务的获取方法、装置、设备以及可读介质
CN112612452B (zh) 一种api平台实现方法、装置、设备及存储介质
WO2018165902A1 (zh) 一种通信协议解析代码自动生成方法及系统
CN104731650A (zh) 系统接口调用信息的获取方法和装置
WO2021093672A1 (zh) 外部系统的嵌入方法、工作流系统、设备及计算机可读存储介质
US20160188386A1 (en) Method and system for communicating information between a mobile device and an enterprise system
CN116112457A (zh) 消息通知的方法、装置、计算机设备及存储介质
WO2022099913A1 (zh) 界面配置方法、装置、设备及介质
CN114185871A (zh) 数据迁移方法、数据迁移装置、介质及电子设备
CN108170557B (zh) 用于输出信息的方法和装置
CN114785847B (zh) 网络控制软件开发配置方法、终端及存储介质
CN116954588A (zh) 软件定义网络应用的模板配置方法、装置及存储介质
CN116048669A (zh) 接口调用方法、装置、电子设备及介质
CN111679980A (zh) 后台数据模拟方法及装置
CN111401825A (zh) 一种实例化方法和装置
CN116028363A (zh) 数据创建方法、装置、电子设备和计算机可读存储介质
CN116860240A (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