我正在尝试从Java程序运行HP LoadRunner(wlrun.exe)命令,并检查wlrun.exe命令退出时的状态。
示例Java代码:
public class LRTest
{
private static int exitValue = -1;
private class WlRunExecution extends Thread
{
Process p;
String command = new String();
public WlRunExecution(String command)
{
this.command = command;
}
public void run()
{
LRTest.exitValue = -1;
try
{
this.p = Runtime.getRuntime().exec(this.command);
while (IsLoadRunnerRunning())
{
Thread.sleep(1000L);
}
}
catch (Exception e)
{
System.out.println(e);
}
}
public boolean IsLoadRunnerRunning()
{
boolean IsLoadRunnerRunning = false;
try
{
LRTest.exitValue = this.p.exitValue();
}
catch (IllegalThreadStateException e)
{
IsLoadRunnerRunning = true;
}
return IsLoadRunnerRunning;
}
}
public static void main(String[] arg)
{
LRTest test = new LRTest();
test.runTest();
}
public void runTest()
{
WlRunExecution process = null;
String command = "\"C:\\Program Files (x86)\\HP\\LoadRunner\\bin\\Wlrun.exe\" -Run -TestPath \"C:\\Test\\LoadRunner\\TestBing\\ScenarioBing.lrs\" -ResultName \"C:\\Test\\LoadRunner\\TestBing\\LRResult\"";
//String command = "\"C:\\Program Files (x86)\\HP\\LoadRunner\\bin\\Wlrun.exe\"";
try
{
process = new WlRunExecution(command);
Thread t = new Thread(process);
t.start();
t.join();
System.out.println("Process Exit code : " + exitValue);
}
catch (Exception e)
{
System.out.println(e.getMessage() + e);
}
}
}
在运行程序时,进程退出代码始终为1 ,这意味着退出wlrun进程时会出现一些错误。即使我跑了" wlrun"没有任何参数并在启动后手动关闭LoadRunner控制器,仍然处理退出代码是1.如果我替换" wlrun.exe"使用任何其他命令(记事本,exe或AnalysisUI.exe或VuGen.exe),然后进程退出代码为0.
在调试时,我在应用程序事件日志(控制面板 - >管理员工具 - >计算机管理 - >事件查看器 - > Windows日志 - >应用程序)中观察到以下错误。每次运行HP LoadRunner Controller时,都会在应用程序事件日志中记录此警告。
HP.LT.Logger配置创建的上下文提供程序失败 类型:HP.PC.Security.SSO.AppContextLoggingProvider,HP.PC.Security.SSO
请帮忙。