欢迎, 游客
用户名 密码: 记住我
Jmeter 性能测试工具专版
  • 页:
  • 1

主题: JMeter BeanShell Pre-Processor 设置变量

JMeter BeanShell Pre-Processor 设置变量 2014-10-21 01:28 #1

  • summer
  • 离线
  • 板块老大
  • 帖子: 54
  • 声望: 0
原文出处:blog.chenlb.com/2010/09/jmeter-beanshell...essor-variables.html

jmeter 测试时想对 csv 或其它数据源做些修改可以 beanshell 前置处理器。比如想对字串进行一些过虑,像搜索哪样过虑特殊字符:+ - && || ! ( ) { } [ ] ^ " ~ * ? : \

首先要加个 BeanShell PreProcessor


在 Script 输入内容,如:

int randomStart(int rows) {  
java.util.Random r=new java.util.Random();
int rt = r.nextInt(10);
return rt*rows;
}
int rows = 20;
int st = randomStart(rows);
 
String t = vars.get("title");
String title = t.replaceAll("[\\[\\]\\-:\\?\\*\\+\\&\\|\\!\\(\\{\\)\\}\\~\\^]", " ");
 
vars.put("title", title);
vars.put("start", String.valueOf(st));
vars.put("rows", String.valueOf(rows));

其中 vars 是 map 对象是 jmeter bean shell 内置的。put 到 vars 里就可以用 ${var_name} 引用它的内容了。但需要注意的是 vars 的值是字符串的,就像上面的的还要加个 String.valueOf(rows)。

beanshell 就可以在 jmeter 里调试,用 System.out 可以输出调试。在 jmeter.bat 控制台看得到。

但是后来发现用了 beanshell jmeter 卡死了,内存使用很多,估计是 beanshell 不会被 gc。不得不把 bean shell 删除了。

把 beanshell 写的逻辑生成的数据直接写到 csv 里,然后按普通 csv 方式读就可以了。看来 beanshell 还是一个“鸡肋”。
没有无缘无故的爱,没有无缘无故的恨
  • 页:
  • 1