janne09 发表于 2010-9-1 19:06:55

loadrunner采用java vuser协议,运行报错.xml.parsers.FactoryConfigurationError

向大家请教个问题,我们要用loadrunner进行性能测试,采用的是java vuser协议。开发写好了jar包,而且开发的对他们写的jar写好了使用的例子。我们将jar包正确导入并写好了脚本.
CLASSPATH:.;C:\Program Files\Java\jdk1.5.0\bin;.\;%JAVA_HOME%\lib\tools.jar;C:\Program Files\Java\jre1.5.0\lib;C:\Program Files\Mercury\LoadRunner\classes;C:\Program Files\Mercury\LoadRunner\lib
PATH:.;C:\Program Files\Java\jdk1.5.0\bin;%JAVA_HOME%\lib\tools.jar;C:\Program Files\Mercury\LoadRunner\bin;C:\Program Files\Java\jre1.5.0\bin;

脚本编译时日志中会打出下面的内容:
WARNJavaUtils : Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled.可是功能执行的是正常的。
在运行场景中运行时总是报下面现条错误
1.Error: javax.xml.parsers.FactoryConfigurationError: Provider org.apache.xerces.jaxp.DocumentBuilderFactoryImpl not found
2.at javax.xml.parsers.DocumentBuilderFactory.newInstance(DocumentBuilderFactory.java:104)
      at org.apache.axis.utils.XMLUtils.getDOMFactory(XMLUtils.java:221)
      at org.apache.axis.utils.XMLUtils.<clinit>(XMLUtils.java:83)
      at org.apache.axis.configuration.FileProvider.configureEngine(FileProvider.java:179)
      at org.apache.axis.AxisEngine.init(AxisEngine.java:172)
      at org.apache.axis.AxisEngine.<init>(AxisEngine.java:156)
      at org.apache.axis.client.AxisClient.<init>(AxisClient.java:52)
      at org.apache.axis.client.Service.getAxisClient(Service.java:104)
      at org.apache.axis.client.Service.<init>(Service.java:113)
      at com.leadtone.sme.autotests.ms.anhui.wsclient.MicroSoftBindManagerImplServiceLocator.<init>(MicroSoftBindManagerImplServiceLocator.java:12)
      at com.leadtone.sme.autotests.ms.anhui.AnhuiMockAdc.<clinit>(AnhuiMockAdc.java:34)
      at com.leadtone.sme.autotests.ms.anhui.AhClient.<clinit>(AhClient.java:29)
      at com.leadtone.sme.tp.Actions.action(Actions.java:28)
在网上找了很久也没有找到解决方案
大家能帮我分析一下这个错是为什么吗?


针对jar包开发写的使用例子
package com.leadtone.sme.tp;

import com.leadtone.sme.autotests.SiResponse;
import com.leadtone.sme.autotests.ms.anhui.AhClient;

public class AhPerformanceTest {
      public static void main(String[] args) {
                AhClient client = new AhClient();
               

                SiResponse response = client.corpOpen("wwp_tp_eccode34", "106587652345678", "AD_UFID_009",
                              "163.com", "0");
                System.out.println("resultcode: " + response.getResultCode());
                System.out.println("resultmsg: " + response.getResultMsg());
                System.out.println();
}
}


我们在loadrunner写的脚本如下:
package com.leadtone.sme.tp;
import lrapi.lr;
import com.leadtone.sme.autotests.SiResponse;
import com.leadtone.sme.autotests.ms.anhui.AhClient;

public class Actions
{
   

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


      public int action() {
         
            AhClient client = new AhClient();
         

               SiResponse response = client.corpOpen("ahcorp08301924", "123456789301924", "ahcorp08301924",
                              "ahcorp08301924.com", "1");
                System.out.println("resultcode: " + response.getResultCode());
                System.out.println("resultmsg: " + response.getResultMsg());
                System.out.println();
               
               
               
                return 0;
      }//end of action


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

[ 本帖最后由 janne09 于 2010-9-1 21:09 编辑 ]

PrefTest 发表于 2010-9-1 21:49:27

应该是还缺少一些依赖的jar包

janne09 发表于 2010-9-2 08:28:39

回复 2# 的帖子

可是开发的在开发的环境上反复调试都是没有问题的

jackly 发表于 2010-9-2 09:43:10

java vuser的错误

开发使用的环境变量或者环境,及LoadRunner使用java vuser的时候的环境变量可能有一些差别,建议可以按照提示在LoadRunner里面增加对应的jar包

janne09 发表于 2010-9-2 11:16:15

loadrunner导入的jar包

loadrunner中导入的jar包是下面这个样子的,编译时提示缺少的两个jar包也导进来了,可是在运行场景中仍然报同样的错误


[ 本帖最后由 janne09 于 2010-9-2 11:19 编辑 ]

janne09 发表于 2010-9-2 14:34:09

回复 5# 的帖子

自己回复一下,问题解决了。
解决办法是这样的。
第一种办法:
run-time settingmiscellaneous multithreading 中选择 run vuser as a process
第二种办法:
public int init()方法中添加下面语句在controller的运行进程中,将线程的ContextClassLoader赋上值
Thread.currentThread().setContextClassLoader(ClassLoader.getSystemClassLoader());

另外说明一下:
1.脚本的路径一定要是英文的。
2.我将开发提供给我的jar包放到的脚本的目录下面,不知道在其他目录可不可以,没时间实验了。

[ 本帖最后由 janne09 于 2010-9-2 14:38 编辑 ]
页: [1]
查看完整版本: loadrunner采用java vuser协议,运行报错.xml.parsers.FactoryConfigurationError