簡體   English   中英

自動化測試已部署的應用程序

[英]Automated test of deployed applications

通常,一些用於自動化測試的測試框架(例如Selenium)用於連續驗證已部署應用程序的完整性。 這些測試通常涵蓋真實的用戶場景,並且還可以結合使用一系列已部署的應用程序。

對於“僅后端”應用程序,即沒有前端的應用程序(或更確切地說是一個應用程序),我們希望實現一些相同的功能。 我們目前正在構建一系列批處理作業,其中一個作業會為下一個作業提供輸入。

我們有一個很棒的單元測試套件,可以測試各個作業,但是當部署到某個環境中時,我們真的很想測試一系列作業。

您對這種測試框架有什么建議嗎? 該框架必須能夠利用其他Java SDK(例如AWS SDK)(例如,指示批處理作業啟動,將數據注入隊列等)。 具有測試框架是否需要同時部署為應用程序還是直接從CI運行是第二要務。

如果您已經備份了可以在生產環境上運行的測試,那么您只需計划在這些測試上運行即可。 詹金斯對此很好( https://wiki.jenkins.io/display/JENKINS/Schedule+Build+Plugin

您可能會收到有關失敗作業的電子郵件(或其他警報)。 詹金斯還將照看測試報告-就像處理單元測試一樣。

安排測試運行的技術

您可以計划使用任何其他技術(例如Amazon AWS實例,AWS Elastic Beanstalk Worker Environments( https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features-managing-env-tiers .html )等

我認為Jenkins最合理,因為您對測試報告,通知等具有開箱即用的支持。

對於任何其他技術,您將不得不自己編寫報告和通知。

編寫測試的技術

我可以使用能夠進行HTTP REST調用的任何技術編寫測試。 對於性能測試,Jmeter或Gatling是不錯的選擇。

對於驗收測試,您可以使用Spring的RestEasy,TestRestTemplate,Apache HTTP客戶端等。作為測試運行框架,您可以使用Junit4,Juni5,TestNG或Spock(如果您對Groovy語言很好的話)。 測試結構可能與普通測試相似。 命名良好的獨立方法可以很好地測試一件事,有意義的斷言等。對於編寫斷言,我個人的偏好是AssertJ,但JavaHamcrest也可以。

這些測試可以(並且應該)寫在src / test目錄中,單獨的存儲庫中(或在相同的存儲庫或不同的模塊中)。

對於該測試模塊,您可以在src / main目錄中編寫與測試相關的服務,因此src / test目錄將僅包含測試方案。 測試服務可能會占用您所需的所有內容-管理文件,檢查數據庫等。

您可以考慮使用BDD風格和JBehave或Cucumber之類的工具編寫測試方案。 我個人只有在企業對測試場景感興趣時才能看到BDD測試的價值。 如果這些測試僅由技術人員使用,那么我發現在非BDD技術(Junit,AssertJ)中維護此類測試更加容易。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM