CN111625464A - 接口的测试方法、装置、存储介质和处理器 - Google Patents
接口的测试方法、装置、存储介质和处理器 Download PDFInfo
- Publication number
- CN111625464A CN111625464A CN202010471168.6A CN202010471168A CN111625464A CN 111625464 A CN111625464 A CN 111625464A CN 202010471168 A CN202010471168 A CN 202010471168A CN 111625464 A CN111625464 A CN 111625464A
- Authority
- CN
- China
- Prior art keywords
- test
- interface
- data
- thread group
- tested
- 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
- 238000010998 test method Methods 0.000 title claims abstract description 18
- 238000012360 testing method Methods 0.000 claims abstract description 287
- 238000000034 method Methods 0.000 claims abstract description 26
- 238000012545 processing Methods 0.000 claims description 40
- 230000014509 gene expression Effects 0.000 claims description 7
- 230000002776 aggregation Effects 0.000 claims description 6
- 238000004220 aggregation Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 abstract description 12
- 230000004044 response Effects 0.000 description 6
- 238000013515 script Methods 0.000 description 6
- 235000010627 Phaseolus vulgaris Nutrition 0.000 description 4
- 244000046052 Phaseolus vulgaris Species 0.000 description 4
- 230000006854 communication Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 150000003839 salts Chemical class 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Images
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
-
- 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
-
- 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)
- Debugging And Monitoring (AREA)
Abstract
本申请提供了一种接口的测试方法、装置、存储介质和处理器,该测试方法包括:采用Python的Web框架生成测试用例,测试用例的测试数据包括接口路径、JSON数据和断言数据;采用JMETER建立测试计划,测试计划包括添加待测接口线程组,待测接口线程组至少用于取用接口路径、JSON数据和断言数据;根据测试计划执行测试用例,得到测试结果。上述测试方法中,测试计划可以直接取用测试用例的接口路径、JSON数据和断言数据,从而在测试不同的接口时,直接修改接口路径、JSON数据和断言数据即可,使得测试过程中一个线程组可以运行多个接口,从而提高了接口测试的效率。
Description
技术领域
本申请涉及软件测试技术领域,具体而言,涉及一种接口的测试方法、装置、存储介质和处理器。
背景技术
随着网络安全问题越来越被重视,在网络通信过程中,通常需要对数据进行编码,且请求接口时需要为其添加签名,如何应用工具来测试此类需要用户身份鉴权的接口成为测试人员一项必要技能。
JMETER是Apache组织开发的一款轻量级测试工具,测试人员可以利用JMETER工具的一系列插件(如正则表达式、BeanShell预处理程序、BeanShell后置处理器、BeanShell取样器)来测试需要鉴权的接口。
鉴权接口的请求参数由object、sign组成,其中object为业务API请求参数,由API请求字段(args1,args2...)拼接成标准的JSON格式字符串并经Base64编码;sign签名,由object+randomKey(randomKey是由平台下发的随机加密盐)经MD5加密生成。
现有技术提供的基于场景(以“创建家庭、修改家庭信息、删除家庭”这一场景为例,接口路径分别为“/createHome”、“/updateHome”、“/deleteHome”,且使用JMETER测试时通过CSV文件来实行参数化测试)的鉴权接口测试方法如下:
1.编写待测接口测试用例:(1)、构建“创建家庭、修改家庭信息、删除家庭”三个接口需要的JSON字符串;(2)、由于JMETER工具的BeanShell取样器无法直接识别JSON数据,需要使用JSON转换工具将JSON字符串进行压缩和转义。
2、在JMETER执行接口测试:(1)、添加测试计划;(2)、添加登录接口线程组,提取签名所需随机加密盐randomKey;(3)、添加待测场景的线程组;(4)、在线程组下面添加三个BeanShell取样器,分别导入“创建家庭、修改家庭信息、删除家庭”三个接口对应的压缩、转义后的JSON数据以生成接口请求参数,通过Base64编码分别生成object1、object2、object3,结合随机加密盐randomKey分别生成签名sign1、sign2、sign3;(5)、添加“创建家庭、修改家庭信息、删除家庭”三个http请求,接口地址分别填写为“/createHome”、“/updateHome”、“/deleteHome”,传入参数分别填写为{"sign":"${sign1}","object":"${object1}"}、{"sign":"${sign2}","object":"${object2}"}、{"sign":"${sign3}","object":"${object3}"};(6)分别添加三个断言;(7)添加***。
基于场景的鉴权接口测试时,每一个待测接口都要在JMETER中分别添加BeanShell取样器、HTTP请求、断言,场景较为复杂、待测接口较多情况下,需要添加的组件较多,接口测试的效率较低。
在背景技术部分中公开的以上信息只是用来加强对本文所描述技术的背景技术的理解,因此,背景技术中可能包含某些信息,这些信息对于本领域技术人员来说并未形成在本国已知的现有技术。
发明内容
本申请的主要目的在于提供一种接口的测试方法、装置、存储介质和处理器,以解决现有技术中的接口测试的效率低的问题。
为了实现上述目的,根据本申请的一个方面,提供了一种接口的测试方法,包括:采用Python的Web框架生成测试用例,所述测试用例的测试数据包括接口路径、JSON数据和断言数据;采用JMETER建立测试计划,所述测试计划包括添加待测接口线程组,所述待测接口线程组至少用于取用所述接口路径、所述JSON数据和所述断言数据;根据所述测试计划执行所述测试用例,得到测试结果。
进一步地,采用Python的Web框架生成测试用例,包括:在Python的Web页面输入所述测试数据,所述测试数据还包括CSV文件名称、用例文件描述、测试用例条数和断言数据;根据所述测试数据生成CSV文件,得到所述测试用例。
进一步地,采用JMETER建立测试计划,包括:建立所述测试计划的目录;在所述目录中添加HTTP信息管理器、HTTP请求默认值、用户定义的变量和BeanShell预处理程序;在所述目录中添加登录线程组,并通过所述登录线程组提取传入参数并将所述传入参数传递至所述待测接口线程组;在所述目录中添加所述待测接口线程组,并通过所述待测接口线程组取用所述测试数据和所述传入参数。
进一步地,在所述目录中添加所述待测接口线程组,还包括:添加断言和***。
进一步地,根据所述测试计划执行所述测试用例,得到测试结果,包括:根据所述测试计划执行所述测试用例;采用断言确定所述测试用例是否执行成功;采用***查看所述测试结果,所述测试结果包括察看结果树和聚合报告。
进一步地,通过所述登录线程组提取传入参数并将所述传入参数传递至所述待测接口线程组,包括:添加登录接口的HTTP请求;添加正则表达式,提取所述传入参数;添加BeanShell后置处理器,将所述传入参数设置为全局变量,使得所述传入参数传递至所述待测接口线程组。
进一步地,通过所述待测接口线程组取用所述测试数据,包括:添加BeanShell取样器,取用所述JSON数据;添加HTTP请求,提取所述接口路径。
根据本申请的另一个方面,提供了一种接口的测试装置,包括:生成单元,用于采用Python的Web框架生成测试用例,所述测试用例的测试数据包括接口路径、JSON数据和断言数据;处理单元,用于采用JMETER建立测试计划,所述测试计划包括添加待测接口线程组,所述待测接口线程组至少用于取用所述接口路径、所述JSON数据和所述断言数据;测试单元,用于根据所述测试计划执行所述测试用例,得到测试结果。
根据本申请的再一个方面,提供了一种存储介质,所述存储介质包括存储的程序,其中,所述程序执行任意一种所述的测试方法。
根据本申请的又一个方面,提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行任意一种所述的测试方法。
应用本申请的技术方案,上述接口的测试方法中,首先,采用Python的Web框架生成测试用例,测试用例的测试数据包括接口路径、JSON数据和断言数据;然后,采用JMETER建立测试计划,测试计划包括添加待测接口线程组,待测接口线程组至少用于取用接口路径、JSON数据和断言数据;最后,根据测试计划执行测试用例,得到测试结果。上述测试方法中,测试计划可以直接取用测试用例的接口路径、JSON数据和断言数据,从而在测试不同的接口时,直接修改接口路径、JSON数据和断言数据即可,使得测试过程中一个线程组可以运行多个接口,从而提高了接口测试的效率。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1示出了根据本申请的实施例的接口的测试方法的流程图;以及
图2示出了根据本申请的实施例的接口的测试装置的示意图。
具体实施方式
应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
应该理解的是,当元件(诸如层、膜、区域、或衬底)描述为在另一元件“上”时,该元件可直接在该另一元件上,或者也可存在中间元件。而且,在说明书以及权利要求书中,当描述有元件“连接”至另一元件时,该元件可“直接连接”至该另一元件,或者通过第三元件“连接”至该另一元件。
正如背景技术中所说的,现有技术中的接口测试的效率低,为了解决上述的技术问题,本申请提供了一种接口的测试方法、装置、存储介质和处理器。
图1示出了根据本申请的实施例的接口的测试方法的流程图,如图1所示,该测试方法包括以下步骤:
步骤S101,采用Python的Web框架生成测试用例,上述测试用例的测试数据包括接口路径、JSON数据和断言数据;
步骤S102,采用JMETER建立测试计划,上述测试计划包括添加待测接口线程组,上述待测接口线程组至少用于取用上述接口路径、上述JSON数据和上述断言数据;
步骤S103,根据上述测试计划执行上述测试用例,得到测试结果。
上述接口的测试方法中,首先,采用Python的Web框架生成测试用例,测试用例的测试数据包括接口路径、JSON数据和断言数据;然后,采用JMETER建立测试计划,测试计划包括添加待测接口线程组,待测接口线程组至少用于取用接口路径、JSON数据和断言数据;最后,根据测试计划执行测试用例,得到测试结果。上述测试方法中,测试计划可以直接取用测试用例的接口路径、JSON数据和断言数据,从而在测试不同的接口时,直接修改接口路径、JSON数据和断言数据即可,使得测试过程中一个线程组可以运行多个接口,从而提高了接口测试的效率。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在实际的测试过程中,由于JMETER的BeanShell取样器无法直接识别JSON数据,因此需要对JSON数据进行压缩和转义,传统方法需要手动或者借助外界工具来完成数据处理。本申请的一种实施方式中,采用Python的Web框架生成测试用例,包括:在Python的Web页面输入上述测试数据,上述测试数据还包括CSV文件名称、用例文件描述和测试用例条数;根据上述测试数据生成CSV文件,得到上述测试用例。具体地,采用Python的Web框架生成测试用例,即输入测试数据导出生成CSV文件,例如,home.csv文件,使得BeanShell取样器可以直接取用CSV文件的JSON数据,避免采用手动或者借助外界工具来完成,提高数据处理效率,进一步提高测试效率。
需要说明的是,CSV文件的测试数据中,例如,测试用例条数,也可以直接取用,提高数据处理效率,进一步提高测试效率。
本申请的一种实施方式中,采用JMETER建立测试计划,包括:建立上述测试计划的目录;在上述目录中添加HTTP信息管理器、HTTP请求默认值、用户定义的变量和BeanShell预处理程序;在上述目录中添加登录线程组,并通过上述登录线程组提取传入参数并将上述传入参数传递至上述待测接口线程组;在上述目录中添加上述待测接口线程组,并通过上述待测接口线程组取用上述测试数据和上述传入参数。具体地,在上述目录中添加HTTP信息管理器、HTTP请求默认值、用户定义的变量和BeanShell预处理程序,为测试提供需要鉴权的接口的传入参数,例如,randomKey、token、userid,然后添加登录线程组,提取传入参数并将传入参数传递至待测接口线程组,添加待测接口线程组,取用测试数据和传入参数,执行测试用例,实现对需要鉴权的接口进行测试。
需要说明的是,待测试接口采用post请求方式,HTTP信息管理器中输入HTTP对应的请求头,请求头包含许多有关的客户端环境和请求正文的有用信息,例如,请求头可以声明浏览器所用的语言,请求正文的长度等;HTTP请求默认值包括网络协议名称、服务器或IP地址、端口号;用户定义的变量为输入脚本中重复出现的变量,例如,测试用例的CSV文件的目录,输入名称为DATA,值为F:\jmeter_\testcase,后续可以用${DATA}代表CSV文件的目录;BeanShell预处理程序可以根据后期测试需要通过编写脚本来生成接口测试所用到的重复出现的数据,例如,MAC地址,MAC地址可以作为HTTP请求时提取的传入参数。
还需要说明的是,添加待测接口线程组的过程中,可以取用测试用例的用例条数来控制线程数,例如,设置待测接口线程组的线程数为${__CSVRead(${DATA}\home.csv,1)},实现使用测试用例的home.csv文件中的用例条数来控制线程数。
本申请的一种实施方式中,添加上述待测接口线程组,还包括:添加断言和***。具体地,断言可以添加响应断言,选择响应文本,并取用测试用例的CSV文件中的断言数据进行比较,确定是否断言成功,并添加***反馈测试结果,例如,在待测接口线程组的测试模式输入框中输入${__CSVRead(${DATA}\home.csv,3),则可取到测试用例的home.csv文件中的断言数据。
需要说明的是,添加上述登录线程组过程中,也可以添加断言和***,以反馈登录线程组的运行结果。
本申请的一种实施方式中,根据上述测试计划执行上述测试用例,得到测试结果,包括:根据上述测试计划执行上述测试用例;采用断言确定上述测试用例是否执行成功;采用***查看上述测试结果,上述测试结果包括察看结果树和聚合报告。具体地,响应文本,即接口的请求结果,与CSV文件中的断言数据进行比较,结果一致,则测试用例执行成功,结果不一致,则测试用例执行失败,***可以添加察看结果树和聚合报告,并以图表形式直观地呈现测试结果。
本申请的一种实施方式中,通过上述登录线程组提取传入参数并将上述传入参数传递至上述待测接口线程组,包括:添加登录接口的HTTP请求;添加正则表达式,提取上述传入参数;添加BeanShell后置处理器,将上述传入参数设置为全局变量,使得上述传入参数传递至上述待测接口线程组。具体地,在添加登录接口的HTTP请求后,通过添加正则表达式实现动态数据关联,从而获取服务器相应的动态数据,例如,randomKey、token和userid,作为需要鉴权的接口的传入参数,并通过添加BeanShell后置处理器将传入参数设置为全局变量,实现跨线程组传递参数,即将传入参数从登录线程组传递至待测接口线程组,例如,将randomKey设置为全局变量的脚本为${__setProperty(randomKey,${randomKey},true)},后续使用${__P(randomKey)}即可。
本申请的一种实施方式中,通过上述待测接口线程组取用上述测试数据和上述传入参数,包括:添加BeanShell取样器,取用上述JSON数据;添加HTTP请求,提取上述接口路径。具体地,添加BeanShell取样器,取用测试用例的CSV文件的JSON数据生成请求参数,对请求参数进行编码、加密等操作,生成请求接口需要的签名sign,例如,通过String json="${__eval(${__CSVRead(${DATA}\\home.csv,1)})}",即可取到测试用例的home.csv文件中的JSON数据;添加HTTP请求,提取测试用例的CSV文件的接口路径,例如,基于创建家庭、修改家庭信息、删除家庭这一场景,通过${__CSVRead(${DATA}\home.csv,0)},并可以取到创建家庭“/createHome”、修改家庭信息“/updateHome”、删除家庭“/deleteHome”的接口路径,其中传入参数为{"sign":"${sign}","object":"${object}"}。
本申请实施例还提供了一种接口的测试装置,需要说明的是,本申请实施例的接口的测试装置可以用于执行本申请实施例所提供的接口的测试方法。以下对本申请实施例提供的接口的测试装置进行介绍。
图2是根据本申请实施例的接口的测试装置的示意图,如图2所示,上述装置包括:
生成单元10,用于采用Python的Web框架生成测试用例,上述测试用例的测试数据包括接口路径、JSON数据和断言数据;
处理单元20,用于采用JMETER建立测试计划,上述测试计划包括添加待测接口线程组,上述待测接口线程组至少用于取用上述接口路径、上述JSON数据和上述断言数据;
测试单元30,用于根据上述测试计划执行上述测试用例,得到测试结果。
上述接口的测试装置中,生成单元采用Python的Web框架生成测试用例,测试用例的测试数据包括接口路径、JSON数据和断言数据;处理单元采用JMETER建立测试计划,测试计划包括添加待测接口线程组,待测接口线程组至少用于取用接口路径、JSON数据和断言数据;测试单元根据测试计划执行测试用例,得到测试结果。上述测试装置中,测试计划可以直接取用测试用例的接口路径、JSON数据和断言数据,从而在测试不同的接口时,直接修改接口路径、JSON数据和断言数据即可,使得测试过程中一个线程组可以运行多个接口,从而提高了接口测试的效率。
在实际的测试过程中,由于JMETER的BeanShell取样器无法直接识别JSON数据,因此需要对JSON数据进行压缩和转义,传统方法需要手动或者借助外界工具来完成数据处理。本申请的一种实施方式中,上述生成单元包括输入模块和生成模块,其中,上述输入模块用于在Python的Web页面输入上述测试数据,上述测试数据还包括CSV文件名称、用例文件描述、测试用例条数和断言数据;上述生成模块用于根据上述测试数据生成CSV文件,得到上述测试用例。具体地,采用Python的Web框架生成测试用例,即输入测试数据导出生成CSV文件,例如,home.csv文件,使得BeanShell取样器可以直接取用CSV文件的JSON数据,避免采用手动或者借助外界工具来完成,提高数据处理效率,进一步提高测试效率。
需要说明的是,CSV文件的测试数据中,例如,测试用例条数和断言数据,也可以直接取用,提高数据处理效率,进一步提高测试效率。
本申请的一种实施方式中,上述处理单元包括第一处理模块、第二处理模块和第三处理模块,其中,上述第一处理模块用于建立上述测试计划的目录;在上述目录中添加HTTP信息管理器、HTTP请求默认值、用户定义的变量和BeanShell预处理程序;上述第二处理模块用于在上述目录中添加登录线程组,并通过上述登录线程组提取传入参数并将上述传入参数传递至上述待测接口线程组;上述第三处理模块用于在上述目录中添加上述待测接口线程组,并通过上述待测接口线程组取用上述测试数据和上述传入参数。具体地,在上述目录中添加HTTP信息管理器、HTTP请求默认值、用户定义的变量和BeanShell预处理程序,为测试提供需要鉴权的接口的传入参数,例如,randomKey、token、userid,然后添加登录线程组,提取传入参数并将传入参数传递至待测接口线程组,添加待测接口线程组,取用测试数据和传入参数,执行测试用例,实现对需要鉴权的接口进行测试。
需要说明的是,待测试接口采用post请求方式,HTTP信息管理器中输入HTTP对应的请求头,请求头包含许多有关的客户端环境和请求正文的有用信息,例如,请求头可以声明浏览器所用的语言,请求正文的长度等;HTTP请求默认值包括网络协议名称、服务器或IP地址、端口号;用户定义的变量为输入脚本中重复出现的变量,例如,测试用例的CSV文件的目录,输入名称为DATA,值为F:\jmeter_\testcase,后续可以用${DATA}代表CSV文件的目录;BeanShell预处理程序可以根据后期测试需要通过编写脚本来生成接口测试所用到的重复出现的数据,例如,MAC地址,MAC地址可以作为HTTP请求时提取的传入参数。
还需要说明的是,添加待测接口线程组的过程中,可以取用测试用例的用例条数来控制线程数,例如,设置待测接口线程组的线程数为${__CSVRead(${DATA}\home.csv,1)},实现使用测试用例的home.csv文件中的用例条数来控制线程数。
本申请的一种实施方式中,上述第三处理模块还包括第一处理子模块,上述第一处理子模块用于添加断言和***。具体地,断言可以添加响应断言,选择响应文本,并取用测试用例的CSV文件中的断言数据进行比较,确定是否断言成功,并添加***反馈测试结果,例如,在待测接口线程组的测试模式输入框中输入${__CSVRead(${DATA}\home.csv,3),则可取到测试用例的home.csv文件中的断言数据。
需要说明的是,添加上述登录线程组过程中,也可以添加断言和***,以反馈登录线程组的运行结果。
本申请的一种实施方式中,上述测试单元包括第四处理模块、第五处理模块和第六处理模块,其中,上述第四处理模块用于根据上述测试计划执行上述测试用例;上述第五处理模块用于采用断言确定上述测试用例是否执行成功;上述第六处理模块用于采用***查看上述测试结果,上述测试结果包括察看结果树和聚合报告。具体地,响应文本,即接口的请求结果,与CSV文件中的断言数据进行比较,结果一致,则测试用例执行成功,结果不一致,则测试用例执行失败,***可以添加察看结果树和聚合报告,并以图表形式直观地呈现测试结果。
本申请的一种实施方式中,上述第二处理模块包括第二处理子模块、第三处理子模块和第四处理子模块,其中,上述第二处理子模块用于添加登录接口的HTTP请求;上述第三处理子模块用于添加正则表达式,提取上述传入参数;上述第四处理子模块用于添加BeanShell后置处理器,将上述传入参数设置为全局变量,使得上述传入参数传递至上述待测接口线程组。具体地,在添加登录接口的HTTP请求后,通过添加正则表达式实现动态数据关联,从而获取服务器相应的动态数据,例如,randomKey、token和userid,作为需要鉴权的接口的传入参数,并通过添加BeanShell后置处理器将传入参数设置为全局变量,实现跨线程组传递参数,即将传入参数从登录线程组传递至待测接口线程组,例如,将randomKey设置为全局变量的脚本为${__setProperty(randomKey,${randomKey},true)},后续使用${__P(randomKey)}即可。
本申请的一种实施方式中,上述第三处理模块包括第五处理子模块和第六处理子模块,其中,上述第五处理子模块用于添加BeanShell取样器,取用上述JSON数据;上述第六处理子模块用于添加HTTP请求,提取上述接口路径。具体地,添加BeanShell取样器,取用测试用例的JSON数据生成请求参数,对请求参数进行编码、加密等操作,生成请求接口需要的签名sign,例如,通过String json="${__eval(${__CSVRead(${DATA}\\home.csv,1)})}",即可取到测试用例的home.csv文件中的JSON数据;添加HTTP请求,提取测试用例的CSV文件的接口路径,例如,基于创建家庭、修改家庭信息、删除家庭这一场景,通过${__CSVRead(${DATA}\home.csv,0)},并可以取到创建家庭“/createHome”、修改家庭信息“/updateHome”、删除家庭“/deleteHome”的接口路径,其中传入参数为{"sign":"${sign}","object":"${object}"}。
上述控制装置包括处理器和存储器,上述生成单元、处理单元和测试单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来解决现有技术中的接口测试的效率低。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现上述测试方法。
本发明实施例提供了一种处理器,上述处理器用于运行程序,其中,上述程序运行时执行上述测试方法。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现至少以下步骤:
步骤S101,采用Python的Web框架生成测试用例,上述测试用例的测试数据包括接口路径、JSON数据和断言数据;
步骤S102,采用JMETER建立测试计划,上述测试计划包括添加待测接口线程组,上述待测接口线程组至少用于取用上述接口路径、上述JSON数据和上述断言数据;
步骤S103,根据上述测试计划执行上述测试用例,得到测试结果。
本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有至少如下方法步骤的程序:
步骤S101,采用Python的Web框架生成测试用例,上述测试用例的测试数据包括接口路径、JSON数据和断言数据;
步骤S102,采用JMETER建立测试计划,上述测试计划包括添加待测接口线程组,上述待测接口线程组至少用于取用上述接口路径、上述JSON数据和上述断言数据;
步骤S103,根据上述测试计划执行上述测试用例,得到测试结果。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例上述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
从以上的描述中,可以看出,本申请上述的实施例实现了如下技术效果:
1)、本申请的接口的测试方法中,首先,采用Python的Web框架生成测试用例,测试用例的测试数据包括接口路径、JSON数据和断言数据;然后,采用JMETER建立测试计划,测试计划包括添加待测接口线程组,待测接口线程组至少用于取用接口路径、JSON数据和断言数据;最后,根据测试计划执行测试用例,得到测试结果。上述测试方法中,测试计划可以直接取用测试用例的接口路径、JSON数据和断言数据,从而在测试不同的接口时,直接修改接口路径、JSON数据和断言数据即可,使得测试过程中一个线程组可以运行多个接口,从而提高了接口测试的效率。
2)、本申请的接口的测试装置中,生成单元采用Python的Web框架生成测试用例,测试用例的测试数据包括接口路径、JSON数据和断言数据;处理单元采用JMETER建立测试计划,测试计划包括添加待测接口线程组,待测接口线程组至少用于取用接口路径、JSON数据和断言数据;测试单元根据测试计划执行测试用例,得到测试结果。上述测试装置中,测试计划可以直接取用测试用例的接口路径、JSON数据和断言数据,从而在测试不同的接口时,直接修改接口路径、JSON数据和断言数据即可,使得测试过程中一个线程组可以运行多个接口,从而提高了接口测试的效率。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种接口的测试方法,其特征在于,包括:
采用Python的Web框架生成测试用例,所述测试用例的测试数据包括接口路径、JSON数据和断言数据;
采用JMETER建立测试计划,所述测试计划包括添加待测接口线程组,所述待测接口线程组至少用于取用所述接口路径、所述JSON数据和所述断言数据;
根据所述测试计划执行所述测试用例,得到测试结果。
2.根据权利要求1所述的测试方法,其特征在于,采用Python的Web框架生成测试用例,包括:
在Python的Web页面输入所述测试数据,所述测试数据还包括CSV文件名称、用例文件描述、测试用例条数和断言数据;
根据所述测试数据生成CSV文件,得到所述测试用例。
3.根据权利要求1所述的测试方法,其特征在于,采用JMETER建立测试计划,包括:
建立所述测试计划的目录;
在所述目录中添加HTTP信息管理器、HTTP请求默认值、用户定义的变量和BeanShell预处理程序;
在所述目录中添加登录线程组,并通过所述登录线程组提取传入参数并将所述传入参数传递至所述待测接口线程组;
在所述目录中添加所述待测接口线程组,并通过所述待测接口线程组取用所述测试数据和所述传入参数。
4.根据权利要求3所述的测试方法,其特征在于,在所述目录中添加所述待测接口线程组,还包括:
添加断言和***。
5.根据权利要求4所述的测试方法,其特征在于,根据所述测试计划执行所述测试用例,得到测试结果,包括:
根据所述测试计划执行所述测试用例;
采用断言确定所述测试用例是否执行成功;
采用***查看所述测试结果,所述测试结果包括察看结果树和聚合报告。
6.根据权利要求3所述的测试方法,其特征在于,通过所述登录线程组提取传入参数并将所述传入参数传递至所述待测接口线程组,包括:
添加登录接口的HTTP请求;
添加正则表达式,提取所述传入参数;
添加BeanShell后置处理器,将所述传入参数设置为全局变量,使得所述传入参数传递至所述待测接口线程组。
7.根据权利要求3所述的测试方法,其特征在于,通过所述待测接口线程组取用所述测试数据,包括:
添加BeanShell取样器,取用所述JSON数据;
添加HTTP请求,提取所述接口路径。
8.一种接口的测试装置,其特征在于,包括:
生成单元,用于采用Python的Web框架生成测试用例,所述测试用例的测试数据包括接口路径、JSON数据和断言数据;
处理单元,用于采用JMETER建立测试计划,所述测试计划包括添加待测接口线程组,所述待测接口线程组至少用于取用所述接口路径、所述JSON数据和所述断言数据;
测试单元,用于根据所述测试计划执行所述测试用例,得到测试结果。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序执行权利要求1至7中任意一项所述的测试方法。
10.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至7中任意一项所述的测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010471168.6A CN111625464A (zh) | 2020-05-28 | 2020-05-28 | 接口的测试方法、装置、存储介质和处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010471168.6A CN111625464A (zh) | 2020-05-28 | 2020-05-28 | 接口的测试方法、装置、存储介质和处理器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111625464A true CN111625464A (zh) | 2020-09-04 |
Family
ID=72259280
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010471168.6A Pending CN111625464A (zh) | 2020-05-28 | 2020-05-28 | 接口的测试方法、装置、存储介质和处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111625464A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112579446A (zh) * | 2020-12-10 | 2021-03-30 | 北京软通智慧城市科技有限公司 | 一种接口测试方法、装置、电子设备和存储介质 |
CN113535557A (zh) * | 2021-07-14 | 2021-10-22 | 上海中通吉网络技术有限公司 | 一种基于JMeter的断言方法及装置 |
CN113656302A (zh) * | 2021-08-16 | 2021-11-16 | 杭州安恒信息技术股份有限公司 | Waf规则自动测试方法、***、存储介质及终端设备 |
CN115114135A (zh) * | 2021-03-17 | 2022-09-27 | 中国联合网络通信集团有限公司 | 软件数据测试方法、装置、设备、介质及产品 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109101415A (zh) * | 2018-06-25 | 2018-12-28 | 平安科技(深圳)有限公司 | 基于数据库比对的接口测试方法、***、设备和存储介质 |
CN109597761A (zh) * | 2018-12-03 | 2019-04-09 | 四川长虹电器股份有限公司 | 一种基于Jmeter的接口自动化测试方法 |
-
2020
- 2020-05-28 CN CN202010471168.6A patent/CN111625464A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109101415A (zh) * | 2018-06-25 | 2018-12-28 | 平安科技(深圳)有限公司 | 基于数据库比对的接口测试方法、***、设备和存储介质 |
CN109597761A (zh) * | 2018-12-03 | 2019-04-09 | 四川长虹电器股份有限公司 | 一种基于Jmeter的接口自动化测试方法 |
Non-Patent Citations (3)
Title |
---|
一步一脚印, 《HTTPS://WWW.CNBLOGS.COM/ZHANGWUXUAN/P/12416311.HTML》, 5 March 2020 (2020-03-05), pages 1 - 6 * |
于艳: "《软件测试策略、设计及其自动化实战》", 31 March 2019, 西安电子科技大学出版社, pages: 363 * |
风清扬不在华山: "jmeter如何设置全局变量", 《HTTPS://WWW.CNBLOGS.COM/SLOWFISH/P/11112320.HTML》, 2 July 2019 (2019-07-02), pages 1 - 3 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112579446A (zh) * | 2020-12-10 | 2021-03-30 | 北京软通智慧城市科技有限公司 | 一种接口测试方法、装置、电子设备和存储介质 |
CN115114135A (zh) * | 2021-03-17 | 2022-09-27 | 中国联合网络通信集团有限公司 | 软件数据测试方法、装置、设备、介质及产品 |
CN115114135B (zh) * | 2021-03-17 | 2024-05-17 | 中国联合网络通信集团有限公司 | 软件数据测试方法、装置、设备、介质及产品 |
CN113535557A (zh) * | 2021-07-14 | 2021-10-22 | 上海中通吉网络技术有限公司 | 一种基于JMeter的断言方法及装置 |
CN113656302A (zh) * | 2021-08-16 | 2021-11-16 | 杭州安恒信息技术股份有限公司 | Waf规则自动测试方法、***、存储介质及终端设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111625464A (zh) | 接口的测试方法、装置、存储介质和处理器 | |
US10601866B2 (en) | Discovering website phishing attacks | |
CN110442524B (zh) | 一种针对带有认证授权的web服务接口测试方法和装置 | |
US9015832B1 (en) | Application auditing through object level code inspection | |
JP6559694B2 (ja) | 自動sdk受容 | |
US10007776B1 (en) | Systems and methods for distinguishing among human users and software robots | |
CN113190464B (zh) | mock测试方法、装置、电子设备及介质 | |
US10127373B1 (en) | Systems and methods for distinguishing among human users and software robots | |
CN111163095B (zh) | 网络攻击分析方法、网络攻击分析装置、计算设备和介质 | |
CN105472052A (zh) | 一种跨域服务器的登录方法和*** | |
US10320624B1 (en) | Access control policy simulation and testing | |
CN111931188A (zh) | 登陆场景下漏洞测试方法及*** | |
CN105554136B (zh) | 备份数据还原方法、装置及*** | |
CN114189553B (zh) | 一种流量回放方法、***及计算设备 | |
CN107911383A (zh) | 一种密码校验方法和装置 | |
US10310962B2 (en) | Infrastructure rule generation | |
WO2022093355A1 (en) | Machine learning-based techniques for identifying deployment environments and enhancing security thereof | |
CN108153745B (zh) | 一种应用数据调用方法及应用开发*** | |
US20220400071A1 (en) | System for Creating Randomized Scaled Testing | |
CN115016995A (zh) | 接口测试方法、计算机设备及计算机存储介质 | |
CN113204449B (zh) | 会话备份方法、计算机可读存储介质及终端设备 | |
US20220038447A1 (en) | Systems and methods for autonomous program detection and management | |
US11019089B1 (en) | Performing security assessments based on user credentials | |
CN112272125A (zh) | 一种负载均衡协议的测试方法、***、终端及存储介质 | |
CN111651766A (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 |