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

主题: 使用Jmeter的BeanShell Sampler生成需要的参数

使用Jmeter的BeanShell Sampler生成需要的参数 2014-10-21 01:19 #1

  • summer
  • 离线
  • 板块老大
  • 帖子: 54
  • 声望: 0
在Jmeter中个,有时候需要使用一些数据,但是通过jmeter自身或者通过关联无法得到,这个时候,可以使用Jmeter的BeanShell Sampler,然后使用BeanShell脚本语言生成需要的数据,举例如下:

------以下代码是生成当前时间1小时之前的时间

import bsh.EvalError;
import bsh.Interpreter;
import java.text.SimpleDateFormat;
import java.util.Date;
public static String dateAdd(String d) {
if (d == null)
return null;
SimpleDateFormat format = new SimpleDateFormat("HHmmss");
Date date = null;
try {
date = format.parse(d);
} catch (Exception ex) {
}
 
 
long time = (date.getTime() / 1000);
time = time - 1 * 3600;// 60 * 60 ;
Date result = new Date();
result.setTime(time * 1000);
 
if (result != null) {
String stime=format.format(result);
System.out.print(stime);
return stime;
 
}
return null;
}
dateAdd("${__time(HHmmss,)}");
没有无缘无故的爱,没有无缘无故的恨

回复: 使用Jmeter的BeanShell Sampler生成需要的参数 2014-10-21 01:19 #2

  • summer
  • 离线
  • 板块老大
  • 帖子: 54
  • 声望: 0
补充:

如import java.text.SimpleDateFormat;
import java.util.Date;
此类import的包,可以根据java得知。

Response Assertion:

pattern to Test:中的表达式在response data中匹配到,return true;反之,return false;


JMeter在它的BeanShell中内置了变量,用户可以通过这些变量与JMeter进行交互,其中主要的变量及其使用方法如下(JMeter文档并没有对该部分内容进行详细讲解,这里也会说明他们分别对应于JavaDoc中的哪个类):

vars:这个变量实际引用了JMeter线程中的局部变量容器(本质上是Map),因此可以通过put和get方法访问JMeter中的变量。这个变量是所有内置变量中最有用的,它是测试用例与BeanShell交互的桥梁。对应于org.apache.jmeter.threads.JMeterVariables
props:该变量引用了JMeter的配置信息,它的使用方法与vars类似,但是只能put进去String类型的值,而不能是一个对象。对应于java.util.Properties。
ctx:该变量引用了当前线程的上下文,理论上通过这个东西我们几乎可以控制当前线程相关的一切,不过这要求使用者非常熟悉JMeter的源码。对应于org.apache.jmeter.threads.JMeterContext。
没有无缘无故的爱,没有无缘无故的恨
  • 页:
  • 1