暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

jmeter对入参进行MD5加密的5种方式

全栈测试笔记 2019-11-24
1371

作者 l 全栈测试笔记

在使用jmeter做测试的过程中,经常需要对请求的入参进行加密,下面列举几种常用的方法,以登录请求密码需要MD5加密为例。

虽然可以先把参数化的明文密码都先md5加密,而不是在登录前先执行加密,但是实际情况是,登录后的请求也可能有需要加密的入参,且入参是动态获取的,所以最好是在脚本运行过程中加密,而不是提前加密好进行参数化。

如果用户的密码都不一样,就需要先对明文密码进行参数化。下面只演示单个用户请求。

一、jmeter自带函数

在函数助手中找到__MD5这个函数,第一个参数是要md5加密的值,第二个参数是保存加密后值的变量
请求
发送请求,可以看到密码加密了

二、beanshell自定义脚本

细心的朋友会发现,不是每个jmeter版本都有${__MD5(,)}这个函数,在jmeter的lib目录下,自带commons-codec-1.11.jar,如果没有,可以到maven库下一个,下载地址:

https://mvnrepository.com/

然后放到jmeter的lib目录下,所以,可以借助apache工具类DigestUtils实现。

beanshell脚本

解释:

    第一行:导包

    第二行:加密

    第三行:将加密后的值放到变量中


引用变量
发送请求,可以看到密码加密了
也可以用beanshell前置处理器,结果是一样的

三、引用外部java文件

这里我们还是用上一种方法用到的jar包。

pom中添加依赖


编写java代码  

beanshell引入java文件、调用加密方法、把加密后的值放到变量中,注意:路径最好参数化,不要写死
引用变量
发送请求,可以看到密码加密了

四、引用外部class文件

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

beanshell中引入类文件
注意:类文件路径不能包含包名对应的目录路径,否则会报错。添加com的父级目录路径即可。注意:路径最好参数化,不要写死
也可以这样写
引用变量
发送请求,可以看到密码加密了

五、引用外部jar文件

如果在beanshell中写复杂的逻辑代码,出错了,定位很不方便,所以,如果代码逻辑复杂,建议在idea或者eclipse中写好,然后mvn package打包,生成的target目录下,会有一个jar包,把生成的jar包复制到lib下ext中引入jar包,重启jmeter。

这样我们只需要在beanshell中写很少的脚本,这也是5种方式中我极力推荐使用的方式。

继续沿用之前创建的maven项目(我们可以在idea中写比较复杂的代码,这里只是演示,所以只是很简单的代码)

类名+静态方法

实例+静态方法
引用变量
发送请求,可以看到密码加密了 
也可以用beanshell前置处理器 


至此,五种方法都介绍完了,一定要亲自实践哦,这样才会有收获。


声明:封面或正文部分图片来源于网络,如有侵权,请联系删除。

END

抛砖引玉,欢迎交流;

水平有限,难免有错,欢迎斧正。

欢迎长按下图联系作者

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

推荐阅读

点击阅读☞如何面试性能测试

点击阅读☞面试题(造火箭必备技能):请举例一个最有成就感的性能bug

点击阅读☞jmeter5.1分布式压

点击阅读☞性能测试案例:redis获取不到连接池,Timeout waiting for idle object

点击阅读☞性能测试案例:tps波动频繁

点击阅读☞性能测试案例:一个频繁fgc问题

点击阅读☞性能测试案例:获取不到redis连接池

点击阅读☞性能测试案例:数据库cpu高导致响应时间长



如有帮助,请帮忙转发或点个在看~

文章转载自全栈测试笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论