WCF-Testclient (WcfTestClient.exe)

Der Windows Communication Foundation-Testclient (WcfTestClient.exe) ist ein GUI-Tool, mit dem Benutzer Testparameter eingeben, die Eingabe an den Dienst senden und die zurückgesendete Antwort des Diensts anzeigen können. Zusammen mit dem WCF-Diensthost bietet er eine nahtlose Umgebung zum Testen von Diensten.

In der Regel finden Sie den WCF-Testclient (WcfTestClient.exe) am folgenden Speicherort: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE – „Community“ kann entweder „Enterprise“, „Professional“ oder „Community“ lauten, je nachdem, welche Edition von Visual Studio installiert ist.

Szenarien für das Verwenden des Testclients

In den folgenden Abschnitten werden die gängigsten Szenarien beschrieben, in denen Sie mit dem WCF-Testclient den Entwicklungsprozess optimieren können.

In Visual Studio

Der WCF-Diensthost startet den WCF-Testclient mit einem einzelnen Dienst.

Nachdem Sie ein neues WCF-Dienstprojekt erstellt und zum Starten des Debuggers auf F5 gedrückt haben, beginnt der WCF-Diensthost mit dem Hosten des Diensts in Ihrem Projekt. Der WCF-Testclient öffnet und zeigt dann eine Liste der in der Konfigurationsdatei definierten Dienstendpunkte. Sie können die Parameter testen und den Dienst aufrufen und anschließend den Vorgang wiederholen, um den Dienst kontinuierlich zu testen und zu validieren.

Der WCF-Diensthost startet den WCF-Testclient mit mehreren Diensten.

Mit dem WCF-Testclient können Sie auch ein Dienstprojekt debuggen, das mehrere Dienste enthält. Wenn der WCF-Testclient geöffnet wird, erstellt er automatisch eine Liste der Dienste in Ihrem Projekt und öffnet sie zum Testen.

Außerhalb von Visual Studio

Der WCF-Testclient (WcfTestClient.exe) kann auch außerhalb von Visual Studio aufgerufen werden, um einen beliebigen Dienst im Internet zu testen. Das Tool befindet sich im folgenden Verzeichnis:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE („Community“ kann entweder „Enterprise“, „Professional“ oder „Community“ lauten, je nachdem, welche Edition von Visual Studio auf dem Computer installiert ist.)

Doppelklicken Sie zum Verwenden des Tools auf den Dateinamen, um das Tool von dessen Verzeichnis aus zu öffnen, oder starten Sie das Tool mithilfe einer Befehlszeile.

Der WCF-Testclient verwendet als Befehlszeilenargumente eine beliebige Anzahl von URIs. Bei diesen handelt es sich um die URIs der Dienste, die getestet werden können.

wcfTestClient.exe URI1 URI2 …

Klicken Sie im geöffneten Fenster des WCF-Testclients auf Datei->Dienst hinzufügen, und geben Sie die Endpunktadresse des zu öffnenden Diensts ein.

WCF-Testclient-Benutzeroberfläche

Sie können den WCF-Testclient mit einem einzelnen Dienst oder mehreren Diensten verwenden.

Dienstoperationen

Der linke Bereich im Hauptfenster des WCF-Testclients enthält alle verfügbaren Dienste sowie die entsprechenden Endpunkte und Vorgänge.

Durch Doppelklicken auf einen Vorgang wird dessen Inhalt im rechten Bereich auf einer neuen Registerkarte angezeigt, die mit dem Namen des Vorgangs versehen ist.

Im linken Bereich werden auch die Clientkonfigurationsdateien aufgeführt. Doppelklicken Sie auf eines der Elemente, um den Inhalt der Datei im rechten Bereich in einem neuen Fenster mit Registerkarten anzuzeigen.

Eingeben der Testparameter

Doppelklicken Sie zur Anzeige der Testparameter auf einen Vorgang, um ihn im rechten Bereich zu öffnen. Die Parameter werden in der Ansicht Formatiert angezeigt, und Sie können beliebige Werte für die Parameter eingeben, um den Dienst zu testen.

Klicken Sie auf XML, um den XML-Code der Nachricht anzuzeigen. Klicken Sie auf Aufrufen, um sie an den Dienst zu senden.

Klicken Sie für einen DataSet-Parameter auf die Schaltfläche neben Bearbeiten…, um den Parameter in einem neuen Fenster zu bearbeiten, in dem das DataGrid angezeigt wird. Beachten Sie die Darstellung der Schaltflächen DataSet kopieren und DataSet einfügen. Wenn das Schema des DataSet-Objekts bei der ersten Bearbeitung unbekannt ist, ist das DataGrid leer. Sie müssen ein DataSet-Objekt mit dem gleichen Schema in das aktuelle Objekt im DataGrid einfügen. (Beachten Sie, dass Sie das Schema vor dem Einfügevorgang an anderer Stelle kopieren müssen.) Sie können ein DataSet-Objekt auch für künftige Nutzung kopieren, indem Sie auf die Schaltfläche DataSet kopieren klicken.

Die Antwort des Dienstes wird unter den Testparametern angezeigt.

Hinweis

Ist der erwartete Rückgabewert eine Zeichenfolge, wird das Ergebnis als Zeichenfolge in Anführungszeichen angezeigt, auch wenn die Eingabe selbst nicht in Anführungszeichen angegeben wurde.

Wenn Sie einen bestimmten Vorgang beim Erstellen des Dienstvertrags als einseitig festgelegt haben, wird keine Dienstantwort angezeigt. Sobald die Nachricht für die Lieferung in die Warteschlange gestellt wird, wird ein Dialogfeld angezeigt, dass die Nachricht erfolgreich gesendet wurde.

Sitzungsunterstützung

Das Kontrollkästchen Neuen Proxy starten auf der Registerkarte eines Dienstvorgangs ermöglicht das Aktivieren/Deaktivieren von Sitzungsunterstützung. Dieses Kontrollkästchen ist in der Standardeinstellung deaktiviert.

Wenn Sie Testparameter für einen bestimmten Vorgang (oder für einen anderen Vorgang im gleichen Dienstendpunkt) eingeben und mehrmals auf Aufrufen klicken, ohne das Kontrollkästchen zu aktivieren, wird für diese Vorgänge der gleiche Proxy verwendet, und der Dienststatus wird in mehreren Vorgänge beibehalten.

Ist das Kontrollkästchen Neuen Proxy starten aktiviert, wird bei jedem Klick auf Aufrufen ein neuer Proxy gestartet, das vorherige Sitzungsszenario beendet und der Dienststatus zurückgesetzt.

Bearbeiten der Clientkonfiguration

Im linken Bereich des Hauptfensters des WCF-Testclients sind die Clientkonfigurationsdateien aufgeführt. Doppelklicken Sie auf eines der Elemente, um im rechten Bereich die Inhalte der Datei anzuzeigen.

Bearbeiten mit dem Service Configuration Editor

Klicken Sie im linken Bereich mit der rechten Maustaste auf Konfigurationsdatei, und wählen Sie im Kontextmenü Mit SvcConfigEditor bearbeiten aus. Der Service Configuration Editor wird mit dem Clientkonfigurationsinhalt gestartet. Sie können die Konfiguration bearbeiten und innerhalb des Tools speichern.

Nach dem Speichern der Datei im Service Configuration Editor wird vom WCF-Testclient eine Warnmeldung mit dem Hinweis angezeigt, dass die Datei extern geändert wurde, und gefragt, ob die Datei neu geladen werden soll.

Bei Auswahl von Ja sind die im Editor vorgenommenen Änderungen im Konfigurationsinhalt auf der Registerkarte „Client.dll.config“ enthalten.

Bei Auswahl von Nein bleibt der Konfigurationsinhalt auf der Registerkarte „Client.dll.config“ unverändert, und der geänderte Inhalt wird automatisch in der Quelldatei gespeichert.

Wiederherstellen der Standardkonfiguration

Klicken Sie zum Verwerfen aller Änderungen und Wiederherstellen der standardmäßigen Clientkonfiguration im linken Bereich mit der rechten Maustaste auf Konfigurationsdatei. Wählen Sie im Kontextmenü Standardkonfiguration wiederherstellen aus. Der Standardkonfigurationswert wird geladen und der Inhalt der Registerkarte „Client.dll.config“ wiederhergestellt.

Überprüfen von Änderungen

Beim Laden gespeicherter Änderungen im WCF-Testclient wird die Konfiguration anhand des WCF-Schemas auf Gültigkeit geprüft. Sind Fehler vorhanden, wird ein Dialogfeld mit Fehlerdetails angezeigt.

Menüelemente, die Bearbeitungsfunktionen (also „Bearbeiten“, „Wiederherstellen“ usw.) unterstützen, sind während der Proxygenerierung, Binärkompilierung sowie während Dienstaufrufen deaktiviert. Beim Laden einer aktualisierten Konfiguration im WCF-Testclient ist auch das Aufrufen von Diensten deaktiviert.

Beibehalten der Clientkonfiguration

Auf der Registerkarte Tools->Optionen->Clientkonfiguration befindet sich die standardmäßig aktivierte Option Konfiguration beim Starten von Diensten immer neu generieren. Durch diese Option wird angegeben, dass immer dann, wenn ein Dienst durch den WCF-Testclient geladen wird, eine Konfigurationsdatei erstellt wird, die auf der neuesten Dienstvertragsdatei sowie auf den neuesten Datei „App.config“ basiert.

Deaktivieren Sie die Option Erneut generieren, wenn Sie die Clientkonfiguration für Ihren WCF-Dienst geändert haben und zum Debuggen des Diensts immer diese aktualisierte Datei verwenden möchten. Dadurch wird anstelle einer neu generierten Datei, die auf dem aktualisierten Dienst basiert, immer die zuvor aktualisierte Datei „Client.dll.config“ verwendet. Dies ist auch dann der Fall, wenn der Dienst aktualisiert und der WCF-Testclient erneut geöffnet wurde.

Die Konfigurationsdatei muss jedoch möglicherweise bearbeitet werden, um sie mit dem neu generierten Proxy abzustimmen. Stimmen der neu generierte Proxy und die Konfigurationsdatei aufgrund eines aktualisierten Diensts nicht überein, treten beim Aufrufen des Diensts entsprechende Fehler auf.

Achtung

Für den Fall, dass Sie die Clientkonfigurationsdatei geändert haben und später wieder verwenden möchten, finden Sie die Datei im folgenden Verzeichnis:

\Dokumente und Einstellungen\[Benutzerkonto]\Eigene Dateien\Test Client Projects.

Aktualisierte Anmeldeinformationen, die in der Clientkonfigurationsdatei gespeichert sind, sind durch die Zugriffsteuerungsliste (Access Control List, ACL) dieses Ordners geschützt.

Hinzufügen, Entfernen und Aktualisieren von Diensten

Dienst hinzufügen

Klicken Sie auf Datei->Dienst hinzufügen, um dem WCF-Testclient einen Dienst hinzuzufügen. Geben Sie anschließend den URI (die Endpunktadresse) des hinzuzufügenden Diensts ein. Bei der Adresse des Diensts kann es sich um eine mex-Adresse oder um eine WSDL-Adresse handeln.

Im Untermenü Zuletzt verwendete Dienste befindet sich eine Liste mit den zehn zuletzt hinzugefügten Dienstendpunkten. Wenn Sie einen davon auswählen, wird der angegebene Dienst dem WCF-Testclient hinzugefügt.

Das gleiche Ergebnis erzielen Sie, wenn Sie mit der rechten Maustaste auf den Stamm der Dienststruktur Meine Dienstprojekte klicken und anschließend Dienst hinzufügen auswählen.

Menüelemente, die das Hinzufügen eines Diensts unterstützen, sind während der Proxygenerierung, Binärkompilierung sowie während Dienstaufrufen deaktiviert. Auch das Aufrufen von Diensten ist deaktiviert.

Entfernen eines Diensts

Klicken Sie mit der rechten Maustaste auf den Dienstknoten des zu entfernenden Diensts, und wählen Sie Dienst entfernen aus, um einen Dienst aus dem WCF-Testclient zu entfernen.

Menüelemente, die das Entfernen eines Diensts unterstützen, sind während der Proxygenerierung, Binärkompilierung sowie während Dienstaufrufen deaktiviert. Auch das Aufrufen von Diensten ist deaktiviert.

Aktualisieren eines Diensts

Wenn eine Änderung an einem Dienst vorgenommen wird, während der WCF-Testclient ausgeführt wird, und Sie sicherstellen möchten, dass die Implementierung des WCF-Testclients für diesen Dienst auf dem neuesten Stand ist, klicken Sie mit der rechten Maustaste auf den Dienststamm des Diensts, und wählen Sie Dienst aktualisieren aus. Der Dienststatus wird nach der Aktualisierung zurückgesetzt.

Menüelemente, die das Aktualisieren eines Diensts unterstützen, sind während der Proxygenerierung, Binärkompilierung sowie während Dienstaufrufen deaktiviert. Auch das Aufrufen von Diensten ist deaktiviert.

Speicherort der vom Testclient generierten Dateien

Standardmäßig werden vom WCF-Testclient generierte Clientcode- und -konfigurationsdateien im Ordner „%appdata%\Local\temp\Test Client Projects“ gespeichert. Dieser Ordner wird nach Schließen des WCF-Testclients gelöscht. Wird im WCF-Testclient eine Konfigurationsdatei geändert, während die Option Konfiguration beim Starten von Diensten immer neu generieren deaktiviert ist, wird die geänderte Datei unter „Eigene Dateien\Test Client Projects Documents“ mit einer als Index fungierenden XML-Zuordnungsdatei (Metadatenadresse zu Dateiname) in den Ordner CachedConfig kopiert.

Alternativ kann der WCF-Testclient auch von einer Befehlszeile aus gestartet werden. Verwenden Sie in diesem Fall den Schalter /ProjectPath, um einen neuen Pfad zum Speichern der generierten Dateien anzugeben, oder den Schalter /RestoreProjectPath, um den Standardspeicherort wiederherzustellen. Die Syntax lautet wie folgt:

wcfTestClient.exe /ProjectPath [desired location]

Bei Ausführung dieses Befehls wird der WCF-Testclient nicht geöffnet. Nur der Speicherort des Ordners wird geändert. Dieser Befehl kann unabhängig davon ausgeführt werden, ob der WCF-Testclient ausgeführt wird oder nicht. Der neue Speicherort wird übernommen, wenn der WCF-Testclient neu gestartet wird. Die Informationen zum Speicherort können in der Registrierung oder in der Datei „WcfTestClient.exe.option“ (im Ordner „%appdata%\Local\temp\Test Client Projects“) gespeichert werden.

Vom WCF-Testclient unterstützte Funktionen

Die folgende Liste enthält die vom WCF-Testclient unterstützten Features:

  • Dienstaufruf: Anforderung/Antwort und unidirektionale Nachricht.

  • Bindungen: alle von Svcutil.exe unterstützten Bindungen.

  • Sitzungssteuerung

  • Nachrichtenvertrag

  • XML-Serialisierung

Die folgende Liste enthält die vom WCF-Testclient nicht unterstützten Features:

Schließen des WCF-Testclients

Sie können den WCF-Testclient auf folgende Weisen schließen:

  • Klicken Sie im Menü Datei auf Beenden. Klicken Sie anderenfalls im Hauptfenster des WCF-Testclients auf Schließen. Bei beiden Vorgängen wird auch der WCF-Dienst-Auto-Host geschlossen und der Visual Studio-Debugvorgang beendet, wenn der WCF-Testclient von Visual Studio gestartet wurde.

  • Klicken Sie im Benachrichtigungsbereich mit der rechten Maustaste auf das Symbol WCF-Diensthost, und wählen Sie dann Beenden aus. Dadurch werden der WCF-Dienst-Auto-Host und WCF-Testclient geschlossen, und der Visual Studio-Debugvorgang wird beendet.

Siehe auch