启动cmd / k,然后在另一批次结束时关闭

时间:2017-02-13 11:19:05

标签: windows batch-file cmd sahi

使用cmd / k杀死命令窗口启动时遇到问题。要在上下文中替换,我想启动自动测试用例(使用SAHI Framework,它会重新集成Selenium,谁知道)。所以,我是第一个包含测试套件的.bat文件。为了测试需要启动的代理,我需要在同一个地方启动所有东西,因为我们在Jenkins服务器中打包了所有东西。

因此,对于概述,我必须使用以下步骤创建脚本:

  1. 设置全局变量
  2. 启动代理服务器(在其他终端中)
  3. 启动测试用例套件
  4. 代码:

    rem Start proxy server for handle tests
    start cmd /k sahi.bat
    
    rem Starting test suites
    testrunner.bat tests.suite http://website.fr/ firefox
    

    所以,这些步骤已经完成并且工作正常。但是我要在第3步之后关闭在步骤2中打开的服务代理。

    如何在测试案例后杀死sahi.bat?

1 个答案:

答案 0 :(得分:0)

有不同的方法可以实现您的目标。我的解决方案:

@ECHO OFF
START "Proxy" sahi.bat
START /WAIT testrunner.bat tests.suite http://website.fr/ firefox && taskkill /FI "WINDOWTITLE eq <username>: Proxy"

START "Proxy" sahi.bat将使用您的代理启动新控制台。窗口标题为 用户名:代理。试着用START&#34; test&#34;打开一个窗口。 cmd,如果您不确定窗口标题。

现在START /WAIT "testrunner.bat tests.suite http://website.fr/ firefox" && taskkill /FI "WINDOWTITLE eq <username>: Proxy"将执行两项操作:它将在新控制台中执行测试并终止代理服务器。 &&表示两个命令将一个接一个地执行。但这还不够,因为您的脚本会启动测试并在此之后立即终止代理。为避免这种情况,我们只需在命令中添加/WAIT,以便在测试蝙蝠终止后立即执行kill命令。

<强> TL; DR

  • 启动代理并调用窗口&#34;用户名:代理&#34;
  • 在测试完成后使用给定标题&#34;用户名:代理&#34;
  • 开始测试并终止代理