2012-02-03 169 views
8

我正在嘗試爲我們的一些內部Web服務(Java)在工作中構建一個自動化測試框架。每個服務都有一組API(3-5),雖然這可能相對容易實現,但問題出現在一些不像純函數那樣的API上:ex:類似persistX的東西,這可以將某些東西存儲在數據庫中,返回失敗的異常。 有沒有簡單的方法來驗證,因爲這裏沒有輸出。自動測試框架

所以我想知道如果這可能有點泛化,比如測試API時,用戶可以提供一個簡單的插件或腳本到某種可以驗證測試的框架。如果有人能告訴我一些更好的或相同的資源,這只是一個想法。

感謝

回答

6

我建議robot framework。這是一個用python編寫的關鍵字驅動框架。因此,您可以使用jython在JVM中運行它,這意味着您可以使用java代碼(當然是python)來擴展它。我成功地使用它來調用API,然後通過查看數據庫或查詢文件系統來驗證結果。

它也適用於.NET平臺,有一個用於測試前端的selenium模塊,一個jenkins插件和其他幾個工具。它非常具有可擴展性和靈活性。

4

你在看什麼是黑盒和白盒測試的應用程序和支持兩者的工具。

對於返回適當響應的Web服務,您可以通過驗證返回響應中的數據來執行黑盒測試。 SoapUI是最好的工具。

對於不表現爲純函數的API,您做白盒測試通過驗證其副作用像持久性,事件生成,記錄等。對於這一點,你喜歡編程工具和了SoapUI可能會或可能不會是正確的選擇。

我們在我們的工作和評估多個工具/框架(SoapUI,RSSPec,Robotframework)後都選擇了Spock。爲什麼spock?

  1. 它允許你寫的意圖顯露測試在BDD風格
  2. 我們是Java店,我們要使用自動化同樣熟悉的語言以及但是簡單的語法糖。 Spock基於Groovy。
  3. 優秀的webdriver /硒2 Geb
  4. 支持(包括PageFactory)它是建立在JUNIT的頂部,這樣所有的JUnit插件可以利用(代碼覆蓋,哈得遜/詹金斯集成等)
  5. 地段Web服務API和XML的DSL(無需使用XPath來簡單的使用狀況)
  6. 簡化的設置(不像robotframework它並不需要蟒,Jython的設置)

等....