1

我的團隊正在開發用於客戶端 - 服務器設置的桌面應用程序(混合C++/Tcl)。目前它只是Windows,但很快我們需要將它移植到Linux上。 CruiseControl.NET每晚都從SVN的源代碼構建它並將其打包到NSIS安裝程序中,但我們沒有自動化測試來運行。
幾乎不可能添加任何單元測試,但應用程序的集成測試很容易,因爲它已經基於腳本。
主要任務是將應用程序安裝到3臺PC中,對其進行配置(包括複製一些文件),運行它,監控可能的崩潰,等待集成測試完成,收集摘要,發送電子郵件。這可能跟一幫自定義PowerShell腳本來完成,但客戶端/服務器Windows桌面應用程序的自動集成測試

  • 在將來,我們將要添加更多的功能和更多的測試,並 曾經被認爲是一個簡單的腳本很快炸燬(像往常一樣),所以我想 最小化自定義腳本,如果我需要腳本的東西,我 喜歡bash/cygwin(我不熟悉Python或Ruby)。
  • 我希望有一個網絡信息中心將報告當前進展,如果 東西失敗 - 顯示日誌
  • 我需要一些導師,如果它掛起或崩潰,將監測被測應用程序和 報告
  • 我們需要在Linux上進行測試
  • 理想情況下,我希望在PC之間協調一些測試步驟(例如,在PC1上運行測試X和在PC2上運行測試Y,等待它們的 都完成,然後在PC1上運行測試Z ,同時監測PC2上沒有任何 崩潰等)

所以,我正在尋找一個COTS工具/一套工具,它可以幫助我做到這一點,而且沒有陡峭的學習曲線。理想情況下,免費,但如果它真的很好,價格合理,我公司可能會購買許可證。
當NSIS安裝程序準備就緒時,應該從CruiseControl.NET觸發該過程,然後執行上述所有操作。基本上,它應該至少允許遠程安裝軟件,運行自定義腳本並擁有Web儀表板。
顯然,可以使用像Chef這樣的SCCM工具,但到目前爲止,它們都不支持Windows服務器,僅支持節點。我想避免爲此設置一個Linux VM,儘管我可以做到這一點,如果我沒有其他選擇。此外,廚師似乎有點矯枉過正 - 對於10k機器來說很好,但我未來只有3 ...也許5。我對編排分佈式測試的機會特別好奇。
StackOverflow和互聯網上的大多數類似問題都是關於Web應用程序,Java容器,Maven等,並且這些工具只有很多工具和插件才能評估。
在此先感謝。

回答

0

這是非常廣泛和非常接近基於意見。廚師可以處理將應用程序部署到測試機器等步驟,但它不是GUI測試框架,因此您需要其他方法來處理這些問題。 Jenkins支持將測試分發給Windows主機,因此看起來在事物的這一方面是一個不錯的選擇,但在多節點測試或它們之間的協調方面它並不是那麼棒。考慮到需求,我懷疑你自己需要寫出大部分內容。

0

在您的測試機器上安裝ccnet。當新的安裝程序準備就緒時,讓這些ccnet項目監聽一個被編輯的文件。讓測試機器安裝新的安裝程序並運行測試。你走了。 ccnet發送電子郵件,這是你的基本報告。

將測試結果通過使用gSOAP的Web服務報告到數據庫中(這就是我們所做的)。如果你需要的話,你可以運行java cruisecontrol。編寫一個啓用gSOAP的測試控制器程序來報告測試機器的測試結果。一個小的c + +應用程序會做。然後編寫一個網站(我們使用ASP.NET)來查詢數據庫(Postgresql)並顯示結果。讓測試機器通過SVN自動更新以獲取配置的最新更改。使用南特。 Nant遠遠優於僅使用ccnet運行任務。 Nant通過ccnet工作。在ccnet上使用XML,XSL和CSS使測試郵件具有您想要的信息(新通行證,新故障,與代碼庫的SVN差異等等)

我們的最新發展是將大電視放在廚房對測試結果進行總結,以便人們更容易知道他們破壞了什麼!

我得到的第一件工作是一臺測試機,用於偵聽新安裝程序,安裝它,運行一些基本測試並將結果通過電子郵件發回。將ccnet和nant配置放入版本控制中,並在測試機器上獲得自動更新,這樣您就不必每次登錄每臺測試機器並在每次更改時都進行更新。

相關問題