我对JMeter问题很新。
在测试脚本中,我有一个BeanShell PreProcessor元素,用于更新以前在“用户定义的变量”元素中定义的一些变量。
后者这些变量用于“Http请求”。但是,http请求中使用的值是默认值。
由于某些调试print();
,脚本似乎正在运行我的问题是,是否有必要延迟脚本以确保BeanShell完成?
非常感谢您的关注
答案 0 :(得分:2)
没有必要对Beanshell预处理器进行任何延迟,因为它在之前执行处理。我建议检查 jmeter.log 文件以查看是否存在任何脚本问题,因为Beanshell预处理器不会在任何地方报告错误,包括查看结果树监听器。
使用Beanshell脚本至少有两种方法可以确保一切正常:
示例测试用例:
给出以下测试计划结构:
如果在beanshell函数之后提供参数“q”:
${__BeanShell(System.currentTimeMillis())}
并查看“查看结果树”“请求”选项卡,您应该看到如下内容:
GET http://www.google.com/?q=1385206045832
如果您将功能更改为不正确的内容,例如:
${__BeanShell(Something.incorrect())}
你会看到一个空白的请求。
更改现有变量(或创建新的if变量不存在)的正确方法如下所示
vars.put("variablename", "variablevalue");
* 重要:* JMeter变量是Java字符串,如果您尝试将其他内容(日期,整数等)设置为JMeter变量,则需要以某种方式将其强制转换为字符串。
示例:
int i = 5;
vars.put("int_i", String.valueOf(i));
希望这有帮助。
答案 1 :(得分:0)
您可以更新“用户定义变量”的值。
@theINtoy做对了。
http://www.blazemeter.com/blog/queen-jmeters-built-componentshow-use-beanshell
答案 2 :(得分:-2)
我也是jmeter的新手,但我知道“用户定义变量”中定义的变量是常量,所以你不能改变它们。我建议在预处理器或CSV数据集配置中使用“用户参数”。