做了这么多年的性能测试,从来没有遇到过java application的,现在用java做GUI程序的情况比较罕见了,偏偏这就碰到了一个。
打开loadrunner11,找到java record replay,配置好main class和工作目录,app parameter配置的时候傻帽了,直接把所有的参数都贴了进去,也就是-cp xxx –Xmsxx –Xmxxx这一长串都贴了进去,点击确定,果然报错:
ERROR: JVMPI, an experimental interface, isno longer supported.
Please use the supported interface: the JVMTool Interface (JVM TI).
Error occurred during initialization of VM
-Xrun library failed to init: jdkhook
再仔细一看,原来有录制的配置项的,好,加入所有的jar包,jvm的参数配置:
-Dlanguage=zh_CN -Xms512m -Xmx512m -splash:.\core-app\beauty.jpg
Error occurred during initialization of VM
Could not reserve enough space for objectheap
Error: Could not create the Java VirtualMachine.
Error: A fatal exception has occurred.Program will exit.
再满世界查资料,把能够配置的通通配置上:
-Dlanguage=zh_CN -Xms512m -Xmx512m-XX:MaxHeapSize=512m -XX:PermSize=512m -XX:MaxPermSize=512m-splash:.\core-app\beauty.jpg
哇塞,会不会太残暴了一点,再一运行,faint,还是报同样的错误。
到处问人,有个同学给了一个答复给我:
XXX 0:05:56
XX,你那个问题是否是因为导入太多的jar包,lr对jar包引入支持的数量有限制导致,有部分jar包实际没有引入成功导致,处理了没有呀?
我之前遇到过这种情况哦
如果是这种情况的话,需要压缩引入jar包的数量
这样呀,这个怎么压缩数量呢,头大。后来这位同学告诉我,可以让开发把这些jar包合并,把java文件凑一起。
再继续满世界搜,搜到这么一段:
The key in solving the issue was theversion of Loadrunner. It turned out that Loadrunner 11.52 demands to have 3GBuser addressable memory (i.e. you must have the /3GB parameter set in theboot.ini file of the OS) which is not the case with LR 11.04(it works with only2GB addressable memory) and so the aforementioned system variable has nothingto do with the problem.
配合上面那位同学的说法,看来说穿了就是内存不够嘛。要放到对象堆里面的东西太多了,扛不住了。
我的电脑是32位的win7,内存4G,实际用到的也就3.41G,难怪会出问题了。立刻找了一台8G内存的64位win7,几下配置上,开跑,还是报错:
'java.exe' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
晕死,这台电脑啥环境变量都没有配置,于是拷贝了一个jdk过来,配置上:
JAVA_HOME=C: \Java\jdk1.6.0_03
CLASSPATH=.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\bin;
PATH=.;%JAVA_HOME%\bin
仔细一点,写了一个bat,先在cmd里面跑了一下,没问题了,再重新配置好,开跑,yeah!搞定了。
想了想,可能都不用搞那么多参数,指定一下堆大小应该就够用了吧,猜测,我懒,所以后续的事情就交给各位看官了。^_^