Jmeter之Bean shell使用(一)

一、什么是Bean Shell

  • BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法;
  • BeanShell是一种松散类型的脚本语言(这点和JS类似);
  • BeanShell是用Java写成的,一个小型的、免费的、可以下载的、嵌入式的Java源代码解释器,具有对象脚本语言特性,非常精简的解释器jar文件大小为175k。
  • BeanShell执行标准Java语句和表达式,另外包括一些脚本命令和语法。

官网:http://www.BeanShell.org/

二、Jmeter有哪些Bean Shell

  • 定时器:  BeanShell Timer

  • 前置处理器:BeanShell PreProcessor

  • 采样器:  BeanShell Sampler

  • 后置处理器:BeanShell PostProcessor

  • 断言:   BeanShell断言

  • 监听器:  BeanShell Listener

三、BeanShell的用法

 在此介绍下BeanShell PreProcessor的用法,其它的beahshell可以类推。在此我们使用beahshell调用自己写的工具类,工具类实现了密码的加、解密功能:

1.在eclipse写好代码,然后把该类打成jar包(在类上点击右键->Export->jar file)或者下载commons-codec-1.11.jar

2.把jar包放到jmeter目录apache-jmeter-2.13libext下

3.在测试计划中,添加此jar包

4.打开jmeter,新增一个BeanShell Sampler,再添加一个http sampler(调用登录接口)

5.在BeanShell Sampler中导入我们的jar包,调用里面的加、解密码方法,把结果保存在jmeter变量中,下面两个方法是beanshell中我们最常用到的:

  • vars.put(String key,String value):,将数据存到jmeter变量中
  • vars.get(String paramStr):获得变量值

//导入jar包
import org.apache.commons.codec.digest.DigestUtils;

//定义需要加密的参数并将其进行拼接
String parm="123456153452415";
//调用MD5hex方法生成最终的加密串
String mxd=DigestUtils.md5Hex(parm);
//将生成的加密串赋值给变量mxd,这样可以便于后续的使用
vars.put("mxd",mxd);

6.把加密后的密码存到jmeter变量中,然后在http sampler中就可以通过${mxd}进行使用了:

 

7.执行脚本

http请求

Debug Sampler响应数据

原文地址:https://www.cnblogs.com/sunny-sl/p/7717027.html