JMeter BeanShell Pre-Processor 设置变量



版权信息: 可以任意转载, 转载时请务必以超链接形式标明文章原文出处, 即下面的声明.

原文出处:http://blog.chenlb.com/2010/09/jmeter-beanshell-pre-processor-variables.html

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

加个 BeanShell PreProcessor,如图:

BeanShell PreProcessor

BeanShell PreProcessor

在 Script 输入内容,如:

  1. int randomStart(int rows) {  
  2.    java.util.Random r=new java.util.Random();  
  3.    int rt = r.nextInt(10);  
  4.    return rt*rows;  
  5. }  
  6. int rows = 20;  
  7. int st = randomStart(rows);  
  8.   
  9. String t = vars.get("title");  
  10. String title = t.replaceAll("[\\[\\]\\-:\\?\\*\\+\\&\\|\\!\\(\\{\\)\\}\\~\\^]"" ");  
  11.   
  12. vars.put("title", title);  
  13. vars.put("start", String.valueOf(st));  
  14. 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 还是一个“鸡肋”。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值