Jmeter 接口测试之MD5加密函数(函数助手篇)

转自:https://blog.csdn.net/hhyangel372/article/details/81571058

本文给大家介绍一下如何使用Jmeter自带的函数对常量和变量进行简单的加密处理,废话少说,里面开讲。

使用Jmeter的前提条件:
1.对应Jmeter版本的最新JDK下载,地址http://www.oracle.com/technetwork/java/javase/downloads/index.html
2.下载jdk后,解压安装。(注意记住安装路径)
3.配置环境变量,这里就不多说了,请速看百度教程 https://jingyan.baidu.com/article/6dad5075d1dc40a123e36ea3.html
nice~你可以开始虐待Jmeter了
下载Jmeter 4.0版本
下载地址:http://jmeter.apache.org/download_jmeter.cgi

解压下载的jmeter压缩文件,打开文件夹,进入bin目录,找到jmeter.bat文件,双击打开(有时候需要右键以管理员身份运行)

 

刚刚安装完,你是不是奇怪怎么是英文版的?没关系,下面教你永久汉化。
首先,在Jmeter的安装目录下的bin目录中找到 jmeter.properties这个文件,用文本编辑器打开。
然后在#language=en的下一行增加一段:
language=zh_CN

 

另外,新版本默认是黑色界面,需要改外观颜色的可以在选项中任意切换

 

函数助手(函数生成器)
在jmeter界面点击 选项-》函数助手对话框,在弹框上选择MD5 ,可以生成一个函数模板。(常量加密)如图:

 

开始脚本编写
1.新建一个线程组,然后在线程组添加一个前置处理器BeanShell PreProcessor

输入如下代码,例如:

String sendTime = "${__time(yyyyMMddHHmmssSSS,)}"; //生成时间戳

String random = "${__Random(1,1000,Snum)}"; //生成一个随机数

String str = sendTime+";" + random + ";" + "key=123abc"; //拼接需要加密的字符串

vars.put("sendTime",sendTime.toString()); //把生成的时间戳提供给beanshell外部组件引用

vars.put("random",random); //把生成的随机数提供给beanshell外部组件引用

vars.put("test",str); //把拼接的需要加密的字符串提供给beanshell外部组件引用
1
2
3
4
5
6
7
8
9
10
11


2.添加一个Debug Sampler,目的为了在beanshell外部完成MD5加密,目前暂没办法在beanshell里面使用MD5函数完成对变量的加密。(其中code为加密后提供引用的变量名)


3.再次添加一个前置处理器BeanShell PreProcessor ,并在里面输入代码:

String getCode = vars.get("code"); //从beanshell外部的Debug Sampler控件获取变量

vars.put("mycode",getCode.toUpperCase()); //把加密后的MD5值转换成32位大写
1
2
3
4
如图:

 

3.在线程组添加一个HTTP请求,增加beanshell所有处理的变量作为请求参数。(以百度get请求为例)

 

4.添加一个监听器,运行脚本,然后查看请求的传参。


好了,介绍完了。这是一种最笨的办法,大神请笑着飘过。除了这种方法之外,另外还可以使用引用外部加密方法或者运用Jmeter自带的DigestUtils等更快捷的方法来实现MD5加密。
---------------------
作者:hhyangel372
来源:CSDN
原文:https://blog.csdn.net/hhyangel372/article/details/81571058
版权声明:本文为博主原创文章,转载请附上博文链接!

posted @ 2019-05-05 18:09  先定一个小目标  阅读(1583)  评论(0编辑  收藏  举报