首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Silk Test Open Agent锁定跟踪文件

Silk Test Open Agent锁定跟踪文件
EN

Stack Overflow用户
提问于 2012-03-08 03:00:18
回答 2查看 1.2K关注 0票数 1

我们有测试java应用程序。

此应用程序执行不同类型的测试。在一个步骤中,它启动Silk Test。

这个应用程序使用System.out.println编写了很多跟踪。

我们将此跟踪重定向到cmd文件中的文件app.trace。

类似于:

代码语言:javascript
复制
java com.test.app > app.trace

当此测试应用程序停止时,无法删除app.trace文件,因为它已被Silk Test Open Agent锁定。

我不明白这个应用程序怎么能锁定我们的跟踪文件。

我们不会直接从代码中启动此应用程序。

我们使用Silk4J库启动Silk Test。

据我所知,这个库连接到启动Silk Test Open Agent的Silk Test窗口服务。

谁能解释一下Silk Test Open Agent锁定我们的跟踪文件的原因和方式?

EN

回答 2

Stack Overflow用户

发布于 2012-05-26 01:22:37

这是因为Open Agent在测试结束时不会关闭。我只是在我的套件完成后就杀了Open Agent。

代码语言:javascript
复制
public class ProcessKill {

public void killOpenAgent ()    {
    kill ("openAgent.exe");
}

public void kill (String processName)   {
    String command = "cmd /c taskkill";
    String parameter = " /F /IM " + processName;
    System.out.println("Killing process: " + processName);

    try {
        Runtime.getRuntime().exec(command + parameter);
    } catch (IOException e) {
        e.printStackTrace();
    }       
}
}

我使用TestNG来控制我的测试,所以我只是从@AfterSuite方法调用它,以始终确保Open Agent在每次运行后被终止。这也有助于释放许可证。

票数 1
EN

Stack Overflow用户

发布于 2012-07-02 23:26:09

原因是子进程继承了其父进程的打开文件,在本例中,将输出流重定向到该文件。这是有意义的,因为它还允许您捕获这些子进程的输出。

然而,除非David Genrich在他的回答中建议,否则我不会强行杀死代理,因为它可能无法释放一些资源并进行适当的清理。这可能会导致后续问题。

我建议在运行测试之前单独启动OpenAgent ,这样它就不是测试运行器的子进程。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9607459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档