近日利用LR 写了个javavuser协议脚本,先是在eclipse里调试通过的,移植到LR中回放始终报错。
错误如下:
"System.err: at sun.net.util.URLUtil.urlNoFragString(URLUtil.java:29) Error"
"System.err: at sun.misc.URLClassPath.getLoader(URLClassPath.java:292) Error"
"System.err: at sun.misc.URLClassPath.findResource(URLClassPath.java:145) Error"
"System.err: at java.net.URLClassLoader$2.run(URLClassLoader.java:385) Error"
"System.err: at java.security.AccessController.doPrivileged(Native Method) Error"
"System.err: at java.net.URLClassLoader.findResource(URLClassLoader.java:382) Error"
"System.err: at java.lang.ClassLoader.getResource(ClassLoader.java:1002) Error"
"System.err: at java.lang.ClassLoader.getResourceAsStream(ClassLoader.java:1192) Error"
"System.err: at org.apache.commons.logging.LogFactory$3.run(LogFactory.java:597) Error"
"System.err: at java.security.AccessController.doPrivileged(Native Method) Error"
"System.err: at org.apache.commons.logging.LogFactory.getResourceAsStream(LogFactory.java:593) Error"
"System.err: at org.apache.commons.logging.LogFactory.getFactory(LogFactory.java:237) Error"
更怪异的是基本同一条件下(环境变量一致),另外一个javavuser脚本跑起来是正常的,度娘和谷歌关键字到时发现有遇到同样问题的难友。
纠结数日,看到一篇LR批量导入jar包的文章,从标题来看与解决我的问题毫不相干,但实在木有办法了,带着新鲜的好奇感扫了眼,里面说到
修改LR项目的一个配置文件,修改配置文件一向是比较高深的人士做的事情。受到这个启示,联想到我的问题,视乎有些瓜葛,实际上在报上述
error前还有个困惑的问题,就是LR javavuser脚本里配置的默认环境变量比较怪异。截图如下:
首先环境变量字体是红色的,我认为是否为默认的都是红色显示;
再次路径貌似不对,第二行lib前无反斜杠,第三行没有反斜杠且tool.jar前是斜杠,而不是反斜杠。
正是在这样的条件下,有其他几个javavuser脚本回放起来是正常的,就没有过多怀疑。
经过上面的那篇文章了解,于是乎我就来到该LR项目下查看default.cfg文件,用记事本打开后,找到[JavaVM:Options]:
[JavaVM:Options]
Java_Env_ClassPath=.;D:\Program Files\Java\jdk1.6.0_33lib;D:\Program Files\Java\jdk1.6.0_33lib/tools.jar;
发现Java_Env_ClassPath里的路径格式与截图红色的路径一直,理所当然,就将其修改为:
[JavaVM:Options]
Java_Env_ClassPath=.;D:\Program Files\Java\jdk1.6.0_33\lib;D:\Program Files\Java\jdk1.6.0_33\lib\tools.jar;
再次回访脚本前,去runtime setting里面查看修改效果,也一边祈祷问题能够得到解决:
哦了,变成黑色的了,再次回访脚本。顺利通过,哦也!
至于导致LR环境变量错误的原因目前还不清楚,在解决之前也去群里跟网友确认了一下,环境变量路径显示不对也非我一个特例,
基本能够确认可能是LR11的一个小bug。