上一篇文章里,我们讲了如何在java Vuser协议中,引用jar文件中的类。Loadrunner对java支持非常好,但是,在实际操作中,出现了一个新问题:如果要引用jar文件,需要把jar文件拷贝到当前脚本的目录下。如果我们为性能测试开发了一个测试框架,就需要把框架类的jar文件拷贝到每个脚本的目录下,这样做显然不合理,因为同一文件保存多份拷贝,很难管理,极易引起版本混乱。
 
我们需要把测试框架的jar文件,放在一个统一的地方,让每个测试脚本都能自动找到,这样才能解决问题。开始,我准备利用java VM运行环境的ClassPath来解决。首选,在环境变量的ClassPath中增加一个目录,比如“d:\lib”。然后把测试框架的jar文件拷贝到这个目录,运行脚本,失败!提示找不到指定的类。
 
之后,我修改了环境变量ClassPath的值,把jar文件的完整路径添加进去,例如“d:\lib\testBase.jar”,再次运行脚本,成功!似乎java的classPath并不支持目录,而必须要指定到具体的jar文件。这个问题困扰了我很久,如果有java的高手请指点一下。
 
虽然设定环境变量,可以解决这个问题,不过以后如果需要增加一个jar文件,就要修改一次环境变量,还是很不方便。于是,我尝试把jar文件用winrar解压,直接把解压后的目录保存在d:\lib目录下面,然后在环境变量里面只设定d:\lib,运行脚本发现也能通过!!原来系统虽然不能找到jar文件,却能找到目录中的*.class文件。
 
虽然jar文件解压后的文件比较多,和单独的jar文件相比,管理起来有些麻烦,不过最终我还是选择了这个方法。或者,大家还可以使用另一个方法:在一台电脑上,将测试需要用到的jar文件共享,然后,在编辑脚本时,按下F4进入“runtime setting”,在classPath中从网络中,指向你需要的jar文件。这样,就需要为每个脚本都设定一次classPath。