接口测试过程中,经常会遇到带Token或签名等的请求。这里所谓的Token或签名,是一串加密后的字符串,作为请求体或请求头或URL中的一个参数放在Request中。
一 采用MD5算法
MD5是一种常见的消息摘要算法,采用加密函数对原始消息进行处理,如果消息在途中改变了,则接收者通过对收到消息的新产生的摘要与原摘要比较,就可知道消息是否被改变了。因此消息摘要保证了消息的完整性。JMeter内置__MD5函数支持MD5算法:
二 采用SHA256算法
SHA256是另一种常见的消息摘要算法,提供比MD5更安全的加密功能,JMeter中,可以通过脚本来使用,具体的操作方法如下:
以上脚本在请求消息中添加了一个包头,名字为headerName,值为一个sha256加密函数处理过的字符串
三 AES算法
AES也是一种常见的加密算法,AES有多种工作模式,其中Java默认的工作模式为AES/ECB/PKCS5Padding:
四 采用其他加密算法
除了以上常见MD5及 SHA256加密算法以外,还有一些加密算法,比如AES, DES, EvpKDF, HMAC-MD5, HMAC-SHA1/3/256/512, MD5, PBKDF2, Rabbit, SHA1/3/224/256/512, TripleDES等,JMeter中需要依赖第三方的库来支持这些算法,这类库中比较有名的有MIT的bouncycastle(简称BC),IBMJCE等, 这里以BC为例:
1、下载BC相关jar包: https://www.bouncycastle.org/latest_releases.html
2、将下载下来的第三方jar包放到CLASSPATH中去,这里提供两种方法:
方法一:放到JMETER_HOME的lib目录中去
方法二:在JMeter测试计划中,直接添加jar文件
3、使用BC提供加密能力:
下面的是我的公众号二维码图片,欢迎关注我:
图注:TesterQ公众号
领取专属 10元无门槛券
私享最新 技术干货