jmeter(图片进行base64加密发送)

操作系统:Windows

jmeter版本:5.1.1

说明:这个项目需要对图片进行base64加密发送请求

1、自己使用eclipse编写一个base64的加密代码(可以找开发或百度),导出为 jar 包,本人只是加密图片,代码如下:

package com.mytest.functions;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import sun.misc.BASE64Encoder;

public class Base64Test {
    // 图片转化成base64字符串
    public static String GetImageStr(String file) {
        // 将图片文件转化为字节数组字符串,并对其进行Base64编码处理
        String imgFile = file; // 待处理的图片
        InputStream in = null;
        byte[] data = null;
        // 读取图片字节数组
        try {
            in = new FileInputStream(imgFile);
            data = new byte[in.available()];
            in.read(data);
            in.close();
        }
        catch (IOException e){
            e.printStackTrace();
        }
        // 对字节数组Base64编码
        BASE64Encoder encoder = new BASE64Encoder();
        return encoder.encode(data);// 返回Base64编码过的字节数组字符串
    }
    
    public String GetData(String file) {
        // windows平台需要转换‘’该转义符
        String filedata = file.replaceAll("%2F%2F", "%2F"); 
        // 因编码出来不是在一行上,所以需要处理掉换行符
        String data = GetImageStr(filedata).replaceAll("
|
", "");
        return data;
        
    }
}

2、在jmeter的lib目录新建一个文件夹myjar,把导出的jar包放进去,然后进入bin目录里,找到jmeter.properties文件,用文本编辑器打开。

添加以下路径,点击保存

3、启动jmeter

4、添加一个线程组,在后置处理器里,添加BeanShell后置处理程序,编写以下代码:

import com.mytest.functions.*;  // 导入的包名

Base64Test da = new Base64Test();  // 新建一个对象

String data = da.GetData("${filepath}");  // fiepath是图片路径,使用csv数据文件导入

vars.put("base64image", data); // base64image 是被引用的参数

注意:

  使用CSV 数据文件设置读取图片数据,读取路径格式为:(因Windows平台问题)

5、添加一个http请求,引用加密参数

5、添加一个--查看结果树,点击运行,查看结果树,即可在请求中加密成功。

6、搞定。

 

原文地址:https://www.cnblogs.com/zhaoquanmo/p/11238891.html