CN110232016A - 接口测试用例生成方法、装置及控制器和介质 - Google Patents
接口测试用例生成方法、装置及控制器和介质 Download PDFInfo
- Publication number
- CN110232016A CN110232016A CN201910177150.2A CN201910177150A CN110232016A CN 110232016 A CN110232016 A CN 110232016A CN 201910177150 A CN201910177150 A CN 201910177150A CN 110232016 A CN110232016 A CN 110232016A
- Authority
- CN
- China
- Prior art keywords
- interface
- parameters
- parameter
- request
- case
- 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
- 238000000034 method Methods 0.000 title claims abstract description 87
- 238000012360 testing method Methods 0.000 title claims abstract description 76
- 230000008569 process Effects 0.000 claims abstract description 45
- 238000004140 cleaning Methods 0.000 claims abstract description 30
- 230000003068 static effect Effects 0.000 claims description 16
- 238000012790 confirmation Methods 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 claims description 2
- 238000004590 computer program Methods 0.000 claims description 2
- 230000015572 biosynthetic process Effects 0.000 abstract description 3
- 230000008859 change Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000000151 deposition Methods 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000002347 injection Methods 0.000 description 2
- 239000007924 injection Substances 0.000 description 2
- 230000002688 persistence Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000005406 washing Methods 0.000 description 1
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)
- User Interface Of Digital Computer (AREA)
Abstract
本发明涉及一种接口测试用例生成方法、装置及控制器和介质,所述方法包括:获取接口参数;根据预设的数据清洗规则清洗所述接口参数;将清洗后的接口参数按照接口调用关系进行流程组装,生成接口测试用例。本发明提高了测试用例的生成效率,减少了手动工作量,降低了人工成本,进而提高了自动化测试的效率。
Description
技术领域
本发明涉及自动化测试技术领域,尤其涉及一种接口测试用例生成方法、装置及控制器和介质。
背景技术
随着微服务架构的大面积推广,针对接口的自动化测试方法被广泛使用,现有的针对接口的自动化测试方法大都依赖于人工根据业务流程录入大量接口参数,从而提供测试用例。但是,大多业务流程涉及较多接口,多数接口又涉及大量参数和调用关系。通过人工手动录入参数以生成用例的过程耗费了大量测试时间,严重限制了接口测试自动化的效率,增加了自动化测试成本。
发明内容
本发明目的在于,提供一种接口测试用例生成方法、装置及控制器和介质,提高测试用例的生成效率,减少手动工作量,降低人工成本,从而提高自动化测试的效率。
为了解决上述技术问题,根据本发明第一实施例,提供了一种接口测试用例生成方法,包括:
获取接口参数;
根据预设的数据清洗规则清洗所述接口参数;
将清洗后的接口参数按照接口调用关系进行流程组装,生成接口测试用例。
进一步的,所述获取接口参数,包括以下步骤:
执行待测流程;
采用抓包工具捕获所述待测流程对应的接口参数;
将所述接口参数传输并存储在数据库中,其中,所述接口参数包括请求头、请求地址、请求体和响应信息。
进一步的,所述预设的数据清洗规则包括:清除静态资源请求的链接、清除预先设定的预请求、清除与被测业务流程无关的请求中的一种或多种,其中,所述静态资源请求的链接包括css文件、js文件、图片文件和html文件;所述预先设定的预请求包括Options类型的请求。
进一步的,所述将清洗后的接口参数按照接口调用关系进行流程组装,包括以下步骤:
将清洗后的接口参数按照接口调用逻辑顺序进行组织排列,生成接口调用序列;
解析所述接口调用序列,循环遍历所述接口调用序列;
获取接口之间的数据依赖关系,并根据所述数据关系进行参数化。
进一步的,所述获取接口之间的数据依赖关系,并根据所述数据关系进行参数化,包括以下步骤:
第一接口请求识别第一参数;
在缓存中查找是否存在所述第一参数,若存在,则从缓存中获取所述第一参数对所述第一接口进行参数化替换;
若不存在,则匹配第二接口中是否存在所述第一参数,若匹配成功,则从所述第二接口获取所述第一参数,将所述第一参数存储至缓存中,并对所述第一接口进行参数化替换,其中,所述第二接口为所述第一接口的上一接口;
若匹配失败,则继续匹配第三接口是否存在所述第一参数,若匹配成功,则从所述第三接口获取所述第一参数,将所述第一参数存储至缓存中,并对所述第一接口进行参数化替换,所述第三接口为所述第二接口的上一接口;
依次循环执行,直至所述第一接口完成参数化替换,或者访问至最顶端的接口时,结束执行。
进一步的,在根据预设的数据清洗规则清洗所述接口参数步骤之后,以及在将清洗后的接口参数按照接口调用关系进行流程组装步骤之前,所述方法还包括以下步骤:
判断根据预设的数据清洗规则清洗的所述接口参数是否存在多余或多删的接口参数;
若存在,则删除所述多余的接口参数并恢复多删的接口参数,从而得到所述清洗后的数据。
进一步的,在将清洗后的接口参数按照接口调用关系进行流程组装步骤之后,所述方法还包括:
判断是否所有参数均完成参数化,若否,则对未完成参数化的参数进行参数化。
进一步的,所述方法还包括,将所生成的测试用例持久化到数据库中,所述接口测试用例包括请求头、请求体、请求地址、断言内容和相应结果所需提取的参数。
根据本发明第二实施例,提供了一种接口测试用例生成装置,包括:
数据获取模块,配置为获取接口参数;
数据清洗模块,配置为根据预设的数据清洗规则清洗所述接口参数;
流程组装模块,配置为将清洗后的接口参数按照接口调用关系进行流程组装,生成接口测试用例。
进一步的,所述数据获取模块包括:
执行单元,配置为执行待测流程;
捕获单元,配置为采用抓包工具捕获所述待测流程对应的接口参数;
传输单元,配置为将所述接口参数传输并存储在数据库中,其中,所述接口参数包括请求头、请求地址、请求体和响应信息。
进一步的,所述预设的数据清洗规则包括:清除静态资源请求的链接、清除预先设定的预请求、清除与被测业务流程无关的请求中的一种或多种,其中,所述静态资源请求的链接包括css文件、js文件、图片文件和html文件;所述预先设定的预请求包括Options类型的请求。
进一步的,所述流程组装模块包括:
组织排列单元,配置为将清洗后的接口参数按照接口调用逻辑顺序进行组织排列,生成接口调用序列;
循环遍历单元,配置为解析所述接口调用序列,循环遍历所述接口调用序列;
参数化单元,配置为获取接口之间的数据依赖关系,并根据所述数据关系进行参数化。
进一步的,所述参数化单元具体配置为:
第一接口请求识别第一参数;
在缓存中查找是否存在所述第一参数,若存在,则从缓存中获取所述第一参数对所述第一接口进行参数化替换;
若不存在,则匹配第二接口中是否存在所述第一参数,若匹配成功,则从所述第二接口获取所述第一参数,将所述第一参数存储至缓存中,并对所述第一接口进行参数化替换,其中,所述第二接口为所述第一接口的上一接口;
若匹配失败,则继续匹配第三接口是否存在所述第一参数,若匹配成功,则从所述第三接口获取所述第一参数,将所述第一参数存储至缓存中,并对所述第一接口进行参数化替换,所述第三接口为所述第二接口的上一接口;
依次循环执行,直至所述第一接口完成参数化替换,或者访问至最顶端的接口时,结束执行。
进一步的,所述装置还包括第一确认模块,配置为:
判断根据预设的数据清洗规则清洗的所述接口参数是否存在多余或多删的接口参数;
若存在,则删除所述多余的接口参数并恢复多删的接口参数,从而得到所述清洗后的数据。
进一步的,所述装置还包括第二确认模块,配置为:
判断是否所有参数均完成参数化,若否,则对未完成参数化的参数进行参数化。
进一步的,所述装置还包括存储模块,配置为将所生成的测试用例持久化到数据库中,所述接口测试用例包括请求头、请求体、请求地址、断言内容和相应结果所需提取的参数。
根据本发明第三实施例,提供了一种控制器,其包括存储器与处理器,所述存储器存储有计算机程序,所述程序在被所述处理器执行时能够实现所述方法的步骤。
根据本发明第四实施例,提供了一种计算机可读存储介质,用于存储计算机指令,所述指令在由一计算机或处理器执行时实现所述方法的步骤。
本发明与现有技术相比具有明显的优点和有益效果。借由上述技术方案,本发明一种接口测试用例生成方法、装置及控制器和介质可达到相当的技术进步性及实用性,并具有产业上的广泛利用价值,其至少具有下列优点:
本发明通过自动获取并传输接口参数,并进数据清洗、流程组装,基于缓存进行参数化,生成测试用例,能够节省大量接口测试用例手动生成的过程,提高了测试用例的生成效率,减少了手动工作量,降低了人工成本,从而提高了自动化测试的效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
附图说明
图1为本发明一实施例提供接口测试用例生成方法示意图;
图2为本发明一实施例提供的接口测试用例生成方法中循环遍历接口调用序列示意图;
图3为本发明一实施例提供的接口测试用例生成方法中参数化过程示意图;
图4为本发明一实施例提供接口测试用例生成装置示意图;
图5为本发明一实施例提供接口测试用例生成装置法示意图。
【符号说明】
1:数据获取模块 2:数据清洗模块
3:流程组装模块 4:第一确认模块
5:第二确认模块
具体实施方式
为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的一种接口测试用例生成方法、装置及控制器和介质的具体实施方式及其功效,详细说明如后。
本发明实施例提供了一种接口测试用例生成方法,如图1所示,包括以下步骤:
步骤S1、获取接口参数;
作为一种示例,所述步骤S1通过接口录制获取接口参数,具体包括以下步骤:
步骤S11、执行待测流程,具体可通过浏览器、应用程序(Application,简称App)等来执行待测流程;
步骤S12、采用抓包工具捕获所述待测流程对应的接口参数;
例如,抓包工具可为fiddler,其中,所述接口参数包括请求头、请求地址、请求体和响应信息,作为示例,所述接口参数为Http/Https协议的各接口参数。
步骤S13、将所述接口参数传输并存储在数据库中。
作为示例,可制作一个插件,实现接口参数的传输或导出,该插件并不改变原有的抓包体验,只需要注入插件的脚本并打开fiddler,然后正常进行web界面操作完成基于业务流程的测试即可实现无感录制,并提供注入的插件脚本将自动这些数据持久化到的数据库中。
步骤S2、根据预设的数据清洗规则清洗所述接口参数;
作为一种示例,所述预设的数据清洗规则包括:清除静态资源请求的链接、清除预先设定的预请求、清除与被测业务流程无关的请求中的一种或多种,其中,所述静态资源请求的链接包括css文件、js文件、图片文件和html文件;所述预先设定的预请求包括Options类型的请求,其中,css文件是用于装CSS(Cascading Style Sheets,层叠样式表)代码的文本文件,CSS是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。js文件是用于装JS(JavaScript一种直译式脚本语言)代码的文本文件,JS是一种动态类型、弱类型、基于原型的语言,内置支持类型,它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。html文件是用于装html代码的文本文件,html是超文本标记语言,标准通用标记语言下的一个应用,是网页制作必备的编程语言。Options的请求指的是预检类型请求,Options方法用于获取目的资源所支持的通信选项,以检测服务器支持哪些HTTP方法。
考虑到业务流程和接口的复杂性,步骤S2中可能存在接口参数多余或多删的情况,例如,在绝大多数情况下,静态资源文件是不需要的,但是一些特殊情况需要从这些静态资源中取一些数据,这些特殊情况程序不能都识别出来,则会存在多删的情况,因此可视具体情况进行第一次确认操作,具体的,可在步骤S2和步骤S3之间,加入步骤S20,具体包括:
步骤S201、判断根据预设的数据清洗规则清洗的所述接口参数是否存在多余或多删的接口参数;
步骤S202、若存在,则删除所述多余的接口参数并恢复多删的接口参数,从而得到所述清洗后的数据。
步骤S3、将清洗后的接口参数按照接口调用关系进行流程组装,生成接口测试用例。
作为一种示例,步骤S3中,所述将清洗后的接口参数按照接口调用关系进行流程组装,包括以下步骤:
步骤S31、将清洗后的接口参数按照接口调用逻辑顺序进行组织排列,生成接口调用序列;
步骤S32、解析所述接口调用序列,循环遍历所述接口调用序列;
步骤S33、获取接口之间的数据依赖关系,并根据所述数据关系进行参数化。步骤S32-步骤S33如图2所示,其中,P(A,B)表示参数化过程。
在做接口测试过程中,因为一些过程数据是动态的,每次执行都会改变的,例如A接口执行后的响应参数里存在orderNO字段,而接下来运行B接口时,请求体里面需要orderNO这字段,那就需要将A中响应结果中的orderNO提取出来,给变量m,在B接口中orderNO这个字段引用变量m就可以保证AB这个流程中B能每次使用A执行获取到的orderNO,这个过程就是参数化的过程。在B接口需要orderNo参数时,在A接口返回中提取orderNo参数,并将之赋值给了m这个变量,同时B请求体中orderNO字段引用变量m的值,会将m这个变量放到缓存区,如果接下来还有接口请求需要orderNO这个字段,那就可以直接引用变量m而不用去前面接口的返回结果中查询,从而提高算法参数化的效率。
所述步骤S33具体包括以下步骤:
步骤S331、第一接口请求识别第一参数;
步骤S332、在缓存中查找是否存在所述第一参数,若存在,则从缓存中获取所述第一参数对所述第一接口进行参数化替换;
步骤S333、若不存在,则匹配第二接口中是否存在所述第一参数,若匹配成功,则从所述第二接口获取所述第一参数,将所述第一参数存储至缓存中,并对所述第一接口进行参数化替换,其中,所述第二接口为所述第一接口的上一接口;
步骤S334、若匹配失败,则继续匹配第三接口是否存在所述第一参数,若匹配成功,则从所述第三接口获取所述第一参数,将所述第一参数存储至缓存中,并对所述第一接口进行参数化替换,所述第三接口为所述第二接口的上一接口;
步骤S335、依次循环执行,直至所述第一接口完成参数化替换,或者访问至最顶端的接口时,结束执行。
其中,用B表示第一接口、A表示第二接口、C表示第三接口,所述步骤S33具体过程如图3所示。
考虑到业务流程和接口的复杂性,上述过程不能保证所有的参数都被参数化,特别是一些跨系统的流程,由于每个系统的程序设计有差异,对于参数取名上有所不同,所以不能非常精准的识别出所有关联关系,因此在步骤S3中将清洗后的接口参数按照接口调用关系进行流程组装步骤之后,所述方法还包括步骤S30:判断是否所有参数均完成参数化,若否,则对未完成参数化的参数进行参数化。
生成测试用例之后,所述方法还包括步骤S4,将所生成的测试用例持久化到数据库中,用于之后的自动化测试,所述接口测试用例包括请求头、请求体、请求地址、断言内容和相应结果所需提取的参数。
以下通过一具体实施例本发明实施例所述方法进行详细说明:
以电商网站登录-加购物车-下订单-支付为例,用户开启注入了用于数据传输插件的fiddler,然后根据业务流程完成整个登录-加购物车-下订单-支付流程的录制流程。在整个操作过程中被捕获的Http/Https协议的接口已经被保存到了数据库中。可提供了一个可视化的页面让用户查看捕获的接口,并提供一键清洗功能,将一些与业务无关的数据清理掉,包括一些静态资源的请求(js、css、图片、视频等)、options类型的请求、非目标域名的接口等。清洗完成后用户可以删除掉与这个流程无关的接口,最后只保留与登录-加购物车-下订单-支付这个流程相关的接口。之后可以执行自动组装,根据录制过程中用户触发接口的逻辑顺序来排列清洗后的数据,还原用户的操作。最后会生成登录接口-获取用户信息接口-获取商品信息接口-添加购物车接口-下单接口-支付接口这样一个序列。
由于接口间是有数据传递的,比如登录接口会返回一些信息如user ID,而获取用户信息则会使用到这个UserID去查询用户比如支付账户等信息。那么每个用户的User ID是不一样的,为了让脚本具备通用性,就需要这些数据去动态获取。即:登录接口会返回一个参数User ID,参数值不确定,而查询用户信息接口只引用这参数,引用方式为${UserID},而不是直接填写User ID的值,被引用过的参数User Id会进入缓存区,这就是一个参数化的过程。参数化过程中,循环遍历并获取接口间的数据依赖关系,完成参数化操作。例如需要对添加购物车接口这个接口进行参数化,则先解析添加购物车接口这个接口需要哪些参数,假设需要User ID、ProjectName、Number三个,先判断User ID是否在缓存区有,如果有直接将值替换为引用形式${User ID},接下来执行ProjectName,一样先判断缓存区是否存在,如果不存就找前面一个接口获取商品信息接口,解析获取商品信息这个接口的返回值,如果存在则提前ProjectName这个变量,并存储到缓存区,并对添加购物车接口的ProjectName自动完成参数化将具体值替换为${ProjectName}。接下来处理Number,发现缓存区没有、获取商品信息接口的返回信息中没有、获取用户信息接口返回信息中没有、登录接口返回信息中没有,那就忽略这个参数,不做参数化操作。所有接口都会进行这样的一个流程,直到所有接口的所有参数都完成参数化操作,最终生成电商网站登录-加购物车-下订单-支付为例测试用例。
本发明实施例还提供了一种接口测试用例生成装置,如图4所示,包括数据获取模块1、数据清洗模块2和流程组装模块3,其中,数据获取模块1配置为获取接口参数;数据清洗模块2配置为根据预设的数据清洗规则清洗所述接口参数;流程组装模块3配置为将清洗后的接口参数按照接口调用关系进行流程组装,生成接口测试用例。
作为一种示例,数据获取模块1包括执行单元、捕获单元和传输单元,其中,执行单元配置为执行待测流程,具体可通过浏览器、应用程序等来执行待测流程。捕获单元配置为采用抓包工具捕获所述待测流程对应的接口参数,例如,抓包工具可为fiddler,其中,所述接口参数包括请求头、请求地址、请求体和响应信息,作为示例,所述接口参数为Http/Https协议的各接口参数。传输单元配置为将所述接口参数传输并存储在数据库中,作为示例,可制作一个插件,实现接口参数的传输或导出,该插件并不改变原有的抓包体验,只需要注入插件的脚本并打开fiddler,然后正常进行web界面操作完成基于业务流程的测试即可实现无感录制,并提供注入的插件脚本将自动这些数据持久化到的数据库中。
作为一种示例,所述预设的数据清洗规则包括:清除静态资源请求的链接、清除预先设定的预请求、清除与被测业务流程无关的请求中的一种或多种,其中,所述静态资源请求的链接包括css文件、js文件、图片文件和html文件;所述预先设定的预请求包括Options类型的请求。
考虑到业务流程和接口的复杂性,数据清洗模块2可能存在接口参数多余或多删的情况,例如,在绝大多数情况下,静态资源文件是不需要的,但是一些特殊情况需要从这些静态资源中取一些数据,这些特殊情况程序不能都识别出来,则会存在多删的情况,因此如图5所示,可在所述装置中添加第一确认模块4,视具体情况进行第一次确认操作,所述第一确认模块4配置为:判断根据预设的数据清洗规则清洗的所述接口参数是否存在多余或多删的接口参数;若存在,则删除所述多余的接口参数并恢复多删的接口参数,从而得到所述清洗后的数据。
作为一种示例,所述流程组装模块3包括组织排列单元、循环遍历单元和参数化单元,其中,组织排列单元配置为将清洗后的接口参数按照接口调用逻辑顺序进行组织排列,生成接口调用序列;循环遍历单元配置为解析所述接口调用序列,循环遍历所述接口调用序列;参数化单元配置为获取接口之间的数据依赖关系,并根据所述数据关系进行参数化。
所述参数化单元具体配置为:
第一接口请求识别第一参数;
在缓存中查找是否存在所述第一参数,若存在,则从缓存中获取所述第一参数对所述第一接口进行参数化替换;
若不存在,则匹配第二接口中是否存在所述第一参数,若匹配成功,则从所述第二接口获取所述第一参数,将所述第一参数存储至缓存中,并对所述第一接口进行参数化替换,其中,所述第二接口为所述第一接口的上一接口;
若匹配失败,则继续匹配第三接口是否存在所述第一参数,若匹配成功,则从所述第三接口获取所述第一参数,将所述第一参数存储至缓存中,并对所述第一接口进行参数化替换,所述第三接口为所述第二接口的上一接口;
依次循环执行,直至所述第一接口完成参数化替换,或者访问至最顶端的接口时,结束执行。
考虑到业务流程和接口的复杂性,流程组装模块3不能保证所有的参数都被参数化,如图5所示,所述装置还包括第二确认模块5,配置为:判断是否所有参数均完成参数化,若否,则对未完成参数化的参数进行参数化。
所述装置还包括存储模块,配置为将所生成的测试用例持久化到数据库中,用于之后的自动化测试,所述接口测试用例包括请求头、请求体、请求地址、断言内容和相应结果所需提取的参数。
本发明实施例还提供一种控制器,其包括存储器与处理器,所述存储器存储有计算机程序,所述程序在被所述处理器执行时能够实现所述接口测试用例生成方法的步骤。
本发明实施例还提供一种计算机可读存储介质,用于存储计算机指令,所述指令在由一计算机或处理器执行时实现所述接口测试用例生成方法的步骤。
本发明实施例通过自动获取并传输接口参数,并进数据清洗、流程组装,基于缓存进行参数化,生成测试用例,能够节省大量接口测试用例手动生成的过程,提高了测试用例的生成效率,减少了手动工作量,降低了人工成本,从而提高了自动化测试的效率。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
Claims (18)
1.一种接口测试用例生成方法,其特征在于,包括:
获取接口参数;
根据预设的数据清洗规则清洗所述接口参数;
将清洗后的接口参数按照接口调用关系进行流程组装,生成接口测试用例。
2.根据权利要求1所述的接口测试用例生成方法,其特征在于,
所述获取接口参数,包括以下步骤:
执行待测流程;
采用抓包工具捕获所述待测流程对应的接口参数;
将所述接口参数传输并存储在数据库中,其中,所述接口参数包括请求头、请求地址、请求体和响应信息。
3.根据权利要求1所述的接口测试用例生成方法,其特征在于,
所述预设的数据清洗规则包括:清除静态资源请求的链接、清除预先设定的预请求、清除与被测业务流程无关的请求中的一种或多种,其中,所述静态资源请求的链接包括css文件、js文件、图片文件和html文件;所述预先设定的预请求包括Options类型的请求。
4.根据权利要求1所述的接口测试用例生成方法,其特征在于,
所述将清洗后的接口参数按照接口调用关系进行流程组装,包括以下步骤:
将清洗后的接口参数按照接口调用逻辑顺序进行组织排列,生成接口调用序列;
解析所述接口调用序列,循环遍历所述接口调用序列;
获取接口之间的数据依赖关系,并根据所述数据关系进行参数化。
5.根据权利要求4所述的接口测试用例生成方法,其特征在于,
所述获取接口之间的数据依赖关系,并根据所述数据关系进行参数化,包括以下步骤:
第一接口请求识别第一参数;
在缓存中查找是否存在所述第一参数,若存在,则从缓存中获取所述第一参数对所述第一接口进行参数化替换;
若不存在,则匹配第二接口中是否存在所述第一参数,若匹配成功,则从所述第二接口获取所述第一参数,将所述第一参数存储至缓存中,并对所述第一接口进行参数化替换,其中,所述第二接口为所述第一接口的上一接口;
若匹配失败,则继续匹配第三接口是否存在所述第一参数,若匹配成功,则从所述第三接口获取所述第一参数,将所述第一参数存储至缓存中,并对所述第一接口进行参数化替换,所述第三接口为所述第二接口的上一接口;
依次循环执行,直至所述第一接口完成参数化替换,或者访问至最顶端的接口时,结束执行。
6.根据权利要求1所述的接口测试用例生成方法,其特征在于,
在根据预设的数据清洗规则清洗所述接口参数步骤之后,以及在将清洗后的接口参数按照接口调用关系进行流程组装步骤之前,所述方法还包括以下步骤:
判断根据预设的数据清洗规则清洗的所述接口参数是否存在多余或多删的接口参数;
若存在,则删除所述多余的接口参数并恢复多删的接口参数,从而得到所述清洗后的数据。
7.根据权利要求1所述的接口测试用例生成方法,其特征在于,
在将清洗后的接口参数按照接口调用关系进行流程组装步骤之后,所述方法还包括:
判断是否所有参数均完成参数化,若否,则对未完成参数化的参数进行参数化。
8.根据权利要求1-7中任意一项所述的接口测试用例生成方法,其特征在于,
所述方法还包括,将所生成的测试用例持久化到数据库中,所述接口测试用例包括请求头、请求体、请求地址、断言内容和相应结果所需提取的参数。
9.提供了一种接口测试用例生成装置,其特征在于,包括:
数据获取模块,配置为获取接口参数;
数据清洗模块,配置为根据预设的数据清洗规则清洗所述接口参数;
流程组装模块,配置为将清洗后的接口参数按照接口调用关系进行流程组装,生成接口测试用例。
10.根据权利要求9所述的接口测试用例生成装置,其特征在于,
所述数据获取模块包括:
执行单元,配置为执行待测流程;
捕获单元,配置为采用抓包工具捕获所述待测流程对应的接口参数;
传输单元,配置为将所述接口参数传输并存储在数据库中,其中,所述接口参数包括请求头、请求地址、请求体和响应信息。
11.根据权利要求9所述的接口测试用例生成装置,其特征在于,
所述预设的数据清洗规则包括:清除静态资源请求的链接、清除预先设定的预请求、清除与被测业务流程无关的请求中的一种或多种,其中,所述静态资源请求的链接包括css文件、js文件、图片文件和html文件;所述预先设定的预请求包括Options类型的请求。
12.根据权利要求9所述的接口测试用例生成装置,其特征在于,
所述流程组装模块包括:
组织排列单元,配置为将清洗后的接口参数按照接口调用逻辑顺序进行组织排列,生成接口调用序列;
循环遍历单元,配置为解析所述接口调用序列,循环遍历所述接口调用序列;
参数化单元,配置为获取接口之间的数据依赖关系,并根据所述数据关系进行参数化。
13.根据权利要求12所述的接口测试用例生成装置,其特征在于,
所述参数化单元具体配置为:
第一接口请求识别第一参数;
在缓存中查找是否存在所述第一参数,若存在,则从缓存中获取所述第一参数对所述第一接口进行参数化替换;
若不存在,则匹配第二接口中是否存在所述第一参数,若匹配成功,则从所述第二接口获取所述第一参数,将所述第一参数存储至缓存中,并对所述第一接口进行参数化替换,其中,所述第二接口为所述第一接口的上一接口;
若匹配失败,则继续匹配第三接口是否存在所述第一参数,若匹配成功,则从所述第三接口获取所述第一参数,将所述第一参数存储至缓存中,并对所述第一接口进行参数化替换,所述第三接口为所述第二接口的上一接口;
依次循环执行,直至所述第一接口完成参数化替换,或者访问至最顶端的接口时,结束执行。
14.根据权利要求9所述的接口测试用例生成装置,其特征在于,
所述装置还包括第一确认模块,配置为:
判断根据预设的数据清洗规则清洗的所述接口参数是否存在多余或多删的接口参数;
若存在,则删除所述多余的接口参数并恢复多删的接口参数,从而得到所述清洗后的数据。
15.根据权利要求9所述的接口测试用例生成装置,其特征在于,
所述装置还包括第二确认模块,配置为:
判断是否所有参数均完成参数化,若否,则对未完成参数化的参数进行参数化。
16.根据权利要求9-15中任意一项所述的接口测试用例生成装置,其特征在于,
所述装置还包括存储模块,配置为将所生成的测试用例持久化到数据库中,所述接口测试用例包括请求头、请求体、请求地址、断言内容和相应结果所需提取的参数。
17.一种控制器,其包括存储器与处理器,其特征在于,所述存储器存储有计算机程序,所述程序在被所述处理器执行时能够实现权利要求1至8中任意一项权利要求所述的方法的步骤。
18.一种计算机可读存储介质,用于存储计算机指令,其特征在于,所述指令在由一计算机或处理器执行时实现如权利要求1至8中任意一项权利要求所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910177150.2A CN110232016A (zh) | 2019-03-08 | 2019-03-08 | 接口测试用例生成方法、装置及控制器和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910177150.2A CN110232016A (zh) | 2019-03-08 | 2019-03-08 | 接口测试用例生成方法、装置及控制器和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110232016A true CN110232016A (zh) | 2019-09-13 |
Family
ID=67860127
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910177150.2A Pending CN110232016A (zh) | 2019-03-08 | 2019-03-08 | 接口测试用例生成方法、装置及控制器和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110232016A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111045928A (zh) * | 2019-11-14 | 2020-04-21 | 用友网络科技股份有限公司 | 一种接口数据测试方法、装置、终端及存储介质 |
CN111083007A (zh) * | 2019-11-21 | 2020-04-28 | 京信通信系统(中国)有限公司 | 测试方法、装置、计算机设备和存储介质 |
CN111752844A (zh) * | 2020-06-30 | 2020-10-09 | 北京来也网络科技有限公司 | 一种接口测试方法、装置、计算设备及存储介质 |
CN113138929A (zh) * | 2021-05-12 | 2021-07-20 | 平安国际智慧城市科技股份有限公司 | 分布式接口测试方法、装置、电子设备及存储介质 |
CN117389908A (zh) * | 2023-12-12 | 2024-01-12 | 深圳市铱云云计算有限公司 | 接口自动化测试用例的依赖关系分析方法、系统及介质 |
CN117435513A (zh) * | 2023-12-21 | 2024-01-23 | 深圳市智慧城市科技发展集团有限公司 | 测试用例生成方法、终端设备及计算机可读存储介质 |
CN117453577A (zh) * | 2023-12-25 | 2024-01-26 | 湖南兴盛优选网络科技有限公司 | 基于流量录制生成接口自动化用例的方法、装置和计算机设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016180237A1 (zh) * | 2015-07-27 | 2016-11-17 | 中兴通讯股份有限公司 | 一种北向接口测试装置和北向接口的测试方法 |
CN106354634A (zh) * | 2016-08-25 | 2017-01-25 | 青岛海信传媒网络技术有限公司 | 接口测试方法及装置 |
CN108427631A (zh) * | 2017-02-14 | 2018-08-21 | 北京京东尚科信息技术有限公司 | 一种应用测试系统、方法、电子设备和可读存储介质 |
CN108549605A (zh) * | 2018-04-13 | 2018-09-18 | 郑州云海信息技术有限公司 | 一种自动化测试方法 |
CN109101415A (zh) * | 2018-06-25 | 2018-12-28 | 平安科技(深圳)有限公司 | 基于数据库比对的接口测试方法、系统、设备和存储介质 |
CN109388561A (zh) * | 2018-09-18 | 2019-02-26 | 深圳壹账通智能科技有限公司 | 接口测试用例生成方法、装置、计算机设备和存储介质 |
-
2019
- 2019-03-08 CN CN201910177150.2A patent/CN110232016A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016180237A1 (zh) * | 2015-07-27 | 2016-11-17 | 中兴通讯股份有限公司 | 一种北向接口测试装置和北向接口的测试方法 |
CN106354634A (zh) * | 2016-08-25 | 2017-01-25 | 青岛海信传媒网络技术有限公司 | 接口测试方法及装置 |
CN108427631A (zh) * | 2017-02-14 | 2018-08-21 | 北京京东尚科信息技术有限公司 | 一种应用测试系统、方法、电子设备和可读存储介质 |
CN108549605A (zh) * | 2018-04-13 | 2018-09-18 | 郑州云海信息技术有限公司 | 一种自动化测试方法 |
CN109101415A (zh) * | 2018-06-25 | 2018-12-28 | 平安科技(深圳)有限公司 | 基于数据库比对的接口测试方法、系统、设备和存储介质 |
CN109388561A (zh) * | 2018-09-18 | 2019-02-26 | 深圳壹账通智能科技有限公司 | 接口测试用例生成方法、装置、计算机设备和存储介质 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111045928A (zh) * | 2019-11-14 | 2020-04-21 | 用友网络科技股份有限公司 | 一种接口数据测试方法、装置、终端及存储介质 |
CN111045928B (zh) * | 2019-11-14 | 2024-03-26 | 用友网络科技股份有限公司 | 一种接口数据测试方法、装置、终端及存储介质 |
CN111083007A (zh) * | 2019-11-21 | 2020-04-28 | 京信通信系统(中国)有限公司 | 测试方法、装置、计算机设备和存储介质 |
CN111083007B (zh) * | 2019-11-21 | 2022-07-29 | 京信网络系统股份有限公司 | 测试方法、装置、计算机设备和存储介质 |
CN111752844A (zh) * | 2020-06-30 | 2020-10-09 | 北京来也网络科技有限公司 | 一种接口测试方法、装置、计算设备及存储介质 |
CN113138929A (zh) * | 2021-05-12 | 2021-07-20 | 平安国际智慧城市科技股份有限公司 | 分布式接口测试方法、装置、电子设备及存储介质 |
CN117389908A (zh) * | 2023-12-12 | 2024-01-12 | 深圳市铱云云计算有限公司 | 接口自动化测试用例的依赖关系分析方法、系统及介质 |
CN117389908B (zh) * | 2023-12-12 | 2024-03-26 | 深圳市铱云云计算有限公司 | 接口自动化测试用例的依赖关系分析方法、系统及介质 |
CN117435513A (zh) * | 2023-12-21 | 2024-01-23 | 深圳市智慧城市科技发展集团有限公司 | 测试用例生成方法、终端设备及计算机可读存储介质 |
CN117435513B (zh) * | 2023-12-21 | 2024-04-02 | 深圳市智慧城市科技发展集团有限公司 | 测试用例生成方法、终端设备及计算机可读存储介质 |
CN117453577A (zh) * | 2023-12-25 | 2024-01-26 | 湖南兴盛优选网络科技有限公司 | 基于流量录制生成接口自动化用例的方法、装置和计算机设备 |
CN117453577B (zh) * | 2023-12-25 | 2024-03-22 | 湖南兴盛优选网络科技有限公司 | 基于流量录制生成接口自动化用例的方法、装置和计算机设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110232016A (zh) | 接口测试用例生成方法、装置及控制器和介质 | |
CN105243159B (zh) | 一种基于可视化脚本编辑器的分布式网络爬虫系统 | |
CN101222349B (zh) | 收集web用户行为及性能数据的方法及系统 | |
CN109766262A (zh) | 接口数据处理方法、自动化测试方法、装置、设备和介质 | |
CN107766344B (zh) | 一种模板渲染的方法、装置及浏览器 | |
CN109766263A (zh) | 自动化测试分析处理方法、装置、计算机设备及存储介质 | |
CN106897215A (zh) | 一种基于WebView网页加载性能及用户行为流数据采集的方法 | |
CN104468363B (zh) | 页面重定向方法、路由设备、终端设备及系统 | |
CN104331369B (zh) | 基于浏览器的网页检测方法及装置、服务器 | |
CN107665170B (zh) | 一种流程测试方法及装置 | |
CN102870118B (zh) | 用户行为的获取方法、设备及系统 | |
US20130036351A1 (en) | Apparatus, system, and method for dynamically customizing a web page | |
CN107766509A (zh) | 一种网页静态备份的方法和装置 | |
CN106649120A (zh) | 一种数据获取方法、分析方法及系统 | |
CN111209460A (zh) | 基于scrapy爬虫框架的数据采集系统及方法 | |
CN106897336A (zh) | 网页文件发送方法、网页渲染方法及装置、网页渲染系统 | |
CN101441629A (zh) | 一种非结构化网页信息的自动采集方法 | |
CN110147327B (zh) | 一种基于多粒度的web自动化测试管理方法 | |
CN107508720A (zh) | 一种自动化测试方法及装置 | |
CN114281680B (zh) | 一种web自动化测试方法及系统 | |
CN106599270B (zh) | 网络数据抓取方法和爬虫 | |
CN103440199A (zh) | 测试引导方法和装置 | |
CN104834594B (zh) | web系统测试方法及装置 | |
CN110309648A (zh) | 一种网页监控方法及终端 | |
CN109831491B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190913 |
|
RJ01 | Rejection of invention patent application after publication |