2009-08-17 69 views
4

我已經構建了一個將複雜類型作爲參數的C#.net Web服務。有沒有一種測試工具可以針對我的Web服務運行並將所有值傳遞給複雜參數類型?是否有測試工具來測試包含複雜類型的C#.net Web服務?

一些背景信息: 我對我的XSD運行了xsd.exe工具並創建了一個.cs類。此.cs類具有用作我的複雜參數的數據集。現在我需要測試我的webmethod並將值作爲客戶端傳遞給它。我試過WebService StudioStorm,但似乎這兩種產品都不能處理複雜的類型。有沒有其他產品可以做到這一點?或者我是否從頭開始編寫自己的測試應用程序?

回答

2

soapUI將幫助你做到這一點。

但是,我通常這樣做的方式是使用NUNIT或MSTEST編寫自動化單元測試,添加服務引用然後編寫測試。這有額外的好處,你正在創建你的用戶需要做的相同類型的客戶端代碼。如果你的服務很難使用,那麼你會發現很快。

3

我會通過使用Visual Studio與Windows窗體引用您的Web服務來測試它。在這個Windows窗體中,您可以使用NUnit,Fit或任何通常用於測試應用程序的東西。如果您在調試中運行Web服務和Windows窗體,則可以遍歷代碼以查看結果。

這是我使用的方法,我從來沒有聽說過使用自定義類型的.net Web Services中的另一種方法。

1

是不是一樣容易搶Visual Studio速成的複印件(如果你不具備完整版),並創建一個Windows應用程序,添加Web引用,並測試它?

應該帶你更少的時間,比我讀了這個問題;) (沒有我不是一個緩慢的讀者)

4

對於傳統的ASMX服務,我使用了Web服務工作室2.0來處理我向它扔的每種複雜類型。您可以從http://archive.msdn.microsoft.com/webservicestudio20/獲得經典版本(2.0)。

我知道你鏈接到的codeplex有一個更新版本,它看起來已經更新以支持複雜類型。 (一段時間,在codeplex上有一個無用的工具,無法完成複雜的類型)。

只是好奇你在Web Service Studio中遇到了哪些具體問題?

更新:重新讀取您的問題後,它聽起來像您在您的服務中使用DataSet。如果是這樣,那麼你將會遇到互操作性問題,它們會消耗大多數工具包中的服務;他們無法處理DataSet,因爲它是「動態」類型。解決這個問題最簡單的方法是avoid DataSets

如果是這樣的話,那麼我同意其他人,你將需要創建自己的.NET應用程序,它可以使用你的服務。

+0

每當我有複雜的類型(即數據集)作爲我webmethod的參數值,當WebServiceStudio編譯代理時,它會拋出這個錯誤,「錯誤CS0260:缺少對'ItemList'類型聲明的部分修飾符;這種類型的另一個部分聲明存在。如果我刪除複雜的參數,錯誤消失,webservicestudio工作正常。 – Jon 2009-08-17 20:08:27