
作者 l 全栈测试笔记
在使用jmeter做测试的过程中,经常需要对请求的入参进行加密,下面列举几种常用的方法,以登录请求密码需要MD5加密为例。
虽然可以先把参数化的明文密码都先md5加密,而不是在登录前先执行加密,但是实际情况是,登录后的请求也可能有需要加密的入参,且入参是动态获取的,所以最好是在脚本运行过程中加密,而不是提前加密好进行参数化。
如果用户的密码都不一样,就需要先对明文密码进行参数化。下面只演示单个用户请求。
一、jmeter自带函数



二、beanshell自定义脚本
细心的朋友会发现,不是每个jmeter版本都有${__MD5(,)}这个函数,在jmeter的lib目录下,自带commons-codec-1.11.jar,如果没有,可以到maven库下一个,下载地址:
https://mvnrepository.com/
然后放到jmeter的lib目录下,所以,可以借助apache工具类DigestUtils实现。

解释:
第一行:导包
第二行:加密
第三行:将加密后的值放到变量中




三、引用外部java文件
这里我们还是用上一种方法用到的jar包。
pom中添加依赖





四、引用外部class文件
引用class文件的方式,和引用java文件类似,沿用上一方法创建的maven工程,项目运行后,在左侧会生成target目录,在这个目录下,可以看到我们的包名及生成的class文件,我们需要引用这个文件





五、引用外部jar文件
如果在beanshell中写复杂的逻辑代码,出错了,定位很不方便,所以,如果代码逻辑复杂,建议在idea或者eclipse中写好,然后mvn package打包,生成的target目录下,会有一个jar包,把生成的jar包复制到lib下ext中引入jar包,重启jmeter。
这样我们只需要在beanshell中写很少的脚本,这也是5种方式中我极力推荐使用的方式。

类名+静态方法





至此,五种方法都介绍完了,一定要亲自实践哦,这样才会有收获。
声明:封面或正文部分图片来源于网络,如有侵权,请联系删除。
END
抛砖引玉,欢迎交流;
水平有限,难免有错,欢迎斧正。
欢迎长按下图联系作者


欢迎长按下图关注全栈测试笔记

点击阅读☞如何面试性能测试
点击阅读☞面试题(造火箭必备技能):请举例一个最有成就感的性能bug
点击阅读☞jmeter5.1分布式压
点击阅读☞性能测试案例:redis获取不到连接池,Timeout waiting for idle object
点击阅读☞性能测试案例:tps波动频繁
点击阅读☞性能测试案例:一个频繁fgc问题
点击阅读☞性能测试案例:获取不到redis连接池
如有帮助,请帮忙转发或点个“在看”~




