使用Jmeter实现参数的MD5加密

在我们使用Jmeter进行测试,尤其是接口测试,有时需要对参数进行MD5加密后再进行操作,比如登录的时候如果输入正确的明文密码,而不对密码进行MD5加密处理,执行Jmeter时,会有如下报错:
在这里插入图片描述
上次介绍了使用Jmeter的函数助手实现参数的MD5加密,详见:https://blog.csdn.net/qq_28863851/article/details/84776952
本次介绍另外一种方法利用Jmeter实现参数的MD5加密。

原料

Jmeter,MD5算法,eclipse

准备工作

Jmeter没有内置的MD5加密方法,我从网上找了一份,实现了加密功能,具体操作如下:

  1. 从网上找一份MD5加密算法,在eclipse中新建Java Project(项目名称自己起)-新建Package(包名自己起)-新建Class(类名自己起),建好后,将下面的MD5算法复制到.java文件下,注意根据自己起的项目名、包名和类名修改相应代码。
package hfjy.test.jmeter;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class Tools {
     public static String getMd5(String plainText) {  
            try {  
                MessageDigest md = MessageDigest.getInstance("MD5");  
                md.update(plainText.getBytes());  
                byte b[] = md.digest();  

                int i;  

                StringBuffer buf = new StringBuffer("");  
                for (int offset = 0; offset < b.length; offset++) {  
                    i = b[offset];  
                    if (i < 0)  
                        i += 256;  
                    if (i < 16)  
                        buf.append("0");  
                    buf.append(Integer.toHexString(i));  
                }  
                //32位加密  
                return buf.toString();  
                // 16位的加密  
                //return buf.toString().substring(8, 24);  
            } catch (NoSuchAlgorithmException e) {  
                e.printStackTrace();  
                return null;  
            }  

        }   
}

下图为我的eclipse截图:
在这里插入图片描述
2. 导出jar包
点击file->Export,出现如下弹窗,选择Java文件夹下的JAR file,点击Next
在这里插入图片描述
选择要导出的项目,点击Browser选择要保存的位置,并取名**.jar,点击保存,点击Finish
在这里插入图片描述
在这里插入图片描述
3. 将导出的jar放到Jmeter安装目录下的lib文件夹下,如图所示:
在这里插入图片描述
4. 在Jmeter中新建测试计划,添加线程组登录,添加取样器-HTTP请求,取名login,填写相应信息,参数用参数化形式填写
在这里插入图片描述
5. 给线程组添加前置处理器-用户参数,如图,将参数的正确明文填入对应参数中
在这里插入图片描述
在这里插入图片描述
6. 给线程组添加前置处理器-BeanShell PreProcessor,在BeanShell PreProcessor中写入以下测试内容:

import hfjy.test.jmeter.Tools;

String pwd = Tools.getMd5(vars.get("password"));
vars.put("password",pwd);

  1. 此时再执行Jmeter,就可以正常登录成功了
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_28863851/article/details/84791944