LR11下开发Java Vuser脚本 运行报错问题

上一篇 / 下一篇  2012-04-24 13:57:49 / 个人分类:性能测试

    之前做过的大部分性能测试项目主要为B/S结构,基本上都是采用先录制脚本,然后修改脚本再进行测试。

现在要利用LR测试单个功能下某一个或几个JAVA类的性能。

例如,待测试JAVA类如下:

class Test04 {
int id;  //编号
String name;  //姓名
int age;   //年龄

public Test04(int id, String name, int age){
    this.id = id;
    this.name = name;
    this.age = age;
}

public boolean equals(Object obj){
    return  this.id == ((Test04)obj).id;
}
}

JDK环境为:IBM1.5.0

LR脚本:
打开LR脚本编辑器组建,协议选择Java Vuser,具体如下所示:

import lrapi.lr;

public class Actions
{

 public int init() throws Throwable {
  return 0;
 }//end of init


 public int action() throws Throwable {
     Test04 x = new Test04(3,"Tom",1);//此处可以参数化
     Test04 y = new Test04(2,"Bob",1);//此处可以参数化

          System.out.println(x.equals(y));

  return 0;
 }//end of action


 public int end() throws Throwable {
  return 0;
 }//end of end
}

LR版本为:LR11.0

使用JAVAC 编译Test04.java文件之后,把Test04.class文件放到LR类加载
目录下,调试脚本,运行之后报错:

Notify: Found jdk version: 1.5.0.
Notify: classpath=C:\Documents and Settings\Administrator\Local Settings\Temp\noname21\;c:\program files\hp\loadrunner\classes\srv;c:\program files\hp\loadrunner\classes;;D:\netbank\IBMjdk1.5\BIN;;;c:\program files\hp\loadrunner\lib\xstream-1.3.jar;c:\program files\hp\loadrunner\lib\xpp3-1.1.4c.jar
Notify: Path=D:\netbank\IBMjdk1.5\jre\bin\client;C:\PROGRA~1\HP\LOADRU~1\bin;C:\PROGRA~1\HP\LOADRU~1\bin\gecko;C:\PROGRA~1\HP\LOADRU~1\bin\tulip\bin;C:\PROGRA~1\HP\LOADRU~1\bin;D:\oracle\product\10.2.0\db_1\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;D:\netbank\IBMjdk1.5\bin;C:\strawberry\c\bin;C:\strawberry\perl\bin;C:\Program Files\TortoiseSVN\bin;
Notify: VM Params: .
Error:  at java.lang.ClassLoader.loadLibraryWithPath(ClassLoader.java:896)
 at java.lang.System.load(System.java:433)
 at utils.LRUtils.loadLRLibrary(LRUtils.java:737)
 at mercio.MercObjectInputStream.<clinit>(MercObjectInputStream.java:1604)
 at java.lang.J9VMInternals.initializeImpl(Native Method)
 at java.lang.J9VMInternals.initialize(J9VMInternals.java:148)
 at DummyClassLoader.getScriptObject(DummyClassLoader.java:129)

Error: Can't create script. object.
Error: Exception was raised when calling abort-cleanup function in extension java_int.dll: System Exceptions: EXCEPTION_ACCESS_VIOLATION
Warning: Extension trans.dll reports error -1 on call to function ExtAbortCleanup

分析了错误日志,大概意思是没有找到java文件,分析可能和环境变量有关,在网上找了很
多资料,都没有找到正确答案,于是把脚本调用JAVA类部分程序去掉,运行还是报同样的错
基本可以排除JAVA程序没有关系,于是更换JDK版本为sun jdk1.6,环境变量也做相应调整,
可以运行成功,加上java类调用代码之后,运行也没有问题。

注意class、以及jar包存放路径是否正确,比如:脚本存放路径为:D:\LR_scripts_Java,被调用的类为:com.Test.class,则需要把com.Test.class放到D:\LR_scripts_Java\目录下。

结论:LR11不支持IBM JDK 1.5,IBM 1.6以上的版本没有尝试过,不过建议使用sun1.6以上版本进行测试。


TAG:

 

评分:0

我来说两句

Open Toolbar