CN110109817A - 接口自动化测试方法、装置、设备及存储介质 - Google Patents
接口自动化测试方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN110109817A CN110109817A CN201910190383.6A CN201910190383A CN110109817A CN 110109817 A CN110109817 A CN 110109817A CN 201910190383 A CN201910190383 A CN 201910190383A CN 110109817 A CN110109817 A CN 110109817A
- Authority
- CN
- China
- Prior art keywords
- interface
- test
- testing
- interface testing
- instruction
- 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
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/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
技术领域
本发明主要涉及通信技术领域,具体地说,涉及一种接口自动化测试方法、装置、设备及存储介质。
背景技术
随着软件产业的不断发展,新开发的软件越来越复杂,功能越来越多,使得软件测试也变得越来越复杂。在软件测试过程中,为保证测试质量,通常需要设计和编写大量的测试用例。然而,测试用例的设计需要较高的技术水平和丰富的工作经验,且对测试用例进行编写和修改往往需要耗费测试人员的大量时间,过于耗费人力,且不能快速对接口进行批量测试。
发明内容
本发明的主要目的是提供一种接口自动化测试方法、装置、设备及存储介质,旨在解决现有技术中无法快速且批量对接口文件进行测试的问题。
为实现上述目的,本发明提供一种接口自动化测试方法,所述接口自动化测试方法包括以下步骤:
在可视化界面内构建测试用例文件并存储于目标平台;
在接收到下载指令时,由所述目标平台下载测试工具、至少一个依赖文件以及至少一个接口测试用例文件至执行终端;
在接收到解析指令时,利用获取的测试工具以及所述至少一个依赖文件解析获取的所述接口测试用例文件,以生成接口测试代码;
在接收到执行指令时,利用持续集成工具以指定顺序在指定持续时间内重复执行所述接口测试代码;
接收返回的测试数据并形成测试数据集;
在接收到存储指令时,存储所述测试数据集。
优选地,所述接口测试代码中包括多个接口请求和数据库信息;所述接口请求包括同步操作接口请求和异步操作接口请求;所述测试数据包括输出参数、响应时间以及测试结果;所述利用持续集成工具以指定顺序在所述指定持续时间内重复执行所述接口测试代码的步骤包括:
判断所述接口请求是否为异步操作接口请求;
在所述接口请求为异步操作的接口请求时,根据所述数据库信息从数据库内获取相应的字段作为所述接口测试用例对应的所述输出参数。
优选地,所述利用持续集成工具以指定顺序在所述指定持续时间内重复执行所述接口测试代码的步骤包括:
在所述接口请求不是异步操作接口请求,判断所述输出参数中是否具有所述占位符;
在所述输出参数中具有所述占位符时,解析所述占位符并从所述测试数据集中获取对应的字段,以替代所述输出参数中的所述占位符;
在所述接口请求中不具有所述占位符时,直接输出所述接口测试用例对应的所述输出参数。
优选地,所述接口自动化测试方法包括:
在接收到校验指令时,校验所述测试数据集;
判断所述输出参数和期望数据是否一致;
在所述输出参数与所述期望数据一致时,则标记所述接口测试用例的测试结果为通过;
在所述输出参数与所述期望数据不一致时,则标记所述接口测试用例的测试结果为不通过。
优选地,所述接口自动化测试方法进一步包括:
在接收到设置指令时,在所述可视化界面设定配置信息;所述配置信息包括所述指定持续时间;所述配置参数包括接口的基本信息以及所述执行终端的IP地址。
优选地,所述利用获取的测试工具以及所述至少一个依赖文件解析获取的所述接口测试用例文件的步骤包括:
根据数据节点将所述接口请求进行排列,以生成树形节点;
按照所述树形节点依次输出所述接口测试代码。
优选地,所述接口自动化测试方法进一步包括:
在接收到测试报告生成指令时,将所述测试数据集以指定格式生成测试报告,并以指定发送方式将所述测试报告发送给指定人员。
此外,为了实现上述目的,本发明还提出一种接口自动化测试装置,所述接口自动化测试装置包括:
构建模块,用于在可视化界面内构建测试用例文件并存储于目标平台;
下载模块,用于在接收到下载指令时由所述目标平台下载测试工具、至少一个依赖文件以及至少一个接口测试用例文件至执行终端,
解析模块,用于在接收到解析指令时利用获取的测试工具以及所述至少一个依赖文件解析获取的所述接口测试用例文件,以生成接口测试代码;
测试模块,用于在接收到执行指令时利用持续集成工具以指定顺序在指定持续时间内重复执行所述接口测试代码,接收返回的测试数据并形成测试数据集;
存储模块,用于在接收到存储指令时存储所述测试数据集。
此外,为了实现上述目的,本发明还提出一种设备,设备包括处理器和存储器,处理器用于执行存储器中存储的计算机程序时执行时实现如下步骤:
在可视化界面内构建测试用例文件并存储于目标平台;
在接收到下载指令时,由所述目标平台下载测试工具、至少一个依赖文件以及至少一个接口测试用例文件至执行终端;
在接收到解析指令时,利用获取的测试工具以及所述至少一个依赖文件解析获取的所述接口测试用例文件,以生成接口测试代码;
在接收到执行指令时,利用持续集成工具以指定顺序在指定持续时间内重复执行所述接口测试代码;
接收返回的测试数据并形成测试数据集;
在接收到存储指令时,存储所述测试数据集。
此外,为了实现上述目的,本发明还提出一种存储介质,所述存储介质为计算机可读存储介质,存储有至少一个指令,所述至少一个指令被处理器执行时实现如下步骤:
在可视化界面内构建测试用例文件并存储于目标平台;
在接收到下载指令时,由所述目标平台下载测试工具、至少一个依赖文件以及至少一个接口测试用例文件至执行终端;
在接收到解析指令时,利用获取的测试工具以及所述至少一个依赖文件解析获取的所述接口测试用例文件,以生成接口测试代码;
在接收到执行指令时,利用持续集成工具以指定顺序在指定持续时间内重复执行所述接口测试代码;
接收返回的测试数据并形成测试数据集;
在接收到存储指令时,存储所述测试数据集。
与现有技术相比较,接口自动化测试方法可实现异步交互的接口测试文件自动化测试,加速接口测试文件的测试速度,缩短了软件开发周期。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明接口自动化测试方法的流程示意图。
图2为图1中步骤S14的细化流程示意图。
图3为图1中步骤S16的细化流程示意图。
图4为图1中步骤S17的细化流程示意图。
图5为本发明接口自动化测试装置的功能模块图。
图6为本发明实施例的硬件运行环境的设备结构示意图。
主要元件符号说明
接口自动化测试装置 1
构建模块 10
设置模块 20
下载模块 30
解析模块 40
测试模块 50
接收模块 60
校验模块 70
存储模块 80
报告生成模块 90
存储器 102
通信总线 104
处理器 106
如下具体实施方式将结合上述附图进一步说明本发明。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或模块的过程、方法、***、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或模块。
请参阅图1,其为本发明接口自动化测试方法的流程图。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
本发明的至少一个实施例中,所述接口自动化测试方法应用于至少一终端设备及服务器构成的接口自动化测试***中。所述终端设备和所述服务器之间根据预设协议进行数据传输。优选地,所述预设协议包括,但不限于以下任意一种:HTTP协议(Hyper TextTransfer Protocol,超文本传输协议)、HTTPS协议(Hyper Text Transfer Protocol overSecure Socket Layer,以安全为目标的HTTP协议)等。本发明的至少一个实施例中,所述服务器可以是单一的服务器,也可以为由几个功能服务器共同组成的服务器群。所述终端设备可以是任意具有网络连接功能的终端,例如,所述终端设备可以为个人计算机、平板电脑、智能手机、个人数字助理(Personal Digital Assistant,PDA)、游戏机、交互式网络电视(Internet Protocol Television,IPTV)、智能式穿戴式设备、导航装置等等的可移动设备,或者台式电脑、数字TV等等固定设备。所述自动化接口测试***具有一可视化界面。所述可视化界面用于向用户提供人机交互接口,用户可以在通过手机或电脑等终端设备连接到所述自动化接口测试***。所述自动化接口测试***用于对接口测试用例文件进行持续集成、自动化测试以及生成测试报告。所述服务器中可包括数据库。所述数据库可存储有至少一个配置信息。
S11、在可视化界面内构建测试用例文件并存储于目标平台。
在本发明的至少一个实施例中,所述接口测试用例文件用于在执行时对至少一个接口的功能或性能进行测试,且在任意一个执行终端中被执行。所述接口测试用例文件存储于目标平台,且以可扩展标记语言(Extensible Markup Language,XML)进行存储。在本发明的至少一个实施例中,所述目标平台为Github托管平台,但并不局限于此。所述接口测试用例文件内可包括至少一个接口测试用例以及对应的接口基本信息。所述接口基本信息根据用户的输入进行设置。所述接口基本信息包括接口的输入参数、测试结果、接口设计者名称、是否需要执行、执行顺序、运行时长、比较方式、期望数据等内容。举例来讲,所述接口可包括产品列表接口、产品详情接口、额度校验接口以及订单受理接口等,但不局限于此。其中,所述输入参数请求可包括占位符。所述占位符为当前所述接口的输入参数依赖于其他接口的输出。所述占位符的格式为(APIName.${FieldName})。
S12、在接收到设置指令时,在所述可视化界面设定配置信息。
在本发明的至少一个实施例中,所述配置信息可包括指定持续时间和配置参数。所述指定持续时间为执行持续操作的时间。举例来讲,所述持续时间可以为30分钟。所述配置参数可包括如下参数中的一种或多种:所述接口的基本信息、所述执行终端的IP地址、测试结果的指定格式、发送测试结果的指定发送方式以及接收所述测试结果的指定接收人员等,但并不局限于此。
S13、在接收到下载指令时,由所述目标平台下载测试工具、至少一个依赖文件以及至少一个接口测试用例文件至执行终端。
所述依赖文件为JAR文件,其为实现所述接口测试用例文件自动化测试所需的文件。举例来讲,所述依赖文件可以为在解析操作过程中需使用的dom4j.jar文件,也可以为在验证测试结果操作过程中需使用的rest-assured-3.0.0.jar文件,并不以此为限。
S14、在接收到解析指令时,利用获取的测试工具以及所述至少一个依赖文件解析获取的所述接口测试用例文件,以生成接口测试代码。
请一并参阅图2,在本发明的至少一个实施例中,所述利用获取的测试工具以及所述至少一个依赖文件解析获取的所述接口测试用例文件的步骤可进一步包括:
S141、根据数据节点将所述接口请求进行排列,以生成树形节点;
S142、按照所述树形节点依次输出所述接口测试代码。
在本发明的至少一个实施例中,所述接口测试代码中包括多个接口请求。所述接口请求可以为同步操作的接口请求和异步操作的接口请求。所述同步操作的接口请求为在执行后直接产生对应的输出参数,所述异步操作的接口请求为在执行后需从数据库内调取对应的字段作为输出参数。所述接口测试用例文件中可进一步包括数据库信息。所述数据库信息可包括数据库地址、用户名称、密码以及查询语句,但并不局限于此。所述查询语句为以结构化查询语言(Structured Query Language,SQL)编写。
S15、在接收到执行指令时,利用持续集成工具以指定顺序在所述指定持续时间内重复执行所述接口测试代码。
在本发明的至少一个实施例中,所述执行操作是利用持续集成工具实现。所述持续集成工具为Jenkins。所述Jenkins为开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作。
S16、接收返回的测试数据并形成测试数据集。
请一并参阅图3,在本发明的至少一个实施例中,所述测试数据包括输出参数、响应时间以及测试结果等,但并不局限于此。
在本发明的至少一个实施例中,所述接收返回的测试数据并形成测试数据集的步骤可进一步包括:
S161、判断所述接口请求是否为异步操作接口请求;
S162、在所述接口请求为异步操作的接口请求时,根据所述数据库信息从数据库内获取相应的字段作为所述接口测试用例对应的所述输出参数;
S163、在所述接口请求不是异步操作接口请求,判断所述输出参数中是否具有所述占位符;
S164、在所述输出参数中具有所述占位符时,解析所述占位符并从所述测试数据集中获取对应的字段,以替代所述输出参数中的所述占位符;
S165、在所述接口请求中不具有所述占位符时,直接输出所述接口测试用例对应的所述输出参数。
S17、在接收到校验指令时,校验所述测试数据集。
请一并参阅图4,在本发明的至少一个实施例中,所述校验所述测试数据集的步骤可进一步包括:
S171、判断所述输出参数和期望数据是否一致;
S172、在所述输出参数与所述期望数据一致时,则标记所述接口测试用例的测试结果为通过;
S173、在所述输出参数与所述期望数据不一致时,则标记所述接口测试用例的测试结果为不通过。
S18、在接收到存储指令时,存储所述测试数据集。
S19、在接收到测试报告生成指令时,将所述测试数据集以指定格式生成测试报告,并以指定发送方式将所述测试报告发送给指定人员。
在本发明的至少一个实施例中,所述指定发送方式为邮件。所述指定发送方式可以为即时通讯消息,例如微信、QQ、IM以及短信等方式,但不局限于此。所述指定格式可以为EXCEL、WORD、XML以及PDF等,但不局限于此。
在本发明的至少一个实施例中,所述测试报告可以包括接口测试用例的名称、期望数据、返回的测试数据、成功率、执行总数以及失败总数,但并不局限于此。
在本发明的至少一个实施例中,上述所有指令可以是通过输入设备接收的数据请求指令。所述输入设备可以包括键盘输入、触摸屏输入等,但是本公开的示例实施例中的用户输入方式不限于此。上述各种指令可以为用户在图形用户界面上的预设按键通过用户的操作产生。具体地,所述用户的操作包括,但不限于:滑动操作、点击操作(如:单击操作、双击操作等等)。具体地,所述预设按键可以是所述输入设备上的实体按键,也可以是所述输入设备上的虚拟按键等等(例如:所述虚拟按键可以是所述输入设备的显示器上的一个虚拟图标等),本发明在此不做限制。
由以上实施例可知,接口自动化测试方法可实现异步交互的接口测试文件自动化测试,加速接口测试文件的测试速度,缩短了软件开发周期。
请参照图5,本发明提供一种接口自动化测试装置1,应用于一个或多个设备中。本发明的至少一个实施例中,所述接口自动化测试装置1应用于至少一终端设备及服务器构成的接口自动化测试***中。所述终端设备和所述服务器之间根据预设协议进行数据传输。优选地,所述预设协议包括,但不限于以下任意一种:HTTP协议(Hyper Text TransferProtocol,超文本传输协议)、HTTPS协议(Hyper Text Transfer Protocol over SecureSocket Layer,以安全为目标的HTTP协议)等。本发明的至少一个实施例中,所述服务器可以是单一的服务器,也可以为由几个功能服务器共同组成的服务器群。所述终端设备可以是任意具有网络连接功能的终端,例如,所述终端设备可以为个人计算机、平板电脑、智能手机、个人数字助理(Personal Digital Assistant,PDA)、游戏机、交互式网络电视(Internet Protocol Television,IPTV)、智能式穿戴式设备、导航装置等等的可移动设备,或者台式电脑、数字TV等等固定设备。
所述接口自动化测试装置1提供一可视化界面。所述可视化界面用于向用户提供人机交互接口,用户可以在通过手机或电脑等终端设备连接到所述自动化接口测试***。所述自动化接口测试***用于对接口测试用例文件进行持续集成、自动化测试以及生成测试报告。所述服务器中可包括数据库。所述数据库可存储有至少一个配置信息。
在本发明的一个实施例中,所述接口自动化测试装置1包括:
构建模块10,用于在可视化界面内构建测试用例文件并存储于目标平台。
在本发明的至少一个实施例中,所述接口测试用例文件用于在执行时对至少一个接口的功能或性能进行测试,且在任意一个执行终端中被执行。所述接口测试用例文件存储于目标平台,且以可扩展标记语言(Extensible Markup Language,XML)进行存储。在本发明的至少一个实施例中,所述目标平台为Github托管平台,但并不局限于此。所述接口测试用例文件内可包括至少一个接口测试用例以及对应的接口基本信息。所述接口基本信息根据用户的输入进行设置。所述接口基本信息包括接口的输入参数、测试结果、接口设计者名称、是否需要执行、执行顺序、运行时长、比较方式、期望数据等内容。举例来讲,所述接口可包括产品列表接口、产品详情接口、额度校验接口以及订单受理接口等,但不局限于此。其中,所述输入参数请求可包括占位符。所述占位符为当前所述接口的输入参数依赖于其他接口的输出。所述占位符的格式为(APIName.${FieldName})。
设置模块20,用于在接收到设置指令时在所述可视化界面设定配置信息。
在本发明的至少一个实施例中,所述配置信息可包括指定持续时间和配置参数。所述指定持续时间为执行持续操作的时间。举例来讲,所述指定持续时间可以为30分钟。所述配置参数可包括如下参数中的一种或多种:所述接口的基本信息、所述执行终端的IP地址、测试结果的指定格式、发送测试结果的指定发送方式以及接收所述测试结果的指定接收人员等,但并不局限于此。
下载模块30,用于在接收到下载指令时由所述目标平台下载测试工具、至少一个依赖文件以及至少一个接口测试用例文件至执行终端。
所述依赖文件为JAR文件,其为实现所述接口测试用例文件自动化测试所需的文件。举例来讲,所述依赖文件可以为在解析操作过程中需使用的dom4j.jar文件,也可以为在验证测试结果操作过程中需使用的rest-assured-3.0.0.jar文件,并不以此为限。
解析模块40,用于在接收到解析指令时利用获取的测试工具以及所述至少一个依赖文件解析获取的所述接口测试用例文件,以生成接口测试代码。
所述解析模块40进一步地根据数据节点将所述接口请求进行排列,以生成树形节点。
所述解析模块40进一步地按照所述树形节点依次输出所述接口测试代码。
在本发明的至少一个实施例中,所述接口测试代码中包括多个接口请求。所述接口请求可以为同步操作的接口请求和异步操作的接口请求。所述同步操作的接口请求为在执行后直接产生对应的输出参数,所述异步操作的接口请求为在执行后需从数据库内调取对应的字段作为输出参数。所述接口测试用例文件中可进一步包括数据库信息。所述数据库信息可包括数据库地址、用户名称、密码以及查询语句,但并不局限于此。所述查询语句为以结构化查询语言(Structured Query Language,SQL)编写。
测试模块50,用于在接收到执行指令时利用持续集成工具以指定顺序在所述指定持续时间内重复执行所述接口测试代码。
在本发明的至少一个实施例中,所述执行操作是利用持续集成工具实现。所述持续集成工具为Jenkins。所述Jenkins为开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作。
接收模块60,用于接收返回的测试数据并形成测试数据集。
所述接收模块60进一步地判断所述接口请求是否为异步操作接口请求。
在所述接口请求为异步操作的接口请求时,所述接收模块60进一步地根据所述数据库信息从数据库内获取相应的字段作为所述接口测试用例对应的所述输出参数。
在所述接口请求不是异步操作接口请求,所述接收模块60进一步地判断所述输出参数中是否具有所述占位符。
在所述输出参数中具有所述占位符时,所述接收模块60进一步地解析所述占位符并从所述测试数据集中获取对应的字段,以替代所述输出参数中的所述占位符。
在所述接口请求中不具有所述占位符时,所述接收模块60进一步地直接输出所述接口测试用例对应的所述输出参数。
校验模块70,用于在接收到校验指令时校验所述测试数据集。
所述校验模块70进一步地判断所述输出参数和期望数据是否一致。
在所述输出参数与所述期望数据一致时,所述校验模块70进一步地标记所述接口测试用例的测试结果为通过。
在所述输出参数与所述期望数据不一致时,所述校验模块70进一步地标记所述接口测试用例的测试结果为不通过。
存储模块80,用于在接收到存储指令时存储所述测试数据集。
报告生成模块90,用于在接收到测试报告生成指令时将所述测试数据集以指定格式生成测试报告,并以指定发送方式将所述测试报告发送给指定人员。
在本发明的至少一个实施例中,所述指定发送方式为邮件。所述指定发送方式可以为即时通讯消息,例如微信、QQ、IM以及短信等方式,但不局限于此。所述指定格式可以为EXCEL、WORD、XML以及PDF等,但不局限于此。
在本发明的至少一个实施例中,所述测试报告可以包括接口测试用例的名称、期望数据、返回的测试数据、成功率、执行总数以及失败总数,但并不局限于此。
在本发明的至少一个实施例中,上述所有指令可以是通过输入设备接收的数据请求指令。所述输入设备可以包括键盘输入、触摸屏输入等,但是本公开的示例实施例中的用户输入方式不限于此。上述各种指令可以为用户在图形用户界面上的预设按键通过用户的操作产生。具体地,所述用户的操作包括,但不限于:滑动操作、点击操作(如:单击操作、双击操作等等)。具体地,所述预设按键可以是所述输入设备上的实体按键,也可以是所述输入设备上的虚拟按键等等(例如:所述虚拟按键可以是所述输入设备的显示器上的一个虚拟图标等),本发明在此不做限制。
由以上实施例可知,接口自动化测试方法可实现异步交互的接口测试文件自动化测试,加速接口测试文件的测试速度,缩短了软件开发周期。
请参阅图6,其为本发明实施例的一种存储介质。所述存储介质为计算机可读存储介质。所述计算机可读存储介质上存储有计算机指令。所述计算机指令可被存储于存储器102上,且当被一个或多个处理器106执行时,从而实现如上文方法实施例所述的接口自动化测试方法。
所述存储器102用于存储程序代码。所述存储器102可以是集成电路中没有实物形式的具有存储功能的电路,如RAM(Random-Access Memory,随机存取存储器)、FIFO(FirstIn First Out,)等。或者,所述存储器102也可以是具有实物形式的存储器,如内存条、TF卡(Trans-flash Card)、智能媒体卡(smart media card)、安全数字卡(secure digitalcard)、快闪存储器卡(flash card)等储存设备。所述存储器102可通过通信总线104与处理器106进行数据通信。所述存储器102中可以包括操作***、网络通信模块以及接口自动化测试程序。操作***是管理和控制接口自动化测试设备硬件和软件资源的程序,支持接口自动化测试程序以及其它软件和/或程序的运行。网络通信模块用于实现所述存储器102内部各组件之间的通信,以及与接口自动化测试设备中其它硬件和软件之间通信。
所述处理器106可以包括一个或者多个微处理器、数字处理器。所述处理器106可调用所述存储器102中存储的程序代码以执行相关的功能。例如,图1中所述的各个模块是存储在所述存储器102中的程序代码,并由所述处理器106所执行,以实现一种接口自动化测试类方法。所述处理器106又称中央处理器(CPU,Central Processing Unit),是一块超大规模的集成电路,是运算核心(Core)和控制核心(Control Unit)。
所述处理器106用于执行所述存储器102中存储的多个计算机指令以实现接口自动化测试方法,所述处理器106可执行多个指令从而实现以下步骤:
S11、在可视化界面内构建测试用例文件并存储于目标平台。
在本发明的至少一个实施例中,所述接口测试用例文件用于在执行时对至少一个接口的功能或性能进行测试,且在任意一个执行终端中被执行。所述接口测试用例文件存储于目标平台,且以可扩展标记语言(Extensible Markup Language,XML)进行存储。在本发明的至少一个实施例中,所述目标平台为Github托管平台,但并不局限于此。所述接口测试用例文件内可包括至少一个接口测试用例以及对应的接口基本信息。所述接口基本信息根据用户的输入进行设置。所述接口基本信息包括接口的输入参数、测试结果、接口设计者名称、是否需要执行、执行顺序、运行时长、比较方式、期望数据等内容。举例来讲,所述接口可包括产品列表接口、产品详情接口、额度校验接口以及订单受理接口等,但不局限于此。其中,所述输入参数请求可包括占位符。所述占位符为当前所述接口的输入参数依赖于其他接口的输出。所述占位符的格式为(APIName.${FieldName})。
S12、在接收到设置指令时,在所述可视化界面设定配置信息。
在本发明的至少一个实施例中,所述配置信息可包括指定持续时间和配置参数。所述指定持续时间为执行持续操作的时间。举例来讲,所述持续时间可以为30分钟。所述配置参数可包括如下参数中的一种或多种:所述接口的基本信息、所述执行终端的IP地址、测试结果的指定格式、发送测试结果的指定发送方式以及接收所述测试结果的指定接收人员等,但并不局限于此。
S13、在接收到下载指令时,由所述目标平台下载测试工具、至少一个依赖文件以及至少一个接口测试用例文件至执行终端。
所述依赖文件为JAR文件,其为实现所述接口测试用例文件自动化测试所需的文件。举例来讲,所述依赖文件可以为在解析操作过程中需使用的dom4j.jar文件,也可以为在验证测试结果操作过程中需使用的rest-assured-3.0.0.jar文件,并不以此为限。
S14、在接收到解析指令时,利用获取的测试工具以及所述至少一个依赖文件解析获取的所述接口测试用例文件,以生成接口测试代码。
请一并参阅图2,在本发明的至少一个实施例中,所述利用获取的测试工具以及所述至少一个依赖文件解析获取的所述接口测试用例文件的步骤可进一步包括:
S141、根据数据节点将所述接口请求进行排列,以生成树形节点;
S142、按照所述树形节点依次输出所述接口测试代码。
在本发明的至少一个实施例中,所述接口测试代码中包括多个接口请求。所述接口请求可以为同步操作的接口请求和异步操作的接口请求。所述同步操作的接口请求为在执行后直接产生对应的输出参数,所述异步操作的接口请求为在执行后需从数据库内调取对应的字段作为输出参数。所述接口测试用例文件中可进一步包括数据库信息。所述数据库信息可包括数据库地址、用户名称、密码以及查询语句,但并不局限于此。所述查询语句为以结构化查询语言(Structured Query Language,SQL)编写。
S15、在接收到执行指令时,利用持续集成工具以指定顺序在所述指定持续时间内重复执行所述接口测试代码。
在本发明的至少一个实施例中,所述执行操作是利用持续集成工具实现。所述持续集成工具为Jenkins。所述Jenkins为开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作。
S16、接收返回的测试数据并形成测试数据集。
请一并参阅图3,在本发明的至少一个实施例中,所述测试数据包括输出参数、响应时间以及测试结果等,但并不局限于此。
在本发明的至少一个实施例中,所述接收返回的测试数据并形成测试数据集的步骤可进一步包括:
S161、判断所述接口请求是否为异步操作接口请求;
S162、在所述接口请求为异步操作的接口请求时,根据所述数据库信息从数据库内获取相应的字段作为所述接口测试用例对应的所述输出参数;
S163、在所述接口请求不是异步操作接口请求,判断所述输出参数中是否具有所述占位符;
S164、在所述输出参数中具有所述占位符时,解析所述占位符并从所述测试数据集中获取对应的字段,以替代所述输出参数中的所述占位符;
S165、在所述接口请求中不具有所述占位符时,直接输出所述接口测试用例对应的所述输出参数。
S17、在接收到校验指令时,校验所述测试数据集。
请一并参阅图3,在本发明的至少一个实施例中,所述校验所述测试数据集的步骤可进一步包括:
S171、判断所述输出参数和期望数据是否一致;
S172、在所述输出参数与所述期望数据一致时,则标记所述接口测试用例的测试结果为通过;
S173、在所述输出参数与所述期望数据不一致时,则标记所述接口测试用例的测试结果为不通过。
S18、在接收到存储指令时,存储所述测试数据集。
S19、在接收到测试报告生成指令时,将所述测试数据集以指定格式生成测试报告,并以指定发送方式将所述测试报告发送给指定人员。
在本发明的至少一个实施例中,所述指定发送方式为邮件。所述指定发送方式可以为即时通讯消息,例如微信、QQ、IM以及短信等方式,但不局限于此。所述指定格式可以为EXCEL、WORD、XML以及PDF等,但不局限于此。
在本发明的至少一个实施例中,所述测试报告可以包括接口测试用例的名称、期望数据、返回的测试数据、成功率、执行总数以及失败总数,但并不局限于此。
在本发明的至少一个实施例中,上述所有指令可以是通过输入设备接收的数据请求指令。所述输入设备可以包括键盘输入、触摸屏输入等,但是本公开的示例实施例中的用户输入方式不限于此。上述各种指令可以为用户在图形用户界面上的预设按键通过用户的操作产生。具体地,所述用户的操作包括,但不限于:滑动操作、点击操作(如:单击操作、双击操作等等)。具体地,所述预设按键可以是所述输入设备上的实体按键,也可以是所述输入设备上的虚拟按键等等(例如:所述虚拟按键可以是所述输入设备的显示器上的一个虚拟图标等),本发明在此不做限制。
由以上实施例可知,接口自动化测试方法可实现异步交互的接口测试文件自动化测试,加速接口测试文件的测试速度,缩短了软件开发周期。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明的各个实施例中的各功能模块可以集成在一个处理器中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种接口自动化测试方法,其特征在于,所述接口自动化测试方法包括:
在可视化界面内构建测试用例文件并存储于目标平台;
在接收到下载指令时,由所述目标平台下载测试工具、至少一个依赖文件以及至少一个接口测试用例文件至执行终端;
在接收到解析指令时,利用获取的测试工具以及所述至少一个依赖文件解析获取的所述接口测试用例文件,以生成接口测试代码;
在接收到执行指令时,利用持续集成工具以指定顺序在指定持续时间内重复执行所述接口测试代码;
接收返回的测试数据并形成测试数据集;
在接收到存储指令时,存储所述测试数据集。
2.如权利要求1所述的接口自动化测试方法,其特征在于,所述接口测试代码中包括多个接口请求和数据库信息;所述接口请求包括同步操作接口请求和异步操作接口请求;所述测试数据包括输出参数、响应时间以及测试结果;所述利用持续集成工具以指定顺序在所述指定持续时间内重复执行所述接口测试代码的步骤包括:
判断所述接口请求是否为异步操作接口请求;
在所述接口请求为异步操作的接口请求时,根据所述数据库信息从数据库内获取相应的字段作为所述接口测试用例对应的所述输出参数。
3.如权利要求2所述的接口自动化测试方法,其特征在于,所述利用持续集成工具以指定顺序在所述指定持续时间内重复执行所述接口测试代码的步骤包括:
在所述接口请求不是异步操作接口请求,判断所述输出参数中是否具有占位符;
在所述输出参数中具有所述占位符时,解析所述占位符并从所述测试数据集中获取对应的字段,以替代所述输出参数中的所述占位符;
在所述接口请求中不具有所述占位符时,直接输出所述接口测试用例对应的所述输出参数。
4.如权利要求2至3项中任意一项所述的接口自动化测试方法,其特征在于,所述接口自动化测试方法包括:
在接收到校验指令时,校验所述测试数据集;
判断所述输出参数和期望数据是否一致;
在所述输出参数与所述期望数据一致时,则标记所述接口测试用例的测试结果为通过;
在所述输出参数与所述期望数据不一致时,则标记所述接口测试用例的测试结果为不通过。
5.如权利要求1至3项中任意一项所述的接口自动化测试方法,其特征在于,所述接口自动化测试方法包括:
在接收到设置指令时,在所述可视化界面设定配置信息;所述配置信息包括所述指定持续时间和配置参数;所述配置参数包括接口的基本信息以及所述执行终端的IP地址。
6.如权利要求2所述的接口自动化测试方法,其特征在于,所述利用获取的测试工具以及所述至少一个依赖文件解析获取的所述接口测试用例文件的步骤包括:
根据数据节点将所述接口请求进行排列,以生成树形节点;
按照所述树形节点依次输出所述接口测试代码。
7.如权利要求1至3项中任意一项所述的接口自动化测试方法,其特征在于,所述接口自动化测试方法进一步包括:
在接收到测试报告生成指令时,将所述测试数据集以指定格式生成测试报告,并以指定发送方式将所述测试报告发送给指定人员。
8.一种接口自动化测试装置,其特征在于,所述接口自动化测试装置包括:
构建模块,用于在可视化界面内构建测试用例文件并存储于目标平台;
下载模块,用于在接收到下载指令时由所述目标平台下载测试工具、至少一个依赖文件以及至少一个接口测试用例文件至执行终端,解析模块,用于在接收到解析指令时利用获取的测试工具以及所述至少一个依赖文件解析获取的所述接口测试用例文件,以生成接口测试代码;
测试模块,用于在接收到执行指令时利用持续集成工具以指定顺序在指定持续时间内重复执行所述接口测试代码,接收返回的测试数据并形成测试数据集;
存储模块,用于在接收到存储指令时存储所述测试数据集。
9.一种设备,其特征在于,所述设备包括处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序时实现如权利要求1至7中任意一项所述的接口自动化测试方法。
10.一种存储介质,其特征在于,所述存储介质为计算机可读存储介质,存储有至少一个指令,所述至少一个指令被处理器执行时实现如权利要求1至7中任意一项所述的接口自动化测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910190383.6A CN110109817A (zh) | 2019-03-13 | 2019-03-13 | 接口自动化测试方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910190383.6A CN110109817A (zh) | 2019-03-13 | 2019-03-13 | 接口自动化测试方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110109817A true CN110109817A (zh) | 2019-08-09 |
Family
ID=67484349
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910190383.6A Pending CN110109817A (zh) | 2019-03-13 | 2019-03-13 | 接口自动化测试方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110109817A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110764997A (zh) * | 2019-09-06 | 2020-02-07 | 武汉迎风聚智科技有限公司 | 一种数据库接口符合性测试方法以及装置 |
CN110851361A (zh) * | 2019-11-08 | 2020-02-28 | 拉扎斯网络科技(上海)有限公司 | 接口测试方法、装置、电子设备及可读存储介质 |
CN110888804A (zh) * | 2019-11-11 | 2020-03-17 | 网联清算有限公司 | 接口测试方法以及接口测试平台 |
CN110955600A (zh) * | 2019-11-27 | 2020-04-03 | 中国银行股份有限公司 | 接口测试方法及装置 |
CN112131127A (zh) * | 2020-09-28 | 2020-12-25 | 北京同邦卓益科技有限公司 | 接口测试方法、装置、***及电子设备 |
CN112612665A (zh) * | 2020-12-26 | 2021-04-06 | 中国农业银行股份有限公司 | 一种金融智能设备的测试方法、装置及设备 |
CN112631914A (zh) * | 2020-12-24 | 2021-04-09 | 上海幻电信息科技有限公司 | 一种数据测试方法及装置 |
CN112699044A (zh) * | 2021-01-05 | 2021-04-23 | 长沙市到家悠享家政服务有限公司 | 压力测试方法、设备及存储介质 |
CN113064823A (zh) * | 2021-03-30 | 2021-07-02 | 奇瑞汽车股份有限公司 | 汽车的零部件功能测试方法、装置及计算机存储介质 |
CN113297083A (zh) * | 2021-05-27 | 2021-08-24 | 山东云海国创云计算装备产业创新中心有限公司 | 一种跨平台ic测试方法、装置、设备及介质 |
CN113778863A (zh) * | 2021-08-23 | 2021-12-10 | 行云智网络科技(北京)有限公司 | 一种自动化测试的方法及*** |
CN116756043A (zh) * | 2023-08-10 | 2023-09-15 | 东方空间技术(山东)有限公司 | 一种目标设备的软件测试方法、装置、设备及存储介质 |
CN117520210A (zh) * | 2024-01-05 | 2024-02-06 | 芯瞳半导体技术(山东)有限公司 | ***软件测试方法、目标机器及远程测试中控机 |
-
2019
- 2019-03-13 CN CN201910190383.6A patent/CN110109817A/zh active Pending
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110764997B (zh) * | 2019-09-06 | 2021-07-23 | 武汉迎风聚智科技有限公司 | 一种数据库接口符合性测试方法以及装置 |
CN110764997A (zh) * | 2019-09-06 | 2020-02-07 | 武汉迎风聚智科技有限公司 | 一种数据库接口符合性测试方法以及装置 |
CN110851361A (zh) * | 2019-11-08 | 2020-02-28 | 拉扎斯网络科技(上海)有限公司 | 接口测试方法、装置、电子设备及可读存储介质 |
CN110888804A (zh) * | 2019-11-11 | 2020-03-17 | 网联清算有限公司 | 接口测试方法以及接口测试平台 |
CN110888804B (zh) * | 2019-11-11 | 2022-02-01 | 网联清算有限公司 | 接口测试方法以及接口测试平台 |
CN110955600A (zh) * | 2019-11-27 | 2020-04-03 | 中国银行股份有限公司 | 接口测试方法及装置 |
CN110955600B (zh) * | 2019-11-27 | 2023-11-10 | 中国银行股份有限公司 | 接口测试方法及装置 |
CN112131127A (zh) * | 2020-09-28 | 2020-12-25 | 北京同邦卓益科技有限公司 | 接口测试方法、装置、***及电子设备 |
CN112131127B (zh) * | 2020-09-28 | 2024-04-16 | 北京同邦卓益科技有限公司 | 接口测试方法、装置、***及电子设备 |
CN112631914A (zh) * | 2020-12-24 | 2021-04-09 | 上海幻电信息科技有限公司 | 一种数据测试方法及装置 |
CN112612665A (zh) * | 2020-12-26 | 2021-04-06 | 中国农业银行股份有限公司 | 一种金融智能设备的测试方法、装置及设备 |
CN112699044A (zh) * | 2021-01-05 | 2021-04-23 | 长沙市到家悠享家政服务有限公司 | 压力测试方法、设备及存储介质 |
CN112699044B (zh) * | 2021-01-05 | 2023-02-24 | 长沙市到家悠享家政服务有限公司 | 压力测试方法、设备及存储介质 |
CN113064823A (zh) * | 2021-03-30 | 2021-07-02 | 奇瑞汽车股份有限公司 | 汽车的零部件功能测试方法、装置及计算机存储介质 |
CN113064823B (zh) * | 2021-03-30 | 2024-04-09 | 奇瑞汽车股份有限公司 | 汽车的零部件功能测试方法、装置及计算机存储介质 |
CN113297083A (zh) * | 2021-05-27 | 2021-08-24 | 山东云海国创云计算装备产业创新中心有限公司 | 一种跨平台ic测试方法、装置、设备及介质 |
CN113778863A (zh) * | 2021-08-23 | 2021-12-10 | 行云智网络科技(北京)有限公司 | 一种自动化测试的方法及*** |
CN116756043B (zh) * | 2023-08-10 | 2023-11-03 | 东方空间技术(山东)有限公司 | 一种目标设备的软件测试方法、装置、设备及存储介质 |
CN116756043A (zh) * | 2023-08-10 | 2023-09-15 | 东方空间技术(山东)有限公司 | 一种目标设备的软件测试方法、装置、设备及存储介质 |
CN117520210A (zh) * | 2024-01-05 | 2024-02-06 | 芯瞳半导体技术(山东)有限公司 | ***软件测试方法、目标机器及远程测试中控机 |
CN117520210B (zh) * | 2024-01-05 | 2024-04-16 | 芯瞳半导体技术(山东)有限公司 | ***软件测试方法、目标机器及远程测试中控机 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110109817A (zh) | 接口自动化测试方法、装置、设备及存储介质 | |
CN110096429A (zh) | 测试报告生成方法、装置、设备及存储介质 | |
CN108415832B (zh) | 接口自动化测试方法、装置、设备及存储介质 | |
US11163671B2 (en) | Automatically executing stateless transactions with data dependency in test cases | |
CN104572114B (zh) | 一种绑定装置、应用更新装置及方法 | |
CN104639653A (zh) | 基于云架构的自适应方法及*** | |
CN110275831A (zh) | 协议接口的mock数据校验方法和装置 | |
US20220198025A1 (en) | Web Attack Simulator | |
CN104915193B (zh) | 一种流程引擎的处理方法和装置 | |
CN109806592A (zh) | 一种游戏资源的监控方法和装置 | |
Wang et al. | A model-based framework for cloud API testing | |
CN109582560A (zh) | 测试文件编辑方法、装置、设备及计算机可读存储介质 | |
Probert et al. | TTCN: the international notation for specifying tests of communications systems | |
US10310962B2 (en) | Infrastructure rule generation | |
CN116263659A (zh) | 数据处理方法、装置、计算机程序产品、设备及存储介质 | |
EP1510919A2 (en) | Systems and methods for synchronizing software execution across data processing systems and platforms | |
CN113495723B (zh) | 一种调用功能组件的方法、装置及存储介质 | |
Luo et al. | Clustering and tailoring user session data for testing web applications | |
CN116127945A (zh) | 网络链接处理方法和装置、电子设备、存储介质 | |
WO2022155685A1 (en) | Web attack simulator | |
CN112559278B (zh) | 操作数据的获取方法和装置 | |
CN114004206A (zh) | 一种表单生成方法、装置、计算机设备和存储介质 | |
CN114860566A (zh) | 源代码测试方法、装置、电子设备及存储介质 | |
CN109756393A (zh) | 信息处理方法、***、介质和计算设备 | |
Song et al. | Model composition and generating tests for web applications |
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 |