2017-02-13 66 views
0

我有一個問題,用cmd/k終止命令窗口啓動。爲了替換上下文,我想啓動自動測試用例(使用SAHI框架,它會重新啓動到Selenium,因爲誰知道)。所以,我必須首先推出包含測試套件的.bat文件。爲了測試一個代理需要啓動,我需要在同一個地方啓動所有的東西,因爲我們將所有這些東西打包在Jenkins服務器中。啓動cmd/k,然後在另一批次結束時關閉

因此,對於回顧一下我要創建這些步驟的腳本:

  1. 設置全局變量
  2. 啓動代理服務器(在其他終端)的測試用例
  3. 啓動套房

代碼:

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中打開的serveur代理。

如何在測試用例後殺死sahi.bat?

回答

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「test」cmd打開一個窗口。

現在START /WAIT "testrunner.bat tests.suite http://website.fr/ firefox" && taskkill /FI "WINDOWTITLE eq <username>: Proxy"會做兩件事:它會在新的控制檯執行你的測試並殺死代理服務器。 &&意味着兩個命令將一個接一個地執行。但這還不夠,因爲你的腳本會開始測試,並在此之後立即殺死代理。爲了避免這種情況,我們只需將/WAIT添加到我們的命令中,一旦測試棒終止,腳本就立即執行kill命令。

TL; DR

  • 開始代理並調用窗口「用戶名:代理」
  • 開始測試並殺死代理的測試都是使用給定標題識別右邊的窗口後,「用戶名:代理「
+0

正是我所搜索的!謝謝,我已經更新了一下你的代碼,但它完美的工作:) – spasfonx

相關問題