2011-07-27 23 views
1

我需要爲一個應用程序做一些測試,這個應用程序會對第三方應用程序進行多個 SOAP調用,然後處理結果。 我想從模擬第三方應用程序的 程序向測試中的應用程序發送特定數據。如何編寫簡單的SOAP服務器以基於傳入請求的名稱空間返回靜態XML?

我意識到,所有我真正需要的是爲具有 1)接受來自應用下測試 2)傳入SOAP調用一個服務器進程確定在傳入的SOAP呼叫正在使用什麼名稱空間 3)返回一個SOAP使用基於該名稱空間的靜態XML進行響應。

我想我會簡單地使用Ruby的SOAP RPC :: ::獨立服務,但預計 在構造一個單一命名空間,所以我被難住了(我確實考慮 猴子打補丁來處理命名空間的代碼,但看起來很難)。 然後,我想我會嘗試一下Ruby的TCPServer。當我意識到我不知道如何正確地以正確的SOAP方式正確返回適當的XML時,我得到了以下代碼: 。

require 'socket' 

    server = TCPServer.new('127.0.0.1', 9800) 
    loop { 
     client = server.accept 
     # This is for illustration only, it's clearly wrong 
     while line = client.gets 
     if line =~ /urn:foo/ 
      # return the foo xml in the correct SOAP fashion 
     elsif line =~ /urn:bar/ 
      # return the bar xml in the correct SOAP fashion 
     end 
     end 
     client.close 
    } 
    trap('INT') { exit } 

注意測試的應用程序是不是一個Ruby應用程序,它是 並不友好測試。另外請注意,如果更簡單,我會很樂意考慮另一種解決方案 (比如Perl解決方案) - 我剛從Ruby開始,因爲我有一點點的使用經驗。

回答

0

您可能想試試這個,它幾乎完全符合您的要求。 http://www.soapui.org/

+0

Richard,謝謝你的回答。不幸的是,我需要一些可以編寫腳本的東西。我本質上是寫一個負載測試工具,但它接受數據請求並返回數據,而不是試圖加載Web服務器。也就是說,負載被拉回到被測試的應用程序,而不是以典型的負載測試方式推送到應用程序。傳統的負載測試工具可能可以完成我所需要的工作,但與我實際嘗試完成的工具相比,這些工具的學習曲線相當陡峭,所以我希望能夠有一個簡單的腳本。 –

相關問題