CN112817867A - 一种接口测试脚本生成方法、装置、计算机设备和介质 - Google Patents

一种接口测试脚本生成方法、装置、计算机设备和介质 Download PDF

Info

Publication number
CN112817867A
CN112817867A CN202110213710.2A CN202110213710A CN112817867A CN 112817867 A CN112817867 A CN 112817867A CN 202110213710 A CN202110213710 A CN 202110213710A CN 112817867 A CN112817867 A CN 112817867A
Authority
CN
China
Prior art keywords
interface
interface test
tested
request
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
Application number
CN202110213710.2A
Other languages
English (en)
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 Consumer Finance Co Ltd
Original Assignee
Ping An Consumer Finance 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 Consumer Finance Co Ltd filed Critical Ping An Consumer Finance Co Ltd
Priority to CN202110213710.2A priority Critical patent/CN112817867A/zh
Publication of CN112817867A publication Critical patent/CN112817867A/zh
Pending legal-status Critical Current

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
    • 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/3688Test 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)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种接口测试脚本生成方法,包括:获取待测试接口的接口配置规则;根据抓包工具和/或爬虫工具确定与接口配置规则匹配的接口测试信息,其中,接口测试信息包括待测试接口的请求参数;获取预先设定的脚本框架,其中,脚本框架包括用于根据接口测试信息中的请求参数调用待测试接口的请求代码逻辑和用于通过待测试接口接收实际响应参数的响应代码逻辑;根据接口测试信息和脚本框架生成接口测试脚本,其中,接口测试脚本在运行时通过请求代码逻辑向待测试接口发送包含接口测试信息中的请求参数的接口调用请求,并且通过响应代码逻辑接收由待测试接口返回的实际响应参数。另外,本发明还涉及区块链技术。

Description

一种接口测试脚本生成方法、装置、计算机设备和介质
技术领域
本发明涉及测试技术领域,具体涉及一种接口测试脚本生成方法、装置、计算机设备和计算机可读存储介质。
背景技术
接口测试是测试系统组件间接口的一种测试,主要用于测试系统与外部其他系统之间的接口,以及系统内部各个子模块之间的接口。测试的重点是要检查接口参数传递的正确性,接口功能实现的正确性,输出结果的正确性,以及对各种异常情况的容错处理的完整性和合理性。
现有技术中,接口自动化测试因其实现简单、维护成本低以及容易提高覆盖率等特点,越来越受重视。但是,发明人研究发现,推进自动化测试需要投入大量的人力、物力和时间,需要耗费人力编写自动化测试脚本,且后期接口变动,仍需要耗费一定的人力、物力来维护测试脚本。
针对现有技术手动编写和维护接口测试脚本需要耗费大量人力、物力和时间的技术问题,目前尚未提供有效的解决方案。
发明内容
本发明的目的在于提供了一种接口测试脚本生成方法、装置、计算机设备和计算机可读存储介质,能够解决现有技术手动编写和维护接口测试脚本需要耗费大量人力、物力和时间的技术问题。
本发明的一个方面提供了一种接口测试脚本生成方法,所述方法包括:获取待测试接口的接口配置规则;根据抓包工具和/或爬虫工具确定与所述接口配置规则匹配的接口测试信息,其中,所述接口测试信息包括所述待测试接口的请求参数;获取预先设定的脚本框架,其中,所述脚本框架包括用于根据所述接口测试信息中的请求参数调用所述待测试接口的请求代码逻辑和用于通过所述待测试接口接收实际响应参数的响应代码逻辑;根据所述接口测试信息和所述脚本框架生成接口测试脚本,其中,所述接口测试脚本在运行时通过所述请求代码逻辑向所述待测试接口发送包含所述接口测试信息中的请求参数的接口调用请求,并且通过所述响应代码逻辑接收由所述待测试接口返回的实际响应参数。
可选地,所述根据抓包工具确定与所述接口配置规则匹配的接口测试信息的步骤包括:利用所述抓包工具抓取所述待测试接口的接口信息;将所述待测试接口的接口信息与所述接口配置规则进行匹配;确定所述待测试接口的接口信息中匹配成功的信息为所述接口测试信息。
可选地,在所述根据所述接口测试信息和所述脚本框架生成接口测试脚本的步骤之后,所述方法还包括:响应于接口回归测试请求,根据所述抓包工具确定与更新的接口配置规则匹配的接口测试信息,将所述匹配的接口测试信息记为最新接口测试信息;当所述最新接口测试信息中的响应参数用于表征针对一目标待测试接口的测试成功时,判断所述接口测试脚本中是否存在所述目标待测试接口的接口测试信息;在所述接口测试脚本中不存在所述目标待测试接口的接口测试信息时,将所述最新接口测试信息添加至所述接口测试脚本中作为所述目标待测试接口的接口测试信息;在所述接口测试脚本中存在所述目标待测试接口的接口测试信息,且所述目标待测试接口的接口测试信息与所述最新接口测试信息不一致时,在所述接口测试脚本中将所述目标待测试接口的接口测试信息替换为所述最新接口测试信息。
可选地,所述判断所述接口测试脚本中是否存在所述目标待测试接口的接口测试信息的步骤包括:确定所述最新接口测试信息中的请求参数的URI;判断所述接口测试脚本中是否存在包含所述URI的接口测试信息;其中,当所述接口测试脚本中存在包含所述URI的接口测试信息时,将该接口测试信息确定为所述接口测试脚本中的所述目标待测试接口的接口测试信息。
可选地,所述根据所述接口测试信息和所述脚本框架生成接口测试脚本的步骤包括:判断任一所述接口测试信息中的响应参数是否包含鉴权信息,其中,所述鉴权信息包括:COOKIE和/或TOKEN;当所述接口测试信息中的响应参数包含所述鉴权信息时,将所述鉴权信息的value赋值给公共变量;确定包含所述鉴权信息的所有目标请求参数,并按照所述公共变量设置所有所述目标请求参数中的所述鉴权信息的value。
可选地,在所述根据所述接口测试信息和所述脚本框架生成接口测试脚本的步骤之后,所述方法还包括:从所述接口调用请求中解析出请求发送时间和所述请求参数中的请求入参;获取所述接口调用请求所调用的待测试接口关联的数据表名称;确定距离所述请求发送时间最近且名称为该关联的数据表名称的数据表;判断所述数据表中是否存储有所述请求入参,并返回判断结果。
可选地,在所述判断所述数据表中是否存储有所述请求入参,并返回判断结果的步骤之后,所述方法还包括:在运行完所述接口测试脚本之后,删除所述数据表。
本发明的另一个方面提供了一种接口测试脚本生成装置,所述装置包括:第一获取模块,用于获取待测试接口的接口配置规则;第一确定模块,用于根据抓包工具和/或爬虫工具确定与所述接口配置规则匹配的接口测试信息,其中,所述接口测试信息包括所述待测试接口的请求参数;第二获取模块,用于获取预先设定的脚本框架,其中,所述脚本框架包括用于根据所述接口测试信息中的请求参数调用所述待测试接口的请求代码逻辑和用于通过所述待测试接口接收实际响应参数的响应代码逻辑;生成模块,用于根据所述接口测试信息和所述脚本框架生成接口测试脚本,其中,所述接口测试脚本在运行时通过所述请求代码逻辑向所述待测试接口发送包含所述接口测试信息中的请求参数的接口调用请求,并且通过所述响应代码逻辑接收由所述待测试接口返回的实际响应参数。
本发明的再一个方面提供了一种计算机设备,所述计算机设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一实施例所述的接口测试脚本生成方法。
本发明的又一个方面提供了一种计算机可读存储介质,其上存储有计算机程序,上述计算机程序被处理器执行时实现上述任一实施例所述的接口测试脚本生成方法。进一步地,所述计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
本发明提供的接口测试脚本生成方法,预先编制好包含请求代码逻辑和响应代码逻辑的脚本框架,在自动化的生成接口测试脚本时,根据抓包工具和/或爬虫工具确定与接口配置规则匹配的接口测试信息,然后根据接口测试信息和脚本框架生成接口测试脚本,以使得在运行接口测试脚本对待测试接口进行测试时,能够通过请求代码逻辑向待测试接口发送包含接口测试信息中的请求参数的接口调用请求,并且通过响应代码逻辑接收由待测试接口返回的实际响应参数。本发明通过自动生成接口测试脚本,实现了接口测试脚本自动化生成的效果,降低了人力、物力和时间成本。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示意性示出了根据本发明实施例一的接口测试脚本生成方法的流程图;
图2示意性示出了根据本发明实施例一的接口测试脚本生成方案的示意图;
图3示意性示出了根据本发明实施例二的接口测试脚本生成方法的流程图;
图4示意性示出了根据本发明实施例三的接口测试脚本生成方法的流程图;
图5示意性示出了根据本发明实施例四的接口测试脚本生成方法的流程图;
图6示意性示出了根据本发明实施例五的接口测试脚本生成装置的框图;
图7示意性示出了根据本发明实施例六的适于实现接口测试脚本生成方法的计算机设备的框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
实施例一
在实际场景中,自动化接口测试主要用于维护历史版本,对于新版本或者版本中的新功能,都需要先手动进行接口测试,待功能稳定后再利用自动化进行接口测试以维护版本的稳定性。本申请基于这一特性,在测试人员手动进行接口测试时,通过抓包工具确定各个待测试接口与接口配置规则匹配的接口测试信息,或者直接根据爬虫工具从网页爬取各个待测试接口符合接口配置规则的接口测试信息,然后根据接口测试信息和预设的脚本框架自动化生成接口测试脚本,实现了接口测试脚本自动化生成的效果,降低了人力、物力和时间成本。具体地,图1示意性示出了根据本发明实施例一的接口测试脚本生成方法的流程图,如图1所示,该接口测试脚本生成可以包括步骤S11~步骤S14,具体地:
步骤S11,获取待测试接口的接口配置规则。
其中,接口配置规则分为手动配置和自动配置。手动配置是工程师自定义的规则,如通过XPath/CSS方法从某网页中获取<a></a>标签中的URL(uniform resource locator,统一资源定位系统)。自动配置为:获取待测试接口的接口文档,读取接口文档中的定义的信息,然后生成接口配置规则,如匹配接口文档中的域名,匹配接口文档中的URL。需知,接口文档又称为接口设计文档,用于定义接口规范。接口文档中可以包括URL、请求方法(如get方法、post方法、put方法和delete方法)和/或该请求方法的请求入参等。
步骤S12,根据抓包工具和/或爬虫工具确定与所述接口配置规则匹配的接口测试信息,其中,所述接口测试信息包括所述待测试接口的请求参数。
请求参数包括请求方法、请求方法的请求入参、URL和请求头信息等。
其中,根据抓包工具确定与所述接口配置规则匹配的接口测试信息包括步骤S121~步骤S123,具体地:
步骤S121,利用所述抓包工具抓取所述待测试接口的接口信息;
步骤S122,将所述待测试接口的接口信息与所述接口配置规则进行匹配;
步骤S123,确定所述待测试接口的接口信息中匹配成功的信息为所述接口测试信息。
在手动测试每一个待测试接口的过程中,均需要抓取该待测试接口的接口信息,例如利用java代码和web拦截器实现抓包功能,抓取该每一个待测试接口的接口参数。其中,接口信息中除了包括接口测试信息以外,还可能包括额外的参数,如下一个接口的标签。因此,在抓取待测试接口的接口信息之后,需要利用接口配置规则进行信息过滤,以获得匹配的接口测试信息。
可选地,根据爬虫工具确定与所述接口配置规则匹配的接口测试信息具体为:利用爬虫工具直接爬取与接口配置规则相匹配的接口测试信息。即接口配置规则中定义了需要哪些信息,便可根据爬虫工具爬取哪些信息。
步骤S13,获取预先设定的脚本框架,其中,所述脚本框架包括用于根据所述接口测试信息中的请求参数调用所述待测试接口的请求代码逻辑和用于通过所述待测试接口接收实际响应参数的响应代码逻辑。
步骤S14,根据所述接口测试信息和所述脚本框架生成接口测试脚本,其中,所述接口测试脚本在运行时通过所述请求代码逻辑向所述待测试接口发送包含所述接口测试信息中的请求参数的接口调用请求,并且通过所述响应代码逻辑接收由所述待测试接口返回的实际响应参数。
请求代码逻辑包括请求变量,运行接口测试脚本时,将获取的请求参数赋予该请求变量,然后请求代码逻辑根据请求参数生成接口调用请求,并将通过该接口调用请求调用待测试接口。
响应代码逻辑包括响应变量,运行接口测试脚本时,响应代码逻辑从待测试接口获取返回的实际响应参数,并将实际响应参数赋予响应变量。
可选地,为保证数据的安全性,可将生成的接口测试脚本存储在区块链中。
下面以一个具体示例描述本方案,图2示意性示出了根据本发明实施例一的接口测试脚本生成方案的示意图,如图2所示,读取开发的接口设计文档,其中,接口设计文档中新增的接口的功能已经稳定,此时需要根据接口设计文档生成接口测试脚本,首先,从接口设计文档中读取接口参数(即图中的接口信息,包括请求方法、URI、请求入参和/或响应正文(即响应参数))生成接口配置规则,然后根据抓包工具和/或爬虫工具确定与所述接口配置规则匹配的接口测试信息,其中,爬虫工具主要爬取的是get方法,抓包工具主要抓取的是post方法,进一步通过接口配置规则(即过滤规则)匹配出接口测试信息,如利用XPath/CSS方法爬取预设域名下的所有接口的接口信息,然后通过正则匹配从这些接口的接口信息中匹配出包含预设URI的接口的接口测试信息。最后提取匹配出的接口测试信息与预设的脚本框架自动化的生成接口测试脚本。
本发明提供的接口测试脚本生成方法,预先编制好包含请求代码逻辑和响应代码逻辑的脚本框架,在自动化的生成接口测试脚本时,根据抓包工具和/或爬虫工具确定与接口配置规则匹配的接口测试信息,然后根据接口测试信息和脚本框架生成接口测试脚本,以使得在运行接口测试脚本对待测试接口进行测试时,能够通过请求代码逻辑向待测试接口发送包含接口测试信息中的请求参数的接口调用请求,并且通过响应代码逻辑接收由待测试接口返回的实际响应参数。本发明通过自动生成接口测试脚本,实现了接口测试脚本自动化生成的效果,降低了人力、物力和时间成本。
实施例二
本发明的实施例二提供了一种接口测试脚本生成方法,在实施例一的基础上,当出现新版本或者版本中添加新功能时,都需要先手动进行回归测试,如新增接口或者新增了某个接口的参数,则接口测试信息可能也会发生变化,此时就需要更新接口测试脚本。本实施例通过抓取手动回归测试过程中的接口测试信息,并将其与接口测试脚本中的接口测试信息比对,若二者不一致,则更新接口测试脚本,以实现自动化维护接口测试脚本的效果。其中,本实施例二的接口测试脚本生成方法的部分步骤与上述实施例一相对应,相应的技术特征和技术效果在本实施例中不再详述,相关之处可参考上述实施例一。具体地,图3示意性示出了根据本发明实施例二的接口测试脚本生成方法的流程图,如图3所示,该接口测试脚本生成方法可以包括步骤S31~步骤S38,其中:
步骤S31,获取待测试接口的接口配置规则;
步骤S32,根据抓包工具和/或爬虫工具确定与所述接口配置规则匹配的接口测试信息,其中,所述接口测试信息包括所述待测试接口的请求参数。
步骤S33,获取预先设定的脚本框架,其中,所述脚本框架包括用于根据所述接口测试信息中的请求参数调用所述待测试接口的请求代码逻辑和用于通过所述待测试接口接收实际响应参数的响应代码逻辑。
步骤S34,根据所述接口测试信息和所述脚本框架生成接口测试脚本,其中,所述接口测试脚本在运行时通过所述请求代码逻辑向所述待测试接口发送包含所述接口测试信息中的请求参数的接口调用请求,并且通过所述响应代码逻辑接收由所述待测试接口返回的实际响应参数。
步骤S35,响应于接口回归测试请求,根据所述抓包工具确定与更新的接口配置规则匹配的接口测试信息,将所述匹配的接口测试信息记为最新接口测试信息。
本实施例中,若是接口文档中新增了待测试接口,则可以利用抓包工具确定该新增待测试接口的接口测试信息;若是接口文档中某个待测试接口的请求参数新增了若干参数,则可以利用抓包工具确定该待测试接口的更新后的接口测试信息。
可选地,步骤S35可以包括步骤S351~步骤S353,其中:
步骤S351,响应于接口回归测试请求,利用所述抓包工具抓取所述待测试接口的接口信息;
步骤S352,将所述待测试接口的接口信息与更新的接口配置规则进行匹配;
步骤S353,确定所述待测试接口的接口信息中匹配成功的信息为所述最新接口测试信息。
步骤S36,当所述最新接口测试信息中的响应参数用于表征针对一目标待测试接口的测试成功时,判断所述接口测试脚本中是否存在所述目标待测试接口的接口测试信息。
所谓响应参数用于表征针对一目标待测试接口的测试成功,既当该响应参数与该目标待测试接口对应的期望响应参数一致时,表明针对目标待测试接口的测试成功。其中,期望响应参数即为目标待测试接口应该返回的正确的响应参数。
判断接口测试脚本中是否存在目标待测试接口的接口测试信息,实际是判断接口测试脚本中是否存在与最新接口测试信息相对应的接口测试信息。由于无论是新增待测试接口还是更改(包括新增、删除和/或替换)待测试接口的参数,待测试接口的请求参数必然会发生变化。如新增待测试接口体现为新增待测试接口的请求参数,相应地也会新增待测试接口的响应参数;更改待测试接口的参数体现为更改待测试接口的请求参数,相应地待测试接口的响应参数也可能会发生变化。因此步骤S36的判断逻辑主要是判断是否存在相应的请求参数,具体地,步骤S36可以包括步骤S361和步骤S362,其中:
步骤S361,确定所述最新接口测试信息中的请求参数的URI;
步骤S362,判断所述接口测试脚本中是否存在包含所述URI的接口测试信息;其中,当所述接口测试脚本中存在包含所述URI的接口测试信息时,将该接口测试信息确定为所述接口测试脚本中的所述目标待测试接口的接口测试信息。
无论如何更改待测试接口的请求参数,该请求参数中的URI(Uniform ResourceIdentifier,统一资源标识符)也不会发生变化,因此判断是否存在相对应的请求参数,可以通过判断是否包含同一URI确定。
步骤S37,在所述接口测试脚本中不存在所述目标待测试接口的接口测试信息时,将所述最新接口测试信息添加至所述接口测试脚本中作为所述目标待测试接口的接口测试信息。
若不存在,表明该目标待测试接口为新增接口,最新接口测试信息为新增参数,则可以将该最新接口测试信息新增至接口测试脚本中,以实现接口测试脚本的更新。
步骤S38,在所述接口测试脚本中存在所述目标待测试接口的接口测试信息,且所述目标待测试接口的接口测试信息与所述最新接口测试信息不一致时,在所述接口测试脚本中将所述目标待测试接口的接口测试信息替换为所述最新接口测试信息。
若存在,则将包含上述同一URI的接口测试信息确定目标待测试接口的接口测试信息,然后比对该接口测试信息中的请求参数与最新接口测试信息中的请求参数是否一致,若不一致,表明目标待测试接口的接口测试信息发生变更,则将该最新接口测试信息替换该接口测试脚本中目标待测试接口的接口测试信息,以实现接口测试脚本的更新。
实施例三
本发明的实施例三提供了一种接口测试脚本生成方法,在自动化生成接口测试脚本时,将待测试接口的鉴权信息存储在公共变量中,在运行接口测试脚本进行接口测试时,使相应的接口调用请求中均携带该鉴权信息,以保证接口测试不会因鉴权问题而失,并且直接从公共变量中读取鉴权信息的具体数值,避免了从相应的待测试接口的响应参数中解析该鉴权信息的复杂操作,加快了测试速度。其中,本实施例三的接口测试脚本生成方法的部分步骤与上述实施例一相对应,相应的技术特征和技术效果在本实施例中不再详述,相关之处可参考上述实施例一。具体地,图4示意性示出了根据本发明实施例三的接口测试脚本生成方法的流程图,如图4所示,该接口测试脚本生成方法可以包括步骤S41~步骤S46,其中:
步骤S41,获取待测试接口的接口配置规则;
步骤S42,根据抓包工具和/或爬虫工具确定与所述接口配置规则匹配的接口测试信息,其中,所述接口测试信息包括所述待测试接口的请求参数。
步骤S43,获取预先设定的脚本框架,其中,所述脚本框架包括用于根据所述接口测试信息中的请求参数调用所述待测试接口的请求代码逻辑和用于通过所述待测试接口接收实际响应参数的响应代码逻辑。
步骤S44,判断任一所述接口测试信息中的响应参数是否包含鉴权信息,其中,所述鉴权信息包括:COOKIE和/或TOKEN。
步骤S45,当所述接口测试信息中的响应参数包含所述鉴权信息时,将所述鉴权信息的value赋值给公共变量。
例如,某一待测试接口1的响应参数包含的鉴权信息为COOKIE,COOKIE的value为值1,将值1设置为公共变量1,确定出待测试接口2和待测试接口3的请求参数均包含value为值1的COOKIE,则待测试接口2和待测试接口3的请求参数为目标请求参数。
步骤S46,确定包含所述鉴权信息的所有目标请求参数,并按照所述公共变量设置所有所述目标请求参数中的所述鉴权信息的value。
其中,在运行该接口测试脚本时,通过接口测试脚本中的请求代码逻辑将公共变量的具体数值赋予目标请求参数中鉴权信息的value,并向该目标请求参数所对应的待测试接口发送包含赋值后的目标请求参数的接口调用请求,以实现接口调用功能。
例如,结合上述示例,将待测试接口2和待测试接口3的请求参数中COOKIE的value设置为公共变量1,则在运行所述接口测试脚本,请求代码逻辑会将值1赋予待测试接口2和待测试接口3的请求参数,然后根据赋值后的请求参数生成接口调用请求,并向对应的待测试接口发送该接口调用请求。
假设登录类型接口的响应参数中携带鉴权信息,且登录操作之后点击其他接口所对应的请求参数中也需携带鉴权信息,可以预先在接口文档中可以通过标识信息标记接口类型,根据标识信息将登录类型的待测试接口从其他接口中分离出来,然后利用正则方法从其接口测试信息中提取鉴权信息,并将鉴权信息的value保存至公共变量中,然后确定将依赖于登录接口的所有接口,将这些接口的鉴权信息的value设置为公共变量。这样在运行接口测试脚本时,可以使依赖于登录接口的其他接口的接口请求中均携带鉴权信息,以保证接口测试不会因鉴权问题而失败。
实施例四
本发明的实施例四提供了一种接口测试脚本生成方法,涉及数据库层级的校验,对于写入类型的待测试接口,如注册接口,需要将注册信息存储至数据库中,本实施例通过自动生成校验指令完成数据库的自动校验,拓宽了测试维度。其中,本实施例四的接口测试脚本生成方法的部分步骤与上述实施例一相对应,相应的技术特征和技术效果在本实施例中不再详述,相关之处可参考上述实施例一。具体地,图5示意性示出了根据本发明实施例四的接口测试脚本生成方法的流程图,如图5所示,该接口测试脚本生成方法可以包括步骤S51~步骤S59,其中:
步骤S51,获取待测试接口的接口配置规则;
步骤S52,根据抓包工具和/或爬虫工具确定与所述接口配置规则匹配的接口测试信息,其中,所述接口测试信息包括所述待测试接口的请求参数。
步骤S53,获取预先设定的脚本框架,其中,所述脚本框架包括用于根据所述接口测试信息中的请求参数调用所述待测试接口的请求代码逻辑和用于通过所述待测试接口接收实际响应参数的响应代码逻辑。
步骤S54,根据所述接口测试信息和所述脚本框架生成接口测试脚本,其中,所述接口测试脚本在运行时通过所述请求代码逻辑向所述待测试接口发送包含所述接口测试信息中的请求参数的接口调用请求,并且通过所述响应代码逻辑接收由所述待测试接口返回的实际响应参数。
步骤S55,从所述接口调用请求中解析出请求发送时间和所述请求参数中的请求入参。
其中,接口调用请求中包括请求方法、请求方法的请求入参和请求发送时间等。例如,对于注册接口的请求入参,可以包括用户名和用户密码。
步骤S56,获取所述接口调用请求所调用的待测试接口关联的数据表名称。
工程师已经预先在接口文档中设置了对待测试接口进行测试时要把请求入参存储在哪个数据表中,在进行校验时,从接口文档获取该数据表名称即可。
步骤S57,确定距离所述请求发送时间最近且名称为该关联的数据表名称的数据表。
由于可能进行过多次测试,且每次测试的请求入参可能被存储在不同数据表中,因此为保证校验准确性需选择距离请求发送时间最近的数据表进行校验,且该数据表的名称为上述从接口文档中获得的数据表名称。
步骤S58,判断所述数据表中是否存储有所述请求入参,并返回判断结果。
其中,校验结果包括校验成功结果和校验失败结果。校验成功结果表明数据表中存储有该请求入参;校验失败结果包括数据表中未存储有该待测试接口的请求入参,或者,数据表中存储有该待测试接口的请求入参,但是存储的请求入参与接口测试请求中的请求入参不一致。
步骤S59,在运行完所述接口测试脚本之后,删除所述数据表。
可选地,在运行完接口测试脚本之后,还可以删除数据表,即清空数据库中的数据,以保证数据库的清洁度,供下次测试使用。
实施例五
本发明的实施例五提供了一种接口测试脚本生成装置,该接口测试脚本生成装置与上述实施例一相对应,相应的技术特征和技术效果在本实施例中不再详述,相关之处可参考上述实施例一。具体地,图6示意性示出了根据本发明实施例五的接口测试脚本生成装置的框图,如图6所示,该接口测试脚本生成装置600可以包括第一获取模块601、第一确定模块602、第二获取模块203和生成模块604,其中:
第一获取模块601,用于获取待测试接口的接口配置规则;
第一确定模块602,用于根据抓包工具和/或爬虫工具确定与所述接口配置规则匹配的接口测试信息,其中,所述接口测试信息包括所述待测试接口的请求参数;
第二获取模块603,用于获取预先设定的脚本框架,其中,所述脚本框架包括用于根据所述接口测试信息中的请求参数调用所述待测试接口的请求代码逻辑和用于通过所述待测试接口接收实际响应参数的响应代码逻辑;
生成模块604,用于根据所述接口测试信息和所述脚本框架生成接口测试脚本,其中,所述接口测试脚本在运行时通过所述请求代码逻辑向所述待测试接口发送包含所述接口测试信息中的请求参数的接口调用请求,并且通过所述响应代码逻辑接收由所述待测试接口返回的实际响应参数。
可选地,所述第一确定模块在执行根据抓包工具确定与所述接口配置规则匹配的接口测试信息的步骤时,还用于:利用所述抓包工具抓取所述待测试接口的接口信息;将所述待测试接口的接口信息与所述接口配置规则进行匹配;确定所述待测试接口的接口信息中匹配成功的信息为所述接口测试信息。
可选地,所述装置还包括:第二确定模块,用于在所述根据所述接口测试信息和所述脚本框架生成接口测试脚本的步骤之后,响应于接口回归测试请求,根据所述抓包工具确定与更新的接口配置规则匹配的接口测试信息,将所述匹配的接口测试信息记为最新接口测试信息;第一判断模块,用于当所述最新接口测试信息中的响应参数用于表征针对一目标待测试接口的测试成功时,判断所述接口测试脚本中是否存在所述目标待测试接口的接口测试信息;添加模块,用于在所述接口测试脚本中不存在所述目标待测试接口的接口测试信息时,将所述最新接口测试信息添加至所述接口测试脚本中作为所述目标待测试接口的接口测试信息;替换模块,用于在所述接口测试脚本中存在所述目标待测试接口的接口测试信息,且所述目标待测试接口的接口测试信息与所述最新接口测试信息不一致时,在所述接口测试脚本中将所述目标待测试接口的接口测试信息替换为所述最新接口测试信息。
可选地,所述第一判断模块还用于:确定所述最新接口测试信息中的请求参数的URI;判断所述接口测试脚本中是否存在包含所述URI的接口测试信息;其中,当所述接口测试脚本中存在包含所述URI的接口测试信息时,将该接口测试信息确定为所述接口测试脚本中的所述目标待测试接口的接口测试信息。
可选地,所述生成模块还用于:判断任一所述接口测试信息中的响应参数是否包含鉴权信息,其中,所述鉴权信息包括:COOKIE和/或TOKEN;当所述接口测试信息中的响应参数包含所述鉴权信息时,将所述鉴权信息的value赋值给公共变量;确定包含所述鉴权信息的所有目标请求参数,并按照所述公共变量设置所有所述目标请求参数中的所述鉴权信息的value。
可选地,所述装置还包括:解析模块,用于在所述根据所述接口测试信息和所述脚本框架生成接口测试脚本的步骤之后,从所述接口调用请求中解析出请求发送时间和所述请求参数中的请求入参;第三获取模块,用于获取所述接口调用请求所调用的待测试接口关联的数据表名称;第三确定模块,用于确定距离所述请求发送时间最近且名称为该关联的数据表名称的数据表;第二判断模块,用于判断所述数据表中是否存储有所述请求入参,并返回判断结果。
可选地,所述装置还包括:删除模块,用于在所述判断所述数据表中是否存储有所述请求入参,并返回判断结果的步骤之后,在运行完所述接口测试脚本之后,删除所述数据表。
实施例六
图7示意性示出了根据本发明实施例六的适于实现接口测试脚本生成方法的计算机设备的框图。本实施例中,计算机设备700可以是执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图7所示,本实施例的计算机设备700至少包括但不限于:可通过系统总线相互通信连接的存储器701、处理器702、网络接口703。需要指出的是,图7仅示出了具有组件701-703的计算机设备700,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器703至少包括一种类型的计算机可读存储介质,可读存储介质包括包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器701可以是计算机设备700的内部存储单元,例如该计算机设备700的硬盘或内存。在另一些实施例中,存储器701也可以是计算机设备700的外部存储设备,例如该计算机设备700上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器701还可以既包括计算机设备700的内部存储单元也包括其外部存储设备。在本实施例中,存储器701通常用于存储安装于计算机设备700的操作系统和各类应用软件,例如接口测试脚本生成方法的程序代码等。此外,存储器701还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器702在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器702通常用于控制计算机设备700的总体操作。例如执行与计算机设备700进行数据交互或者通信相关的控制和处理等的接口测试脚本生成方法的程序代码。
在本实施例中,存储于存储器701中的接口测试脚本生成方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器702)所执行,以完成本发明。
网络接口703可包括无线网络接口或有线网络接口,该网络接口703通常用于在计算机设备700与其他计算机设备之间建立通信链接。例如,网络接口703用于通过网络将计算机设备700与外部终端相连,在计算机设备700与外部终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,简称为GSM)、宽带码分多址(Wideband CodeDivision Multiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
实施例七
本实施例七还提供一种计算机可读存储介质,包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等,其上存储有计算机程序,所述计算机程序被处理器执行时实现接口测试脚本生成方法。进一步地,所述计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种接口测试脚本生成方法,其特征在于,所述方法包括:
获取待测试接口的接口配置规则;
根据抓包工具和/或爬虫工具确定与所述接口配置规则匹配的接口测试信息,其中,所述接口测试信息包括所述待测试接口的请求参数;
获取预先设定的脚本框架,其中,所述脚本框架包括用于根据所述接口测试信息中的请求参数调用所述待测试接口的请求代码逻辑和用于通过所述待测试接口接收实际响应参数的响应代码逻辑;
根据所述接口测试信息和所述脚本框架生成接口测试脚本,其中,所述接口测试脚本在运行时通过所述请求代码逻辑向所述待测试接口发送包含所述接口测试信息中的请求参数的接口调用请求,并且通过所述响应代码逻辑接收由所述待测试接口返回的实际响应参数。
2.根据权利要求1所述的方法,其特征在于,所述根据抓包工具确定与所述接口配置规则匹配的接口测试信息的步骤包括:
利用所述抓包工具抓取所述待测试接口的接口信息;
将所述待测试接口的接口信息与所述接口配置规则进行匹配;
确定所述待测试接口的接口信息中匹配成功的信息为所述接口测试信息。
3.根据权利要求1所述的方法,其特征在于,在所述根据所述接口测试信息和所述脚本框架生成接口测试脚本的步骤之后,所述方法还包括:
响应于接口回归测试请求,根据所述抓包工具确定与更新的接口配置规则匹配的接口测试信息,将所述匹配的接口测试信息记为最新接口测试信息;
当所述最新接口测试信息中的响应参数用于表征针对一目标待测试接口的测试成功时,判断所述接口测试脚本中是否存在所述目标待测试接口的接口测试信息;
在所述接口测试脚本中不存在所述目标待测试接口的接口测试信息时,将所述最新接口测试信息添加至所述接口测试脚本中作为所述目标待测试接口的接口测试信息;
在所述接口测试脚本中存在所述目标待测试接口的接口测试信息,且所述目标待测试接口的接口测试信息与所述最新接口测试信息不一致时,在所述接口测试脚本中将所述目标待测试接口的接口测试信息替换为所述最新接口测试信息。
4.根据权利要求3所述的方法,其特征在于,所述判断所述接口测试脚本中是否存在所述目标待测试接口的接口测试信息的步骤包括:
确定所述最新接口测试信息中的请求参数的URI;
判断所述接口测试脚本中是否存在包含所述URI的接口测试信息;
其中,当所述接口测试脚本中存在包含所述URI的接口测试信息时,将该接口测试信息确定为所述接口测试脚本中的所述目标待测试接口的接口测试信息。
5.根据权利要求1所述的方法,其特征在于,所述根据所述接口测试信息和所述脚本框架生成接口测试脚本的步骤包括:
判断任一所述接口测试信息中的响应参数是否包含鉴权信息,其中,所述鉴权信息包括:COOKIE和/或TOKEN;
当所述接口测试信息中的响应参数包含所述鉴权信息时,将所述鉴权信息的value赋值给公共变量;
确定包含所述鉴权信息的所有目标请求参数,并按照所述公共变量设置所有所述目标请求参数中的所述鉴权信息的value。
6.根据权利要求1所述的方法,其特征在于,在所述根据所述接口测试信息和所述脚本框架生成接口测试脚本的步骤之后,所述方法还包括:
从所述接口调用请求中解析出请求发送时间和所述请求参数中的请求入参;
获取所述接口调用请求所调用的待测试接口关联的数据表名称;
确定距离所述请求发送时间最近且名称为该关联的数据表名称的数据表;
判断所述数据表中是否存储有所述请求入参,并返回判断结果。
7.根据权利要求6所述的方法,其特征在于,在所述判断所述数据表中是否存储有所述请求入参,并返回判断结果的步骤之后,所述方法还包括:
在运行完所述接口测试脚本之后,删除所述数据表。
8.一种接口测试脚本生成装置,其特征在于,所述装置包括:
第一获取模块,用于获取待测试接口的接口配置规则;
第一确定模块,用于根据抓包工具和/或爬虫工具确定与所述接口配置规则匹配的接口测试信息,其中,所述接口测试信息包括所述待测试接口的请求参数;
第二获取模块,用于获取预先设定的脚本框架,其中,所述脚本框架包括用于根据所述接口测试信息中的请求参数调用所述待测试接口的请求代码逻辑和用于通过所述待测试接口接收实际响应参数的响应代码逻辑;
生成模块,用于根据所述接口测试信息和所述脚本框架生成接口测试脚本,其中,所述接口测试脚本在运行时通过所述请求代码逻辑向所述待测试接口发送包含所述接口测试信息中的请求参数的接口调用请求,并且通过所述响应代码逻辑接收由所述待测试接口返回的实际响应参数。
9.一种计算机设备,所述计算机设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一项所述的方法。
CN202110213710.2A 2021-02-25 2021-02-25 一种接口测试脚本生成方法、装置、计算机设备和介质 Pending CN112817867A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110213710.2A CN112817867A (zh) 2021-02-25 2021-02-25 一种接口测试脚本生成方法、装置、计算机设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110213710.2A CN112817867A (zh) 2021-02-25 2021-02-25 一种接口测试脚本生成方法、装置、计算机设备和介质

Publications (1)

Publication Number Publication Date
CN112817867A true CN112817867A (zh) 2021-05-18

Family

ID=75863867

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110213710.2A Pending CN112817867A (zh) 2021-02-25 2021-02-25 一种接口测试脚本生成方法、装置、计算机设备和介质

Country Status (1)

Country Link
CN (1) CN112817867A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113238965A (zh) * 2021-06-18 2021-08-10 杭州遥望网络科技有限公司 一种接口测试脚本生成方法、系统及存储介质
CN113468049A (zh) * 2021-06-29 2021-10-01 平安养老保险股份有限公司 基于可配置化接口的测试方法、装置、设备及介质
CN114090454A (zh) * 2021-11-29 2022-02-25 苏州万店掌网络科技有限公司 一种接口自动化测试方法、装置、设备及存储介质
CN115292200A (zh) * 2022-09-28 2022-11-04 北京六方云信息技术有限公司 接口测试方法、装置、设备与介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110287117A (zh) * 2019-06-27 2019-09-27 江苏满运软件科技有限公司 RESTful接口测试方法、系统、设备及存储介质
CN110750434A (zh) * 2018-07-23 2020-02-04 北京奇虎科技有限公司 接口测试方法、装置、电子设备和计算机可读存储介质
US10698803B1 (en) * 2019-01-09 2020-06-30 Bank Of America Corporation Computer code test script generating tool using visual inputs
CN112395202A (zh) * 2020-11-26 2021-02-23 苏宁云计算有限公司 接口自动化测试方法、装置、计算机设备和存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110750434A (zh) * 2018-07-23 2020-02-04 北京奇虎科技有限公司 接口测试方法、装置、电子设备和计算机可读存储介质
US10698803B1 (en) * 2019-01-09 2020-06-30 Bank Of America Corporation Computer code test script generating tool using visual inputs
CN110287117A (zh) * 2019-06-27 2019-09-27 江苏满运软件科技有限公司 RESTful接口测试方法、系统、设备及存储介质
CN112395202A (zh) * 2020-11-26 2021-02-23 苏宁云计算有限公司 接口自动化测试方法、装置、计算机设备和存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SYLAN215: "Postman 如何处理上一个接口返回值作为下一个接口入参?", pages 1 - 3, Retrieved from the Internet <URL:https://www.yisu.com/zixun/111781.html> *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113238965A (zh) * 2021-06-18 2021-08-10 杭州遥望网络科技有限公司 一种接口测试脚本生成方法、系统及存储介质
CN113468049A (zh) * 2021-06-29 2021-10-01 平安养老保险股份有限公司 基于可配置化接口的测试方法、装置、设备及介质
CN113468049B (zh) * 2021-06-29 2023-07-04 平安养老保险股份有限公司 基于可配置化接口的测试方法、装置、设备及介质
CN114090454A (zh) * 2021-11-29 2022-02-25 苏州万店掌网络科技有限公司 一种接口自动化测试方法、装置、设备及存储介质
CN114090454B (zh) * 2021-11-29 2023-01-24 苏州万店掌网络科技有限公司 一种接口自动化测试方法、装置、设备及存储介质
CN115292200A (zh) * 2022-09-28 2022-11-04 北京六方云信息技术有限公司 接口测试方法、装置、设备与介质

Similar Documents

Publication Publication Date Title
CN112817867A (zh) 一种接口测试脚本生成方法、装置、计算机设备和介质
CN109726099B (zh) 一种应用灰度发布方法、装置及设备
CN108628748B (zh) 自动化测试管理方法和自动化测试管理系统
CN107682361B (zh) 网站漏洞扫描方法、装置、计算机设备及存储介质
CN108418787B (zh) 企业资源计划数据的采集方法、终端设备及介质
CN112217656B (zh) Sd-wan系统中的网络设备的配置信息同步方法和装置
CN111290742A (zh) 参数验证方法、装置、电子设备及可读存储介质
CN111723313A (zh) 页面跳转的处理方法、装置、设备及存储介质
CN108710681A (zh) 文件获取方法、装置、设备及存储介质
CN113489713A (zh) 网络攻击的检测方法、装置、设备及存储介质
CN113448862B (zh) 软件版本测试方法、装置及计算机设备
CN110222535B (zh) 区块链配置文件的处理装置、方法及存储介质
US9355269B2 (en) Method and system for managing uniquely identifiable bookmarklets
CN110597541A (zh) 基于区块链的接口更新处理方法、装置、设备及存储介质
CN110191097B (zh) 登录页面安全性的检测方法、系统、设备及存储介质
CN114528201A (zh) 异常代码定位方法、装置、设备及介质
CN113204747A (zh) 账号管理方法、装置、服务器及存储介质
CN111210210B (zh) 支付数据处理方法、装置及电子设备
CN112181836A (zh) 测试用例生成方法、系统、设备及存储介质
CN109445758B (zh) 数据处理方法、装置、计算机设备和存储介质
CN113722225A (zh) 页面测试方法、装置、计算机设备和存储介质
CN108200060B (zh) 基于web子系统的单点登录验证方法、服务器及存储介质
CN113590180A (zh) 一种检测策略生成方法及装置
CN113419949A (zh) 数据处理的异常检测方法、装置、设备及存储介质
CN111651429B (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