方法一:

使用Beanshell Sampler、BSF Sampler等实现,现已Base64加密为例,脚本如下:

import sun.misc.BASE64Decoder;

String res = new sun.misc.BASE64Encoder().encode("${session}".getBytes());
vars.put("BASE64",res);
${session}:要加密的字符串参数

BASE64:加密后的字符串保存在${BASE64}参数中

方法二:

将Base64做成Jmeter的可以直接调用的函数,这需要用到Jmeter插件开发,为了简化开发,将Base64添加到已开发的JMeterPlugins.jar中

步骤:
1、使用rar工具解压JMeterPlugins.jar
2、在相应目录Jmeter\functions下新建java文件Base64.java
3、在classpath中添加Base64.java引用的jar包

;%JAVA_HOME%/lib/ApacheJMeter_core.jar;%JAVA_HOME%/lib/ApacheJMeter_java.jar;%JAVA_HOME%/lib/sun.misc.BASE64Decoder.jar

4、使用javac编译java文件,生成Base64.class文件
javac  Base64.java
5、命令行使用jar打包
jar JMeterPlugins.jar kg
将kg包含的内容打包,包名JMeterPlugins.jar
6、将JmeterPlugins.jar复制到jmeter\lib\ext文件夹下,打开jmeter,函数助手中可以看到新增的_Base64函数

${__Base64(${session},)}即为${session}的Base64加密字符串

Base64.java文件代码如下:

package kg.apc.jmeter.functions;

import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import org.apache.jmeter.engine.util.CompoundVariable;
import org.apache.jmeter.functions.AbstractFunction;
import org.apache.jmeter.functions.InvalidVariableException;
import org.apache.jmeter.samplers.SampleResult;
import org.apache.jmeter.samplers.Sampler;
import org.apache.jmeter.threads.JMeterVariables;
import sun.misc.BASE64Encoder;

public class Base64 extends AbstractFunction
{
  private static final List<String> desc = new LinkedList();
  private static final String KEY = "__Base64";
  private Object[] values;

  public synchronized String execute(SampleResult paramSampleResult, Sampler paramSampler)
    throws InvalidVariableException
  {
    JMeterVariables localJMeterVariables = getVariables();
    String str1 = ((CompoundVariable)this.values[0]).execute();

    String str2 = new BASE64Encoder().encode(str1.getBytes());

    if ((localJMeterVariables != null) && (this.values.length > 1)) {
      String str3 = ((CompoundVariable)this.values[1]).execute().trim();
      localJMeterVariables.put(str3, str2);
    }

    return str2;
  }

  public synchronized void setParameters(Collection<CompoundVariable> paramCollection)
    throws InvalidVariableException
  {
    checkMinParameterCount(paramCollection, 1);
    this.values = paramCollection.toArray();
  }

  public String getReferenceKey()
  {
    return "__Base64";
  }

  public List<String> getArgumentDesc()
  {
    return desc;
  }

  static
  {
    desc.add("String to calculate Base64 hash");
    desc.add("Name of variable in which to store the result (optional)");
  }
}

最新文章

  1. Solr_全文检索引擎系统
  2. Nexus4_文件名乱码
  3. asp.net使用MVC4框架基于NPOI做导出数据到Excel表
  4. javascript第十三课:Json
  5. POJ1797 Heavy Transportation 【Dijkstra】
  6. 网站开启gzip的方法
  7. SilkTest天龙八部系列7-动态对象识别
  8. NPinyin 中文转换拼音代码
  9. Android系统--输入系统(五)输入系统框架
  10. 深入理解final和static关键字
  11. Mysql简单笔记
  12. Oracle AP Invoice APIs
  13. MT 【331】两元非齐次不等式
  14. 漏洞预警:Linux内核9年高龄的“脏牛”0day漏洞
  15. 显示“快捷键清单” acessksy
  16. 类属性&quot;get&quot;必须声明主体,因为它未标记为 abstract 或 extern[解决方法]
  17. java (图片转PDF)
  18. 水平方向margin:auto
  19. linq中let关键字学习
  20. Lua和C++交互 学习记录之一:C++嵌入脚本

热门文章

  1. ipython及Python初体验
  2. Java基础知识总结之IO流
  3. Angular JS从入门基础 mvc三层架构 常用指令
  4. 针对Oracle数据库表中的数据的常见操作
  5. jquery $.each 和for 怎么跳出循环
  6. vue 基础--&gt;进阶 教程(1): 基础(数据绑定)
  7. php中的XML转数组
  8. Android混淆
  9. [leetcode-516-Longest Palindromic Subsequence]
  10. [leetcode-496-Next Greater Element I]