2

內測試也許這是不可能做一般在測試框架,但部署微服務的測試

我希望能夠內測試本身部署我測試的微服務。我曾看過Citrus,RestAssured和Karate,聽了無數的對話並閱讀了無數的博客,但我從來沒有看到如何做到這一點。似乎總是假設微服務是預先部署的。

回答

0

2分:

karate-demo是受JUnit測試澆道部署了一個彈簧引導示例。這是code that starts the server

karate-mock-servlet更進一步,您可以在不需要引導應用程序服務器的情況下在項目中運行HTTP集成測試。節省時間和代碼覆蓋率報告更容易。

如果您有任何其他要求,我很樂意聽到他們。我們想要實現的一件事是內置的服務器端模擬框架 - 認爲嵌入式wiremock:但與Karate的DSL的輕鬆。但是還沒有具體的時間表。

+1

彼得,感謝您的快速回復。我已經在上週看過空手道,柑橘和RestAssured(所有這些測試對我而言都是新的)。我可以使用Karate框架來部署一個非Java寫的微服務嗎?我不是微服務的開發人員,但我現在知道在這個時候Java和Spring就是Spring Boot。至於創建模擬服務Hoverfly應該可以正常工作。我的理解是,空手道也與Jenkins和Zappy合作(爲了在JIRA中報告結果) –

+0

@BrianReinhold - 理論上講,你甚至可以用Java調用本地代碼 - 所以這取決於你願意推動自動化的程度信封:)在另一個答案中,Docker是一種提供服務+依賴關係作爲測試引導的一部分的流行方式。你會喜歡Karate的報告:https://twitter.com/KarateDSL/status/899671441221623809 –

+0

彼得我看到Docker很多,這是一個很大的痛苦的Windows人,因爲涉及虛擬機。我主要關心的還有測試開發;我想避免在VM中部署具有自己的嵌入式服務器的微服務來開發測試。不知何故,我不知道如何才能避免知道微服務所編寫的語言,如果需要單獨構建,本地運行並針對該微服務開發測試(全部模擬)並且不需要一整天。順便一提;我別無選擇,只能將測試結果放入JIRA。這不是我的決定! –

2

老實說,這取決於您的微服務如何部署以及您的目標基礎設施。我更喜歡將部署集成到Maven構建中,因爲Maven提供了集成前測試和後集成測試階段。

如果您可以使用Kubernetes或Docker,我建議您將部署與fabric8 maven插件(fabric8-maven-plugin,docker-maven-plugin)集成。這將在Maven構建中自動創建/啓動/停止Docker容器部署。

如果你可以使用Spring啓動,官方的Maven插件可以以同樣的方式進行操作。

另一種可能性是使用構建管道。例如,Jenkins的持續構建將首先部署被測系統,然後在管道中執行測試。

我個人更喜歡總是分開部署和測試任務。如果你真的想在你的測試中進行部署,Citrus作爲一個框架可以在測試中啓動/停止Docker容器和/或Kubernetes窗格。對於這些部署任務,Citrus還可以在測試套件階段之前/之後進行集成。

+1

謝謝克里斯託弗。我已經看到了Jenkins管道選項,它提高了我希望它將使測試開發變得更容易。需要有服務運行才能測試!現在的缺點是我不確定在Windows系統上使用Docker和Kubernetes的理解。 –