2011-06-08 80 views
1

我有一個包含ws客戶端和服務(JAX-WS)的項目。有沒有辦法在自動化測試中部署ws,這樣我可以讓我的客戶端測試包含對服務的調用?單元測試來自NetBeans的Web服務客戶端

顯然這需要部署到應用程序服務器......或者這種測試是不明智的嗎?

回答

2

我找到了適合此問題的解決方案。使用嵌入式Tomcat(7.0.11),我能夠在單元測試運行期間以編程方式成功部署我的Web服務。

tomcat = new Tomcat(); 
tomcat.setBaseDir("."); 
tomcat.setPort(8084); 
tomcat.addWebapp("/", System.getProperty("user.dir") + "/build/web"); 
tomcat.setHostname("localhost"); 
tomcat.enableNaming(); 
tomcat.start(); 

這種方法非常適合我,因爲我想自動化Web服務客戶端的測試。由於Piyush指出,soapUI是執行集成測試的完美方式。

編輯

如果您正在使用context.xml你需要定義它像這樣:

Context ctx = tomcat.addWebapp("/", System.getProperty("user.dir") + "/build/web"); 
File contextFile = new File("META-INF/context.xml"); 
ctx.setConfigFile(contextFile); 
+0

Glassfish會是同樣的事情嗎? – CodyBugstein 2016-02-07 21:28:26

1
  • 單元測試RESTful服務,這是一個很好的article。您還可以使用REST-assured來測試REST服務並使用Java中的Junit驗證響應。
  • 對於功能測試,您可以使用SOAPUI
  • 對於JAX-WS服務,請檢查此article。您也可以通過Spring的方式來測試JAX-WS here。您可以通過以下文檔提到的來自Netbeans的單元測試here

您如何生成您的服務? 他們是什麼樣的Web服務?您生成的服務不是常規的POJO嗎?

+0

對不起,JAX-WS(按標籤);我會更新我的帖子 – wulfgarpro 2011-06-08 06:16:07

+0

是的,我看過REST信息;功能測試不是我想要實現的,而是自動化的單元測試。 – wulfgarpro 2011-06-08 06:17:42

+0

請參閱更新後的帖子。 – 2011-06-08 06:27:14