2012-04-07 71 views
2

我想在數十個嵌入式Linux單元上運行測試腳本;在製造過程中,認證證書都是一樣的。如何在單個控制檯上對20多個網站進行測試?

測試大約一個小時,但我希望每個單元連續循環(在週末說)並報告當前的測試迭代(以每個單元爲基礎)。

我在想可能是要走的路(它肯定會幫助ssh登錄),但在線文檔是......呃......有點太分散了,看起來是一個簡單的練習。

我被困在試圖確定如何spawn我的嵌入式測試並行。在BASH中,我會使用&運算符將進程置於後臺,但進入認證是一項挑戰。

我應該使用expect還是堅持使用BASH腳本?


我做了什麼:

使用的expect劇本我放在DUT上的SSH認證文件。在運行其餘的bash腳本之前,DUT只有一個RAM文件系統來處理這個問題。然後,一個簡單的BASH for循環在for循環中發出一個ssh命令來運行測試並將該會話放在後臺線程上。 Comme ca:

for i in <IP devices to test> ; 
    do 
     ssh [email protected]$i "echo - \"IP Address: $i :\" ; test-script" & 
    done 

瞧!

+0

你的測試腳本駐留在單元上,並希望ssh進入這些單元並運行這些腳本? – dhchen 2012-04-07 15:22:59

+0

@dhchen是的。腳本在單位上;我用SSH運行它們。 – Jamie 2012-04-07 15:29:39

回答

2

安裝SSH公鑰認證(例如:http://www.petefreitag.com/item/532.cfm)與空白公鑰密碼,那麼你可以使用SSH,而無需輸入任何授權憑證運行這些腳本,所以你可以寫的bash腳本,而無需用戶干預來執行它們

+0

也會愛,但SSH密鑰會隨着每個軟件負載而變化;這是不實際的原因之一。另一個是,一旦腳本被寫入,它將與製造共享。軟件/腳本的用戶不是技術人員,要求他們設置公鑰認證,以便進行go/nogo測試,從而確保製造過程的順利進行。 – Jamie 2012-04-07 16:06:05

+1

然後,也許你可以試着在這些單元上用'nc'設置一個shell('nc -l -p port -v -e/bin/bash'或者類似的東西)並且把腳本回顯到單元('echo -n 「tests.sh \ n」| nc unis.ip.addr port') – dhchen 2012-04-07 16:19:18

+0

也不是一個實際的答案(我必須登錄才能設置nc會話,更不用說它不在嵌入式系統上),但是+1把nc放在我的工具箱裏。多麼漂亮的小程序。 – Jamie 2012-04-07 16:35:44

相關問題