CN112685293A - 一种加密接口的测试方法及相关设备 - Google Patents
一种加密接口的测试方法及相关设备 Download PDFInfo
- Publication number
- CN112685293A CN112685293A CN202011550889.2A CN202011550889A CN112685293A CN 112685293 A CN112685293 A CN 112685293A CN 202011550889 A CN202011550889 A CN 202011550889A CN 112685293 A CN112685293 A CN 112685293A
- Authority
- CN
- China
- Prior art keywords
- interface
- tested
- encryption
- token
- 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.)
- Pending
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 180
- 238000000034 method Methods 0.000 claims abstract description 55
- 238000012545 processing Methods 0.000 claims description 10
- 238000004891 communication Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 7
- 230000014509 gene expression Effects 0.000 claims description 7
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 238000010998 test method Methods 0.000 claims description 5
- 230000003993 interaction Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 29
- 230000006870 function Effects 0.000 description 10
- 238000004422 calculation algorithm Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000013515 script Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000009530 blood pressure measurement Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 235000010627 Phaseolus vulgaris Nutrition 0.000 description 1
- 244000046052 Phaseolus vulgaris Species 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 235000014510 cooky Nutrition 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000009662 stress testing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本申请涉及接口测试技术领域,提供了一种加密接口的测试方法及相关设备,其中,该方法包括:获取待测试接口对应的令牌,并将所述令牌存储至测试工具中;根据所述令牌和所述待测试接口的接口入参,生成入参信息;调用存储在所述测试工具中的高级加密标准AES加解密包和所述令牌,对所述入参信息进行加密;将加密后的所述入参信息输入至所述待测试接口,接收所述待测试接口反馈的加密后的返回结果;调用所述AES加解密包,对所述加密后的返回结果进行解密,得到明文的返回结果,并基于所述返回结果确定所述待测试接口的测试结果。实施本申请可以对真实环境中的加密接口进行测试,保证测试的有效性,并降低测试流程的复杂度。
Description
技术领域
本申请涉及接口测试技术领域,尤其涉及一种加密接口的测试方法及相关设备。
背景技术
随着信息技术的飞速发展,人们对信息安全也日益重视起来。目前很多系统在接口设计上都使用了不通类型的加密方式,以保证信息在传输过程中的安全可靠。目前软件开发过程中最常见的一种对称加解密算法是AES(高级加密标准,Advanced EncryptionStandard),相对应的,在测试过程中,部分案例需要针对于加密的接口进行性能压测。
然而,目前在使用jmeter(基于java的压力测试工具)进行接口压力测试的时候,现有的很多测试方法都是基于临时关闭加解密接口服务的方式进行的,也即对未加密的接口进行性能压力测试,显然,这种操作方式不能真正的模拟生产环境上的接口,不符合线上接口测试的目标。
此外,由于目前加解密的秘钥是从动态变化的token(令牌)中获取的,通常情况下可以使用token的后16位作为加解密的秘钥进行加解密,但是每间隔一段时间token都会失效,从而需要重新获取新的token替换到jmeter文件脚本中进行测试,大大加深了测试的复杂度,降低了测试的时效性。
因此,如何模拟真实的接口加解密过程,以实现对加解密接口的性能压力测试,并降低压力测试的复杂度是亟待解决的问题。
发明内容
鉴于上述问题,提出了本申请以便提供一种克服上述问题或者至少部分地解决上述问题的一种加密接口的测试方法及相关设备。
第一方面,本申请实施例提供了一种加密接口的测试方法,可包括:
获取待测试接口对应的令牌,并将所述令牌存储至测试工具中;
根据所述令牌和所述待测试接口的接口入参,生成入参信息;
调用存储在所述测试工具中的高级加密标准AES加解密包和所述令牌,对所述入参信息进行加密;
将加密后的所述入参信息输入至所述待测试接口,接收所述待测试接口反馈的加密后的返回结果;
调用所述AES加解密包,对所述加密后的返回结果进行解密,得到明文的返回结果,并基于所述返回结果确定所述待测试接口的测试结果。
在一种可能实现的方式中,所述基于所述返回结果确定所述待测试接口的测试结果,包括:
将所述返回结果与所述入参信息对应的期望结果进行对比,若所述返回结果与所述期望结果相同,则确定所述返回结果正确,所述待测试接口的所述测试结果为测试通过;若所述返回结果与所述期望结果不同,则确定所述返回结果不正确,所述待测试接口的所述测试结果为测试不通过。
在一种可能实现的方式中,所述获取待测试接口对应的令牌,包括:
向所述待测试接口发送请求,获取所述待测试接口的返回信息;
通过正则表达式提取器从所述返回信息中获取所述令牌。
在一种可能实现的方式中,所述调用存储在所述测试工具中的高级加密标准AES加解密包和所述令牌,对所述入参信息进行加密,包括:
截取所述令牌中的部分或者全部;
调用放置在所述测试工具中的所述AES加解密包,使用所述令牌中的部分或者全部作为加密密钥对所述入参信息进行加密。
在一种可能实现的方式中,所述调用所述AES加解密包,对所述加密后的返回结果进行解密,包括:
调用所述AES加解密包,使用所述令牌中的部分或者全部作为解密密钥对所述加密后的返回结果进行解密。
在一种可能实现的方式中,所述方法还包括:
通过所述测试工具设置所述待测试接口对应的用户并发数量;所述待测试接口包括登录接口、转化率接口和权限配置接口中的一种或多种。
在一种可能实现的方式中,所述AES加解密包存储在所述测试工具的lib目录下;所述测试工具为jmeter。
第二方面,本申请实施例提供了一种加密接口的测试装置,其中,所述装置包括:
获取单元,用于获取待测试接口对应的令牌,并将所述令牌存储至测试工具中;
生成单元,用于根据所述令牌和所述待测试接口的接口入参,生成入参信息;
加密单元,用于调用存储在所述测试工具中的高级加密标准AES加解密包和所述令牌,对所述入参信息进行加密;
接收单元,用于将加密后的所述入参信息输入至所述待测试接口,接收所述待测试接口反馈的加密后的返回结果;
解密单元,用于调用所述AES加解密包,对所述加密后的返回结果进行解密,得到明文的返回结果,并基于所述返回结果确定所述待测试接口的测试结果。
在一种可能实现的方式中,所述解密单元,具体用于:
将所述返回结果与所述入参信息对应的期望结果进行对比,若所述返回结果与所述期望结果相同,则确定所述返回结果正确,所述待测试接口的所述测试结果为测试通过;若所述返回结果与所述期望结果不同,则确定所述返回结果不正确,所述待测试接口的所述测试结果为测试不通过。
在一种可能实现的方式中,所述获取单元,具体用于:
向所述待测试接口发送请求,获取所述待测试接口的返回信息;
通过正则表达式提取器从所述返回信息中获取所述令牌。
在一种可能实现的方式中,所述加密单元,具体用于:
截取所述令牌中的部分或者全部;
调用放置在所述测试工具中的所述AES加解密包,使用所述令牌中的部分或者全部作为加密密钥对所述入参信息进行加密。
在一种可能实现的方式中,所述解密单元,具体用于:
调用所述AES加解密包,使用所述令牌中的部分或者全部作为解密密钥对所述加密后的返回结果进行解密。
在一种可能实现的方式中,所述装置还包括:
设置单元,用于通过所述测试工具设置所述待测试接口对应的用户并发数量;所述待测试接口包括登录接口、转化率接口和权限配置接口中的一种或多种。
在一种可能实现的方式中,所述AES加解密包存储在所述测试工具的lib目录下;所述测试工具为jmeter。
第三方面,本申请实施例提供了一种计算机设备,包括存储组件,处理组件和通信组件,存储组件,处理组件和通信组件相互连接,其中,存储组件用于存储计算机程序,通信组件用于与外部设备进行信息交互;处理组件被配置用于调用计算机程序,执行上述第一方面所述的方法,此处不再赘述。
第四方面,本申请实施例提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现上述第一方面所述的方法,此处不再赘述。
本申请可以通过在测试工具中引入AES加解密包,使得后续对入参信息和返回结果进行加解密时可以直接调用该AES加解密包,从而实现了模拟接口线上加解密的过程,保证了接口的测试环境与线上真实环境的一致性。如此,对比现有技术中在进行接口测试时往往会关闭接口的加解密服务,导致接口测试脱离实际情况的方案而言,本申请大大提高了测试的有效性,提升了测试结果的可信度。此外,本申请还通过将动态变化的令牌存放至测试工具中,使得后续可以直接调用,无需再重新获取令牌,大大降低了测试流程的复杂性,减少了测试人员的工作量。
附图说明
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1是本申请实施例提供的一种加密接口的测试方法的系统架构示意图;
图2是本申请实施例提供的一种加密接口的测试方法的流程示意图;
图3是本申请实施例提供的另一种加密接口的测试方法的流程示意图;
图4是本申请实施例提供的一种加密接口的测试装置的结构示意图;
图5是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例进行描述。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于描述特定顺序。此外,“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
在本申请中使用的术语“服务器”、“单元”、“系统”等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件、或执行中的软件。例如,服务器可以是但不限于,处理器,数据处理平台,计算设备,计算机,两个或更多个计算机等。
首先,对本申请中的部分用语进行解释说明,以便于本领域技术人员理解。
(1)jmeter(一种基于java的压力测试工具),可以用于对接口进行压力测试。具体的,jmeter可以用于测试静态和动态资源,例如静态文件、Java小服务程序、公共网关接口(common gateway interface,CGI)脚本、Java对象、数据库、文件传输协议(file transferprotocol,FTP)服务器,等等。jmeter可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。此外,jmeter还能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证程序是否返回了期望的结果。其中,为了最大限度的灵活性,jmeter允许使用正则表达式创建断言。
(2)token(令牌),通常是在服务端产生的一串字符串。如果前端使用用户名/密码向服务端请求认证,服务端认证成功,那么在服务端会返回token给前端。可选的,前端可以在每次请求的时候带上token以证明自己的合法地位。需要说明的是,token具备有效期,也即token是动态变化的。
(3)高级加密标准(advanced encryption standard,AES),为一种常见的对称加密算法。其中,对称加密算法使用的加密密钥和解密密钥为相同的密钥。
其次,对本申请实施例所基于的其中一种加密接口的测试方法的系统架构进行描述。
请参阅图1,图1是本申请实施例提供的一种加密接口的测试方法的系统架构示意图。如图1所示,该系统架构可以包括计算机设备101(图1中以台式电脑为例)和服务器201。对于需要进行接口测试的计算机设备101,可以直接在该计算机设备101上集成本申请实施例所提供的接口测试功能,或者可以在该计算机设备101上安装用于实现申请实施例方法的客户端。又或者,本申请所提供的接口测试方法还可以以软件开发工具包(softwaredevelopment kit,SDK)的形式运行在服务器201等设备上,以SDK的形式提供接口测试功能的接口,计算机设备101或者其他设备可以通过提供的接口实现对异常应用程序的处理,等等,本申请实施例对此不作具体限定。其中,计算机设备101可以通过有线或者无线的方式与服务器201建立连接,服务器201可以是一个服务器,也可以是由多个服务器组成的服务器集群,或者一个云计算服务中心等等,本申请实施例对此不作具体限定。
下面,以计算机设备101为例,详细阐述本申请实施例中提供的一种加密接口的测试方法。具体地,为了模拟接口线上加解密的过程,实现对加密接口的测试,计算机设备101首先可以将测试过程中需要引用的加解密包存储在测试工具中。其中,该测试工具可以为jmeter(一种基于java的开源压力测试工具),该加解密包可以为AES加解密包,该AES加解密包中可以包括AES加密算法和AES解密算法。可选地,可以通过将该AES加解密包放置在jmeter的lib目录下,以便后续进行加解密时可以直接调用。需要说明的是,该待测试接口为具备加解密服务的接口,例如可以为登录接口、转化率接口和权限配置接口,等等,本申请实施例对此不作具体限定。然后,计算机设备101可以获取该待测试接口对应的令牌,并将该令牌存储在jmeter中,以便后续加解密过程中调用。计算机设备101可以根据该令牌和该待测试接口的接口入参(例如登录接口的接口入参可以包括用户名和密码等),生成入参信息。然后,计算机设备101可以调用事先存储在jmeter中的AES加解密包和令牌,对所述入参信息进行加密。可选的,计算机设备101可以通过截取该令牌的后16位,并使用该令牌的后16位作为加密密钥对该入参信息进行加密。然后,计算机设备101可以将加密后的该入参信息输入至该待测试接口,并接收该待测试接口反馈的加密后的返回结果。最终,计算机设备101可以调用该AES加解密包,并使用该令牌的后16位作为解密密钥对加密后的返回结果进行解密,从而得到明文的返回结果。如此,计算机设备101可以并基于该返回结果以及该入参信息对应的期望结果确定该待测试接口的测试结果。例如,以登录接口为例,若该入参信息包括正确的用户名和密码,则待测试接口返回的期望结果应该是登录成功,若实际得到的返回结果与该期望结果不同,则可以表示该待测试接口的测试不通过,需要工作人员进行修正;否则,若实际得到的返回结果与该期望结果相同,则可以表示该待测试接口的测试通过,等等,此处不再进行赘述。
可选地,在针对该待测试接口完成加解密测试(也即验证该待测试接口能否基于入参信息返回正确的结果)后,为了验证接口性能,还可以进一步对接口进行压力测试。具体地,可以根据需求或者性能指标设置线程数,也即设置接口的用户并发数量,模拟同一时间多个用户对同一接口进行调用,以达到性能压力测试的目的。压力测试过程中可以通过观察其性能变化,找到该待测试接口的性能拐点。需要说明的是,性能拐点指的是性能压测过程中,多少并发用户数可以得到最好的每秒执行事务数(Transactions Per Second,TPS),从而可以获取接口压测过程中的最好指标。可选地,在完成对该待测试接口的压力测试后,计算机设备还可以输出压力测试报告,以便工作人员更好掌握该接口的性能状况,并对该接口进行不断优化,等等。
如上所述,本申请实施例中的计算机设备可以包括但不限于任何一种基于智能操作系统的电子产品,其可与用户通过键盘、虚拟键盘、触摸板、触摸屏以及声控设备等输入设备来进行人机交互,诸如具备上述接口测试功能的智能手机、平板电脑、笔记本电脑和台式电脑等。其中,智能操作系统包括但不限于任何通过向移动设备提供各种移动应用来丰富设备功能的操作系统,诸如:安卓(AndroidTM)、iOSTM、Windows PhoneTM等。本申请实施例中的计算机设备还可以是具备上述接口测试功能的一个或多个服务器(多个服务器可以构成服务器集群),等等,本申请实施例对此不作具体限定。
还可以理解的是,图1所示的加密接口的测试方法的系统架构只是本申请实施例中的部分示例性的实施方式,本申请实施例中加密接口的测试方法的系统架构包括但不仅限于以上加密接口的测试方法的系统架构。
请参阅图2,图2是本申请实施例提供的一种加密接口的测试方法的流程示意图。可应用于上述图1中的系统,下面将结合图2从计算机设备101的单侧进行描述。该方法可以包括以下步骤S201-步骤S203。
步骤S201:获取待测试接口对应的令牌,并将所述令牌存储至测试工具中。
具体地,计算机设备可以通过向待测试接口发送请求,然后获取该待测试接口的返回信息。
例如,该待测试接口可以是登录接口,则该待测试接口的返回信息可以包括登录名,账号权限、cookie(指某些网站为了辨别用户身份、进行跟踪而储存在用户本地终端上的数据(通常经过加密))和令牌(token)等。可选地,计算机设备可以通过正则表达式提取器从该待测试接口的返回信息中获取token,并将获取到的token存放至测试工具(比如上述基于java的压力测试工具jmeter)中,以便后续加解密过程中调用。可选的,本申请实施例中涉及的待测试接口可以是相关页面调用的接口,例如登录接口,转化率接口,权限配置接口等等,且该待测试接口可以是具备加解密功能的接口,其涉及的加解密算法可以是AES加解密算法,等等,本申请实施例对此不作具体限定。
需要说明的是,由于token是动态变化的,也即token具备有效期,对于现有技术中的接口测试方法,在原token失效后往往需要重新获取新的token,再将新的token替换到jmeter文件脚本中进行测试,极大程度上增加了测试的复杂度以及测试的时效性。然而,如上所述,本申请实施例可以通过将动态变化的token存放在测试工具中,使得后续加解密过程中可以直接对其进行调用,降低测试流程的复杂度,减少测试人员的工作量,提高测试效率。
步骤S202:根据所述令牌和所述待测试接口的接口入参,生成入参信息。
具体地,计算机设备根据获取到的令牌和该待测试接口的接口入参,生成入参信息。
可选地,计算机设备可以直接调用存放在测试工具中的动态变化的令牌,并将该令牌与待测试接口的接口入参进行拼接,从而得到完整的入参信息。可选地,在一些可能的实现方式中,计算机设备还可将令牌的部分(例如该令牌的后16位,等等)与该待测试接口的接口入参进行拼接,从而得到完整的入参信息,等等。例如,该待测试接口可以是登录接口,则该待测试接口的接口入参可以是用户名和密码,等等。
例如,如下所示是一种将接口入参和令牌进行拼接,从而得到完整的入参信息的示例:
aes_tokenUM=umid+'_'+aes_token,
"{\"date\":\"2020-06-19\",\"organizeId\":\"0\",\"productType\":\"unmortgage_credit_ps\",\"duration\":\"7\",\"deviceType\":\"PC\",\"authorization\":\""+aes_tokenUM+"\"}";
其中,UMID(User Management ID,用户管理标识号)即为文中所述的接口入参,aes_token即为文中所述的进行拼接的令牌。
步骤S203:调用存储在所述测试工具中的高级加密算法AES加解密包和所述令牌,对所述入参信息进行加密。
具体地,在得到完整的入参信息后,计算机设备可以通过与预先编写的脚本调用存储在测试工具中的AES加解密包以及存储在测试工具中的令牌,对该入参信息进行加密,得到加密后的入参信息。
可选的,在针对AES加密的接口进行测试时,计算机设备可以事先将加解密过程中所需的AES加解密包(例如AES_RSA_SignUtils.jar)放置在jmeter的lib目录(根目录的程序共享库目录)下。可选地,计算机设备还可以将其他所需的包(例如为将json处理成string的包,等等)一同放置在jmeter的lib目录下,以便后续可以直接调用。
可选地,计算机设备在获取到该待测试接口对应的令牌后,可以截取该令牌的部分或者全部,后续可以使用该令牌的部分或者全部作为加密密钥,并通过该AES加解密包对该入参信息进行加密,从而得到加密后的入参信息。例如,可以截取该令牌的后16位,然后用该令牌的后16位作为加密密钥对该入参信息进行加密。又例如,在一些可能的实现方式中,还可以截取该令牌的后8位、后12位或者前16位等等,使用其作为加密密钥并通过该AES加解密包对该入参信息进行加密,从而得到加密后的入参信息,等等,本申请实施例对此不作具体限定。
步骤S204:将加密后的所述入参信息输入至所述待测试接口,接收所述待测试接口反馈的加密后的返回结果。
具体地,计算机设备将加密后的入参信息输入至待测试接口,接收该待测试接口反馈的加密后的返回结果。可以理解的是,由于本申请涉及的待测试接口为具备加解密服务的接口,因此该待测试接口可以基于输入的加密后的入参信息,对该加密后的入参信息进行解密,并根据该入参信息反馈加密后的返回结果。
步骤S205:调用所述AES加解密包,对所述加密后的返回结果进行解密,得到明文的返回结果,并基于所述返回结果确定所述待测试接口的测试结果。
具体地,如上所述,计算机设备可以通过预先编写的脚本调用存储在测试工具中的AES加解密包,并使用上述截取到的该令牌的部分或者全部(例如该令牌的后16位)作为解密密钥对该加密后的返回结果进行解密,从而得到明文的返回结果。然后,计算机设备可以基于该返回结果确定该待测试接口的测试结果。
可选地,计算机设备可以根据输入该待测试接口的入参信息所对应的期望结果以及上述测试过程中实际的返回结果,确定该待测试接口的测试结果。例如,可以将预期结果与测试中得到的返回结果进行对比,若返回结果与预期结果相同,则可以确定该待测试接口反馈的返回结果正确,该待测试接口的测试结果为测试通过,其功能满足要求;若返回结果与预期结果不同,则可以确定该待测试接口反馈的返回结果不正确,该待测试接口的测试结果为测试不通过,其功能存在缺陷,需要工作人员对该待测试接口进行修正,以使得该待测试接口能够根据入参信息正确反馈期望结果。
例如,还是以登录接口为例,一般情况下,若输入至该待测试接口的入参信息为正确的用户名和密码,则其结果应该为登录成功,也即接口反馈的期望结果(也即正确的返回结果)应该为“登录成功”,若此时测试得到的返回结果为“登录失败”或者“用户名不存在”等其他与期望结果不同的结果,则可以确定该待测试接口的返回结果错误;否则,若此时测试得到的返回结果为“登录成功”,则可以确定该待测试接口的返回结果正确。又例如,若输入至该待测试接口的入参信息为错误的用户名和密码,则其结果应该为登录失败,也即接口反馈的期望结果(也即正确的返回结果)应该为“登录失败”,若此时测试得到的返回结果为“登录成功”等其他与期望结果不同的结果,则可以确定该待测试接口的返回结果错误;否则,若此时测试得到的返回结果为“登录失败”,则可以确定该待测试接口的返回结果正确。
请参阅图3,图3是本申请实施例提供的另一种加密接口的测试方法的流程示意图。可应用于上述图1中的系统,下面将结合图3从计算机设备101的单侧进行描述。该方法可以包括以下步骤S301-步骤S306。
步骤S301:设置线程数。
具体地,为了验证接口性能,可以对待测试接口进行压力测试,具体可以根据测试需求或者性能指标首先对该待测试接口设置相应的线程数,也即设置该待测试接口的用户并发数量,从而模拟同一时间多个用户对同一待测试接口进行调用,从而达到性能压力测试的目的。压力测试过程中可以通过不断改变线程数,观察该待测试接口的性能变化,找到该待测试接口的性能拐点。需要说明的是,性能拐点指的是性能压测过程中,多少并发用户数可以得到最好的每秒执行事务数(Transactions Per Second,TPS),等等,此处不再进行赘述。
可选地,本申请实施例可以首先设置单个线程数,以完成对待测试接口的加解密测试,然后可以在该对待测试接口进行了加解密测试后,也即验证了该待测试接口能够根据输入的入参信息反馈正确的期望结果后,再进一步对其进行压力测试。其中,压力测试过程中涉及的加解密过程可以参考上述图2对应的实施例中的描述,只是压力测试多考虑了用户并发数这一变量。可选地,本申请实施例也可以一开始就根据测试指标设置多个线程数,以对该待测试接口进行压力测试,等等,本申请实施例对此不作具体限定。
步骤S302:登录/动态获取令牌。
具体地,步骤S302可以参考上述图2中步骤S201对应的实施例,此处不再进行赘述。可选地,以待测试接口是登录接口为例,计算机设备可以通过向该登录接口发送登录请求获取该接口的返回信息,然后可以通过正则表达式提取器从该返回信息中获取动态的令牌。
步骤S303:截取令牌后16位。
具体地,步骤S303可以参考上述图2中步骤S203对应的实施例,此处不再进行赘述。
可选地,如图3所示,在BeanShell(一种java源码解释器)预处理程序中,可以对获取到的令牌进行截取,保留其后16位,该令牌的后16为可以作为后续加解密使用的加密密钥和解密密钥。或者,还可以截取该令牌的后8位或者前16位,将其作为后续加解密使用的加密密钥和解密密钥,等等,本申请实施例对此不作具体限定。
步骤S304:将令牌与接口入参进行拼接,得到入参信息。
具体地,步骤S304可以参考上述图2中步骤S202对应的实施例,此处不再进行赘述。
步骤S305:AES加密入参信息,将加密后的入参信息输入接口。
具体地,步骤S305可以参考上述图2中步骤S204对应的实施例,此处不再进行赘述。
步骤S306:AES解密接口反馈的加密后的返回结果。
具体地,步骤S306可以参考上述图2中步骤S205对应的实施例,此处不再进行赘述。
可以理解的是,由于本申请针对的待测试接口为具备加解密服务的接口,且在测试过程中为了模拟真实环境未关闭其加解密服务,则待测试接口直接反馈的返回结果为经待测试接口加密后的返回结果。然而,通常为了验证接口返回结果的正确性,需要根据返回结果做断言。如此,为了判断返回结果正确与否,如图3所示,可以在BeanShell(一种java源码解释器)断言中,调用AES加解密包,并使用前述截取到的令牌的后16位作为解密密钥对该加密的返回结果进行解密,得到明文的返回结果。
步骤S307:判断返回结果是否正确。
具体地,步骤S307可以参考上述图2中步骤S205对应的实施例,此处不再进行赘述。
综上,本申请实施例可以通过在测试工具中引入AES加解密包,使得后续对入参信息和返回结果进行加解密时可以直接调用该AES加解密包,从而实现了模拟接口线上加解密的过程,保证了接口的测试环境与线上真实环境的一致性。如此,对比现有技术中在进行接口测试时往往会关闭接口的加解密服务,导致接口测试脱离实际情况的方案而言,本申请大大提高了测试的有效性,提升了测试结果的可信度。此外,本申请还通过将动态变化的令牌存放至测试工具中,使得后续加解密过程中可以直接调用,大大降低了测试流程的复杂性,减少了测试人员的工作量。
上述详细阐述了本申请实施例的方法,下面提供了与本申请实施例的相关加密接口的测试装置。请参阅图4,图4是本申请实施例提供的一种加密接口的测试装置的结构示意图。加密接口的测试装置40可以包括获取单元401,生成单元402,加密单元403,接收单元404和解密单元405。
获取单元401,用于获取待测试接口对应的令牌,并将所述令牌存储至测试工具中;
生成单元402,用于根据所述令牌和所述待测试接口的接口入参,生成入参信息;
加密单元403,用于调用存储在所述测试工具中的高级加密标准AES加解密包和所述令牌,对所述入参信息进行加密;
接收单元404,用于将加密后的所述入参信息输入至所述待测试接口,接收所述待测试接口反馈的加密后的返回结果;
解密单元405,用于调用所述AES加解密包,对所述加密后的返回结果进行解密,得到明文的返回结果,并基于所述返回结果确定所述待测试接口的测试结果。
在一种可能实现的方式中,所述解密单元405,具体用于:
将所述返回结果与所述入参信息对应的期望结果进行对比,若所述返回结果与所述期望结果相同,则确定所述返回结果正确,所述待测试接口的所述测试结果为测试通过;若所述返回结果与所述期望结果不同,则确定所述返回结果不正确,所述待测试接口的所述测试结果为测试不通过。
在一种可能实现的方式中,所述获取单元401,具体用于:
向所述待测试接口发送请求,获取所述待测试接口的返回信息;
通过正则表达式提取器从所述返回信息中获取所述令牌。
在一种可能实现的方式中,所述加密单元403,具体用于:
截取所述令牌中的部分或者全部;
调用放置在所述测试工具中的所述AES加解密包,使用所述令牌中的部分或者全部作为加密密钥对所述入参信息进行加密。
在一种可能实现的方式中,所述解密单元405,具体用于:
调用所述AES加解密包,使用所述令牌中的部分或者全部作为解密密钥对所述加密后的返回结果进行解密。
在一种可能实现的方式中,所述装置40还包括:
设置单元406,用于通过所述测试工具设置所述待测试接口对应的用户并发数量;所述待测试接口包括登录接口、转化率接口和权限配置接口中的一种或多种。
在一种可能实现的方式中,所述AES加解密包存储在所述测试工具的lib目录下;所述测试工具为jmeter。
需要说明的是,各个操作的实现还可以对应参照图2、图3所示的方法实施例的相应描述,此处不再赘述。
请参阅图5,图5是本申请实施例提供的一种计算机设备的结构示意图,该计算机设备50包括至少一个处理器501,至少一个存储器502、至少一个通信接口503。此外,该设备还可以包括天线等通用部件,在此不再详述。
处理器501可以是通用中央处理器(CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制以上方案程序执行的集成电路。
通信接口503,用于与其他设备或通信网络通信,如以太网,无线接入网(RAN),核心网,无线局域网(Wireless Local Area Networks,WLAN)等。
存储器502可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(ElectricallyErasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。
其中,所述存储器502用于存储执行以上方案的应用程序代码,并由处理器501来控制执行。所述处理器501用于执行所述存储器502中存储的应用程序代码。
存储器502存储的代码可执行以上图2或图3提供的加密接口的测试方法,比如,计算机设备50可以获取待测试接口对应的令牌,并将所述令牌存储至测试工具中;根据所述令牌和所述待测试接口的接口入参,生成入参信息;调用存储在所述测试工具中的高级加密标准AES加解密包和所述令牌,对所述入参信息进行加密;将加密后的所述入参信息输入至所述待测试接口,接收所述待测试接口反馈的加密后的返回结果;调用所述AES加解密包,对所述加密后的返回结果进行解密,得到明文的返回结果,并基于所述返回结果确定所述待测试接口的测试结果。
需要说明的是,本申请实施例中所描述的计算机设备50中各功能单元的功能可参照图2、图3所示的方法实施例的相应描述,此处不再赘述。
在本申请中,所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本申请实施例方案的目的。
另外,在本申请各个实施例中的各功能组件可以集成在一个组件也可以是各个组件单独物理存在,也可以是两个或两个以上组件集成在一个组件中。上述集成的组件既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的组件如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个本申请实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。尽管在此结合各实施例对本申请进行了描述,然而,在实施例所要求保护的本申请过程中,本领域技术人员可理解并实现公开实施例的其他变化。
Claims (10)
1.一种加密接口的测试方法,其特征在于,包括:
获取待测试接口对应的令牌,并将所述令牌存储至测试工具中;
根据所述令牌和所述待测试接口的接口入参,生成入参信息;
调用存储在所述测试工具中的高级加密标准AES加解密包和所述令牌,对所述入参信息进行加密;
将加密后的所述入参信息输入至所述待测试接口,接收所述待测试接口反馈的加密后的返回结果;
调用所述AES加解密包,对所述加密后的返回结果进行解密,得到明文的返回结果,并基于所述返回结果确定所述待测试接口的测试结果。
2.根据权利要求1所述的方法,其特征在于,所述基于所述返回结果确定所述待测试接口的测试结果,包括:
将所述返回结果与所述入参信息对应的期望结果进行对比,若所述返回结果与所述期望结果相同,则确定所述返回结果正确,所述待测试接口的所述测试结果为测试通过;若所述返回结果与所述期望结果不同,则确定所述返回结果不正确,所述待测试接口的所述测试结果为测试不通过。
3.根据权利要求1所述的方法,其特征在于,所述获取待测试接口对应的令牌,包括:
向所述待测试接口发送请求,获取所述待测试接口的返回信息;
通过正则表达式提取器从所述返回信息中获取所述令牌。
4.根据权利要求1所述的方法,其特征在于,所述调用存储在所述测试工具中的高级加密标准AES加解密包和所述令牌,对所述入参信息进行加密,包括:
截取所述令牌中的部分或者全部;
调用放置在所述测试工具中的所述AES加解密包,使用所述令牌中的部分或者全部作为加密密钥对所述入参信息进行加密。
5.根据权利要求4所述的方法,其特征在于,所述调用所述AES加解密包,对所述加密后的返回结果进行解密,包括:
调用所述AES加解密包,使用所述令牌中的部分或者全部作为解密密钥对所述加密后的返回结果进行解密。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过所述测试工具设置所述待测试接口对应的用户并发数量;所述待测试接口包括登录接口、转化率接口和权限配置接口中的一种或多种。
7.根据权利要求1所述的方法,其特征在于,所述AES加解密包存储在所述测试工具的lib目录下;所述测试工具为jmeter。
8.一种加密接口的测试装置,其特征在于,包括:
获取单元,用于获取待测试接口对应的令牌,并将所述令牌存储至测试工具中;
生成单元,用于根据所述令牌和所述待测试接口的接口入参,生成入参信息;
加密单元,用于调用存储在所述测试工具中的高级加密标准AES加解密包和所述令牌,对所述入参信息进行加密;
接收单元,用于将加密后的所述入参信息输入至所述待测试接口,接收所述待测试接口反馈的加密后的返回结果;
解密单元,用于调用所述AES加解密包,对所述加密后的返回结果进行解密,得到明文的返回结果,并基于所述返回结果确定所述待测试接口的测试结果。
9.一种计算机设备,其特征在于,所述计算机设备包括处理组件、存储组件和通信模组件,处理组件、存储组件和通信组件相互连接,其中,存储组件用于存储计算机程序,通信组件用于与外部设备进行信息交互;处理组件被配置用于调用计算机程序,执行如权利要求1-7任意一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现权利要求1-7任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011550889.2A CN112685293A (zh) | 2020-12-24 | 2020-12-24 | 一种加密接口的测试方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011550889.2A CN112685293A (zh) | 2020-12-24 | 2020-12-24 | 一种加密接口的测试方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112685293A true CN112685293A (zh) | 2021-04-20 |
Family
ID=75452556
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011550889.2A Pending CN112685293A (zh) | 2020-12-24 | 2020-12-24 | 一种加密接口的测试方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112685293A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117313131A (zh) * | 2023-10-13 | 2023-12-29 | 天翼数字生活科技有限公司 | 基于多态化可配置的接口加密方法、系统、装置及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105049280A (zh) * | 2015-06-24 | 2015-11-11 | 上海斐讯数据通信技术有限公司 | 业务管理平台的接口行为模拟测试系统和方法 |
CN109376021A (zh) * | 2018-09-26 | 2019-02-22 | 深圳壹账通智能科技有限公司 | 接口调用的响应方法及服务器 |
-
2020
- 2020-12-24 CN CN202011550889.2A patent/CN112685293A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105049280A (zh) * | 2015-06-24 | 2015-11-11 | 上海斐讯数据通信技术有限公司 | 业务管理平台的接口行为模拟测试系统和方法 |
CN109376021A (zh) * | 2018-09-26 | 2019-02-22 | 深圳壹账通智能科技有限公司 | 接口调用的响应方法及服务器 |
Non-Patent Citations (1)
Title |
---|
搬个小板凳儿: "jmeter加密接口测试(实例详细)", pages 1 - 9, Retrieved from the Internet <URL:https://blog.csdn.net/qq_45731111/article/details/103739835> * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117313131A (zh) * | 2023-10-13 | 2023-12-29 | 天翼数字生活科技有限公司 | 基于多态化可配置的接口加密方法、系统、装置及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110493202B (zh) | 登录令牌的生成及验证方法、装置和服务器 | |
CN106330850B (zh) | 一种基于生物特征的安全校验方法及客户端、服务器 | |
CN112425114B (zh) | 受公钥-私钥对保护的密码管理器 | |
CN108347361B (zh) | 应用程序测试方法、装置、计算机设备和存储介质 | |
CN111708991A (zh) | 服务的授权方法、装置、计算机设备和存储介质 | |
KR20160138063A (ko) | 머신 생성 인증 토큰으로써 서비스를 동작시키는 기법 | |
CN108322416B (zh) | 一种安全认证实现方法、装置及系统 | |
CN111062023B (zh) | 多应用系统实现单点登录的方法及装置 | |
CN112491776B (zh) | 安全认证方法及相关设备 | |
CN107493291A (zh) | 一种基于安全元件se的身份认证方法和装置 | |
JP2017507552A (ja) | クライアント側のスコアベース認証を与える方法及び装置 | |
WO2021137769A1 (en) | Method and apparatus for sending and verifying request, and device thereof | |
CN114257430A (zh) | 一种单点登录系统 | |
US10657234B2 (en) | Method, computer program, and system to realize and guard over a secure input routine based on their behavior | |
CN114363088B (zh) | 用于请求数据的方法和装置 | |
US12107956B2 (en) | Information processing device, information processing method, and non-transitory computer readable storage medium | |
CN109495458A (zh) | 一种数据传输的方法、系统及相关组件 | |
CN112308236A (zh) | 用于处理用户请求的方法、装置、电子设备及存储介质 | |
CN113630412B (zh) | 资源下载方法、资源下载装置、电子设备以及存储介质 | |
CN113038463B (zh) | 一种通讯加密认证实验装置 | |
CN113872989A (zh) | 基于ssl协议的认证方法、装置、计算机设备和存储介质 | |
CN117336092A (zh) | 一种客户端登录方法、装置、电子设备和存储介质 | |
CN112685293A (zh) | 一种加密接口的测试方法及相关设备 | |
CN109889342B (zh) | 接口测试鉴权方法、装置、电子设备及存储介质 | |
CN113992353A (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 |