51Testing软件测试论坛

标题: loadrunner采用java vuser协议,运行报错.xml.parsers.FactoryConfigurationError [打印本页]

作者: janne09    时间: 2010-9-1 19:06
标题: 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;

脚本编译时日志中会打出下面的内容:
[main] WARN  JavaUtils : 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
应该是还缺少一些依赖的jar包
作者: janne09    时间: 2010-9-2 08:28
标题: 回复 2# 的帖子
可是开发的在开发的环境上反复调试都是没有问题的
作者: jackly    时间: 2010-9-2 09:43
标题: java vuser的错误
开发使用的环境变量或者环境,及LoadRunner使用java vuser的时候的环境变量可能有一些差别,建议可以按照提示在LoadRunner里面增加对应的jar包
作者: janne09    时间: 2010-9-2 11:16
标题: loadrunner导入的jar包
loadrunner中导入的jar包是下面这个样子的,编译时提示缺少的两个jar包也导进来了,可是在运行场景中仍然报同样的错误
[attach]65018[/attach]

[ 本帖最后由 janne09 于 2010-9-2 11:19 编辑 ]
作者: janne09    时间: 2010-9-2 14:34
标题: 回复 5# 的帖子
自己回复一下,问题解决了。
解决办法是这样的。
第一种办法:
run-time setting  miscellaneous 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 编辑 ]




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2