Windows Communication Foundation (WCF) 測試客戶端 (WcfTestClient.exe) 是一個 GUI 工具,使用該工具,用戶可以輸入測試參數、將該輸入提交給服務並查看服務發回的響應。當與 WCF 服務主機結合時,它可以提供完美的服務測試體驗。
使用測試客戶端的方案
以下各節討論了使用 WCF 測試客戶端簡化開發流程的最常見方案。
Visual Studio 內部
WCF 服務主機啓動 WCF 測試客戶端和一項服務
在創建新的 WCF 服務項目並按 F5 啓動調試器後,WCF 服務主機將開始承載項目中的服務。然後 WCF 測試客戶端將會打開,並顯示在配置文件中定義的服務終結點列表。可以測試參數和調用服務,並可以重複此過程以繼續測試和驗證服務。
WCF 服務主機啓動 WCF 測試客戶端和多項服務
也可以使用 WCF 測試客戶端來幫助調試包含多項服務的服務項目。打開 WCF 測試客戶端時,它將自動循環訪問項目服務列表並打開這些服務進行測試。
Visual Studio 外部
您還可以在 Visual Studio 外部調用 WCF 測試客戶端 (WcfTestClient.exe),以測試 Internet 上的任意服務。若要找到此工具,請轉到以下位置:
C:/Program Files/Microsoft Visual Studio 9.0/Common7/IDE/
若要使用該工具,可以雙擊此文件名從該位置打開它,也可以從命令行啓動它。
WCF 測試客戶端將任意數目的 URI 作爲命令行參數。這些 URI 是可以測試的服務的 URI。
wcfTestClient.exe URI1 URI2 …
WCF 測試客戶端窗口打開後,單擊“文件”->“添加服務”,然後輸入要打開的服務的終結點地址。
WCF 測試客戶端用戶界面
可以將 WCF 測試客戶端用於一項或多項服務。
服務操作
WCF 測試客戶端主窗口的左窗格列出了所有可用的服務及其各自的終結點和操作。
雙擊某個操作後,可以在具有此操作名稱的新選項卡內的右窗格中查看其內容。
左窗格還列出了客戶端配置文件。雙擊任何項可以在新選項卡式窗口內的右窗格中顯示文件的內容。
輸入測試參數
若要查看測試參數,請雙擊某項操作以在右窗格中打開它,然後單擊“已格式化”。若要查看消息的 XML,請單擊“XML”。單擊“已格式化”後,可以輸入任意參數值以測試服務。若要將它們發送給服務,請單擊“調用”。
服務響應將出現在測試參數下面。
注意: |
---|
如果預期的返回值是字符串,則結果將顯示爲帶引號的字符串,即使提供的輸入未包含在引號中,也是如此。
|
如果在創建服務約定時將特定操作指定爲單向操作,則不會顯示服務響應。消息一旦處於排隊等待發送狀態,則會彈出一個對話框,通知您已成功發送消息。
會話支持
使用服務操作的選項卡中的“啓動新的代理”複選框可以切換會話支持。默認情況下,該複選框是取消選中的。
如果未選中該複選框,則輸入某個特定操作(或同一服務終結點中的另一個操作)的測試參數並多次單擊“調用”後,這些操作將共用一個代理且服務狀態在多個操作中保持。
如果選中“啓動新的代理”複選框,則每次單擊“調用”都會啓動一個新的代理,前面的會話方案終止,服務狀態重置。
編輯客戶端配置
WCF 測試客戶端主窗口的左窗格列出了客戶端配置文件。雙擊任何項可以在右窗格中顯示文件的內容。
使用服務配置編輯器進行編輯
在左窗格中右擊“配置文件”,然後選擇上下文菜單“用 SvcConfigEditor 進行編輯”。服務配置編輯器啓動並顯示客戶端配置內容。可以編輯配置,然後將其保存在此工具中。
在服務配置編輯器中保存此文件後,WCF 測試客戶端將顯示一條警告消息,通知您該文件已在外部修改,並詢問您是否要重新加載它。
如果選擇“是”,“Client.dll.config”選項卡中的配置內容將反映出您在此編輯器中所做的更改。
如果選擇“否”,“Client.dll.config”選項卡中的配置內容將保持不變,且已更改的內容將自動保存到源文件中。
還原到默認配置
如果希望取消所有更改並還原到默認客戶端配置,請在左窗格中右擊“配置文件”,然後選擇上下文菜單“還原到默認配置”。這時將加載默認配置值,並還原“Client.dll.config”選項卡中的內容。
驗證更改
在 WCF 測試客戶端中加載已保存的更改時,會對照 WCF 架構檢查配置的有效性。如果發現錯誤,將顯示一個對話框來給出錯誤詳細信息。
在代理生成、二進制編譯或服務調用期間,支持編輯的菜單項(即“編輯…”、“還原…”等等)被禁用。將更新後的配置加載到 WCF 測試客戶端時還將禁用服務調用。
使客戶端配置保持不變
“工具”->“選項”->“客戶端配置”選項卡中包含一個“在啓動服務時始終重新生成配置”選項,默認情況下,該選項處於啓用狀態。該選項指定每次 WCF 測試客戶端加載服務時,都會基於最新的服務協定和服務 App.config 文件重新生成一個配置文件。
如果您已編輯了 WCF 服務的客戶端配置,且希望始終使用這一更新後的文件來調試您的服務,則可以取消選中“重新生成”選項。這樣,即使更新服務並重新打開 WCF 測試客戶端,Client.dll.config 文件將是您先前更新過的配置文件,而不是基於已更新的服務重新生成的文件。
但是,您可能需要編輯此配置文件以使其與重新生成的代理一致。如果由於更新了服務而導致重新生成的代理與配置文件不匹配,則調用該服務時將出錯。
警告: |
---|
如果您已修改了客戶端配置文件並選擇以後再使用它,則可以在以下位置找到此文件:
/Documents and Settings/[User Account]/My Documents/Test Client Projects。 任何存儲到客戶端配置文件的已更新的憑據信息都是由此文件夾的訪問控制列表 (ACL) 保護的。
|
添加、刪除和刷新服務
添加服務
單擊“文件”->“添加服務”將某個服務添加到 WCF 測試客戶端。然後您需要鍵入要添加的服務的 URI(終結點地址)。該服務的地址可以是 mex 地址,也可以是 WSDL 地址。
在“最新的服務”子菜單中還可以找到最新添加的 10 個服務的終結點列表。如果選擇其中一個終結點,指定的服務就會添加到 WCF 測試客戶端。
右擊服務樹的根目錄“我的服務項目”,然後選擇“添加服務”也可以獲得相同的結果。
在代理生成、二進制編譯或服務調用期間,支持添加服務的菜單項被禁用。服務調用也被禁用。
移除服務
右擊要移除的服務的服務根目錄,然後選擇“刪除服務”即可從 WCF 測試客戶端中移除服務。
在代理生成、二進制編譯或服務調用期間,支持刪除服務的菜單項被禁用。服務調用也被禁用。
刷新服務
如果在 WCF 測試客戶端運行期間對服務進行了更改,且您希望確保該服務的 WCF 測試客戶端實現是最新的,請右擊該服務的服務根目錄,然後選擇“刷新服務”。請注意,刷新後服務狀態將重置。
在代理生成、二進制編譯或服務調用期間,支持刷新服務的菜單項被禁用。服務調用也被禁用。
測試客戶端生成的文件的位置
默認情況下,WCF 測試客戶端將生成的客戶端代碼和配置文件存儲在“%appdata%/Local/temp/Test Client Projects”文件夾中。WCF 測試客戶端退出後,該文件夾隨即刪除。如果在 WCF 測試客戶端中修改了某個配置文件,且禁用了“在啓動服務時始終重新生成配置”選項,則修改後的文件將複製到“My Documents/Test Client Projects Documents/Test Client Projects”下的“Cached Config”文件夾中,並使用一個映射(從元數據地址到文件名)XML 文件作爲索引。
也可以在命令行啓動 WCF 測試客戶端,使用 /ProjectPath 開關指定一個希望用於存儲生成的文件的新路徑,或者使用 /RestoreProjectPath 開關還原默認位置。語法如下所示:
wcfTestClient.exe /ProjectPath [desired location]
運行此命令並不會打開 WCF 測試客戶端,而只會更改文件夾位置。無論 WCF 測試客戶端運行與否,都可以運行此命令。WCF 測試客戶端重新啓動時將應用新位置。位置信息可以保存在註冊表中,也可以保存在“%appdata%/Local/temp/Test Client Projects”文件夾的 WcfTestClient.exe.option 文件中。
WCF 測試客戶端支持的功能
下面是 WCF 測試客戶端支持的功能的列表:
- 服務調用:請求/響應和單向消息。
- 綁定:Svcutil.exe 支持的所有綁定。
- 控制會話。
- 消息協定。
- XML 序列化。
下面是 WCF 測試客戶端不支持的功能的列表:
- 類型:Stream、Message、XmlElement、XmlAttribute、XmlNode、實現 IXmlSerializable 接口(包括相關的 XmlSchemaProviderAttribute 屬性)的類型以及 XDocument 和 XElement 類型、ADO.NET DataTable 類型和 DataSet 類型(及其類型化的派生類)。
- 雙工協定。
- 事務。
- 安全性:CardSpace、證書和用戶名/密碼。
- 綁定:WSFederationbinding、任何上下文綁定和 Https 綁定、WebHttpbinding(Json 響應消息支持)。
關閉 WCF 測試客戶端
可以通過以下方式關閉 WCF 測試客戶端:
- 在“文件”菜單上單擊“退出”。或者,在 WCF 測試客戶端主窗口中單擊“關閉”。此外,這兩個操作還關閉 WCF 服務自動主機,如果 WCF 測試客戶端是由 Visual Studio 啓動的,則還會停止 Visual Studio 調試過程。
- 右擊通知區域中的“WCF 服務主機”圖標,然後單擊“退出”。這將關閉 WCF 服務自動主機和 WCF 測試客戶端並停止 Visual Studio 調試進程。