想象一下,您有一個相當複雜的面向服務的體系結構,由不同的組件構成。組件用不同的語言(Java,PHP,Ruby)編寫,並以不同的方式相互通信(即UI,REST API,在某些情況下共享某些數據庫表等)。多語言集成測試框架
我正在設計一些端到端測試的集成測試框架。 我們已經對單個組件進行了單元/集成測試,但是我們希望構建一些能夠全面測試我們已部署的系統(在真實環境中)的端到端的功能,以確保功能(根據個別組件)正確提供,並且架構配置正確。
我面臨的第一個問題是,我們的大部分用戶界面都是用PHP編寫的,用戶界面集成測試已經爲它編寫了Cucumber和一些插件。 我正在編寫的測試框架(使用Java)應觸發這些功能測試,然後檢查相關組件的行爲是否符合預期。
顯然,我可以使用像Selenium這樣的Java友好組件來重寫UI測試,但重複這些工作並沒有意義。
另一種解決方案是在Java中使用exec()調用運行現有的測試,等待它們返回,可能解析輸出並繼續執行其他需要完成的操作/檢查。
考慮到項目編寫的方式,將現有的PHP代碼嵌入到Java中似乎不是一個可行的解決方案。
沒有任何一種解決方案對我來說令人信服。理想情況下,擁有某種多語言(和多技術)集成框架將是很好的,該集成框架可以在用不同語言和不同環境/組件編寫的相同測試套件測試中插入。
有沒有人知道一些工具或框架朝着這個方向發展?如果沒有,對這類問題有什麼好的方法?
感謝您的想法的好地方,但採用的JMeter會(與斷點支持!)意味着從頭開始重寫現有的測試。 另外,JMeter不會解釋Javascript,這對UI測試提出了很大的限制。 – kappolo 2013-03-19 12:57:42
我有點困惑我想,你想建立一個測試套件框架,調用你現有的單元測試?這會爲您提供超出現有測試的信息嗎? – mconlin 2013-03-19 13:48:36
對不起,如果我不清楚。因爲我想創建一個完整的集成測試(即集成我的系統的所有組件),我想重用已經存在的集成測試的一部分,並將它們與新測試相結合/集成。 – kappolo 2013-03-19 14:04:49