2013-03-19 102 views
5

想象一下,您有一個相當複雜的面向服務的體系結構,由不同的組件構成。組件用不同的語言(Java,PHP,Ruby)編寫,並以不同的方式相互通信(即UI,REST API,在某些情況下共享某些數據庫表等)。多語言集成測試框架

我正在設計一些端到端測試的集成測試框架。 我們已經對單個組件進行了單元/集成測試,但是我們希望構建一些能夠全面測試我們已部署的系統(在真實環境中)的端到端的功能,以確保功能(根據個別組件)正確提供,並且架構配置正確。

我面臨的第一個問題是,我們的大部分用戶界面都是用PHP編寫的,用戶界面集成測試已經爲它編寫了Cucumber和一些插件。 我正在編寫的測試框架(使用Java)應觸發這些功能測試,然後檢查相關組件的行爲是否符合預期。

顯然,我可以使用像Selenium這樣的Java友好組件來重寫UI測試,但重複這些工作並沒有意義。

另一種解決方案是在Java中使用exec()調用運行現有的測試,等待它們返回,可能解析輸出並繼續執行其他需要完成的操作/檢查。

考慮到項目編寫的方式,將現有的PHP代碼嵌入到Java中似乎不是一個可行的解決方案。

沒有任何一種解決方案對我來說令人信服。理想情況下,擁有某種多語言(和多技術)集成框架將是很好的,該集成框架可以在用不同語言和不同環境/組件編寫的相同測試套件測試中插入。

有沒有人知道一些工具或框架朝着這個方向發展?如果沒有,對這類問題有什麼好的方法?

回答

0

你有沒有考慮過像Jmeter這樣的完整堆棧測試?

您可以建立,對你的全面部署軟件

  • 運行測試,創建用戶
  • 確認該用戶成功創建screeen顯示
  • 確認該用戶是在數據庫預期
  • 刪除用戶
  • 確認用戶被刪除

這樣您就可以一次測試您的UI,業務邏輯和數據存儲。它也可以用來做負載測試。

Jmeter

+0

感謝您的想法的好地方,但採用的JMeter會(與斷點支持!)意味着從頭開始重寫現有的測試。 另外,JMeter不會解釋Javascript,這對UI測試提出了很大的限制。 – kappolo 2013-03-19 12:57:42

+0

我有點困惑我想,你想建立一個測試套件框架,調用你現有的單元測試?這會爲您提供超出現有測試的信息嗎? – mconlin 2013-03-19 13:48:36

+0

對不起,如果我不清楚。因爲我想創建一個完整的集成測試(即集成我的系統的所有組件),我想重用已經存在的集成測試的一部分,並將它們與新測試相結合/集成。 – kappolo 2013-03-19 14:04:49

1

不知道這是否可以幫助,但也許看看https://github.com/nablex/glue。這是我開發的一種腳本語言,專注於(集成)測試。

如果您插入https://github.com/nablex/glue-selenese並支持,那麼它支持開箱即用的硒腳本,非常可擴展的

我目前正在用一些自定義擴展名來運行用Fox運行的舊腳本(我實際上重新實現了fox pro方法... shiver)和一個傳統模式,因此它們只能用於舊版腳本,而不是新腳本。我還插入了基於SOAP的自定義Web服務,其中一個可用於在遠程系統上執行數據庫調用,爲我提供了用於集成級別測試的各種工具。

雖然腳本語言功能齊全,但我仍在充實默認情況下可用的方法彙編,並仍試圖將其定位爲集成測試工具。讓我知道它是否有幫助或者 - 如果沒有 - 爲什麼它不能滿足您的需求,總是滿意反饋! :)

PS:「主」類開始得到它啓動和運行,因爲它包含了工作CLI客戶