suncaijun 2007-7-20 13:19
关于jmeter的随机函数不能在全局变量中赋值给变量
为何?
我的目的是要随机取一个值,在本计划的所有线程组中使用,而且要求下次运行取值不可以相同.
所以打算在全局变量中用随机函数,直接就不能运行.你们的jmeter可以运行不?假如不可以,如何能解决我这个需求?
jackei,给你q留言 好像你没上?嘿嘿
[[i] 本帖最后由 suncaijun 于 2007-7-20 13:20 编辑 [/i]]
jackei 2007-7-20 14:54
[quote]原帖由 [i]suncaijun[/i] 于 2007-7-20 13:19 发表 [url=http://bbs.51testing.com/redirect.php?goto=findpost&pid=617900&ptid=83551][img]http://bbs.51testing.com/images/common/back.gif[/img][/url]
为何?
我的目的是要随机取一个值,在本计划的所有线程组中使用,而且要求下次运行取值不可以相同.
所以打算在全局变量中用随机函数,直接就不能运行.你们的jmeter可以运行不?假如不可以,如何能解决我这个需求 ... [/quote]
不好意思,平时工作时间不能上Q,您能不能把遇到的问题再描述的清楚一点呢?
suncaijun 2007-7-20 15:03
1、打开jmeter,单击【测试计划】,右侧有个【用户定义的变量】,在里面我增加变量,【值】直接写一个函数来获取的值赋值给变量,很多函数都可以赋值成功,但是目前试验的是 随机函数random放入【值部分】,在运行测试计划的时候,提示如下:Error occurred compiling the tree,-see log file.
2、我打开日志文件,错误提示如下:2007/07/20 14:56:17 ERROR - jmeter.engine.StandardJMeterEngine: Error occurred compiling the tree: java.lang.NullPointerException
random函数的用法完全正确,在线程组中的用户参数可以赋值或者直接调用
[[i] 本帖最后由 suncaijun 于 2007-7-20 15:05 编辑 [/i]]
suncaijun 2007-7-20 16:32
暂时第一步凑合的解决方案是 把random函数的代码改了.有点影响 不过目前我基本够用了
根本原因只能大概定位 不清楚具体.
suncaijun 2007-7-20 16:59
解决办法:
\src\functions\org\apache\jmeter\functions 下面的Random.java
把vars.put(varName.execute(), randString);这行注释掉了.能解决问题
但是随之会带来一个问题,就是 random的格式是 ${random(一个范围内的最小值,一个范围内允许的最大值,函数名称。用于存储在测试计划中其他的方式使用的值。},代码注释后,就舍弃了函数名称功能.不可以将随机取到的值赋值到函数名称,赋值的话需要手工增加用户参数.
(让同事帮忙解决的,谢谢他了)