Cliente de Teste do WCF (WcfTestClient.exe)
O Cliente de Teste (WcfTestClient.exe) do Windows Communication Foundation (WCF) é uma ferramenta da GUI que permite que os usuários digitem parâmetros de teste, enviem essa entrada ao serviço e exibam a resposta retornada pelo serviço. Ele fornece uma experiência de teste de serviço perfeita quando combinado com o host de serviço WCF.
Normalmente, você pode encontrar o cliente de teste do WCF (WcfTestClient.exe) no seguinte local: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE
– A comunidade pode ser de "Enterprise", "Professional" ou "Community", dependendo do nível do Visual Studio instalado.
Cenários para uso do Cliente de Teste
As seções a seguir abordam os cenários mais comuns onde você pode usar o Cliente de Teste do WCF para simplificar seu processo de desenvolvimento.
No Visual Studio
O Host de Serviço WCF começa o Cliente de Teste do WCF com o um único serviço
Depois de criar um novo projeto de serviço WCF e pressionar F5 para iniciar o depurador, o Host de Serviço do WCF começa a hospedar o serviço em seu projeto. Em seguida, o Cliente de Teste do WCF é aberto e exibe uma lista de pontos de extremidade de serviço definidos no arquivo de configuração. Você pode testar os parâmetros e chamar o serviço, e repetir esse processo para testar e validar continuamente o serviço.
O Host de Serviço WCF começa o Cliente de Teste do WCF com vários serviços
Você também pode usar o Cliente de Teste do WCF para ajudar a depurar um projeto de serviço que contenha vários serviços. Quando o Cliente de Teste do WCF é aberto, ele itera automaticamente a lista de serviços em seu projeto e abre-os para teste.
Fora do Visual Studio
Você também pode chamar o Cliente de Teste do WCF (WcfTestClient.exe) fora do Visual Studio para testar um serviço qualquer na Internet. Para localizar a ferramenta, vá para o seguinte local:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE
(em que a comunidade pode ser de "Enterprise", "Professional" ou "Community", dependendo do nível do Visual Studio instalado no computador)
Para usar a ferramenta, clique duas vezes no nome do arquivo para abri-lo neste local ou inicie-a em uma linha de comando.
O Cliente de Teste do WCF usa um número arbitrário de URIs como argumentos de linha de comando. Estes são os URIs de serviços que podem ser testados.
wcfTestClient.exe URI1 URI2 …
Após a abertura da janela Cliente de Teste do WCF, clique em Arquivo->Adicionar Serviço e digite o endereço do ponto de extremidade do serviço que deseja abrir.
Interface do usuário do Cliente de Teste do WCF
Você pode usar o Cliente de Teste do WCF com um serviço simples ou com vários serviços.
Operações de serviço
O painel esquerdo da janela principal do Cliente de Teste do WCF lista todos os serviços disponíveis, juntamente com seus respectivos pontos de extremidade e operações.
Clicando duas vezes em uma operação, você pode exibir seu conteúdo no painel direito em um nova guia com o nome da operação.
O painel esquerdo também lista arquivos de configuração de cliente. Clique duas vezes em alguns dos itens para exibir o conteúdo do arquivo em uma nova janela com guias no painel direito.
Inserindo parâmetros de teste
Para exibir os parâmetros de teste, clique duas vezes em uma operação para abri-la no painel direito. Por padrão, os parâmetros são mostrados no modo de exibição Formatado e você pode inserir valores arbitrários para os parâmetros para testar o serviço.
Para exibir o XML da mensagem, clique em XML. Para enviá-los ao serviço, clique em Invocar.
Para um parâmetro de conjunto de dados, clique no botão … ao lado de Editar… para editá-lo em uma nova janela que mostra o DataGrid. Observe a aparência dos botões Copiar conjunto de dados e Colar conjunto de dados. Se o esquema do objeto DataSet for desconhecido na primeira edição, o DataGrid estará vazio. Você precisa colar um objeto DataSet com o mesmo esquema no objeto atual no DataGrid. (Observe que você precisa copiar o esquema de outro lugar antes da operação colar.) Também é possível um objeto de conjunto de dados para uso futuro clicando no botão Copiar Conjunto de dados.
A resposta do serviço aparece abaixo dos parâmetros de teste.
Observação
Se o valor de retorno esperado for uma cadeia de caracteres, o resultado será exibido como uma cadeia de caracteres entre aspas, mesmo que a entrada não tenha sido fornecida entre aspas.
Se você tiver definido uma operação específica como unidirecional quando criou o contrato do serviço, nenhuma resposta do serviço será exibida. Assim que a mensagem for enfileirada para entrega, uma caixa de diálogo pop-up será exibida notificando que a mensagem foi enviada com êxito.
Suporte de sessão
A caixa de seleção Iniciar um novo proxy na guia de uma operação de serviço permite alternar o suporte de sessão. Por padrão, essa caixa está desmarcada.
Quando você insere parâmetros de teste para uma operação específica (ou outra operação no mesmo ponto de extremidade de serviço) e clica em Invocar várias vezes com a caixa de seleção limpa, essas operações compartilham um proxy e o status do serviço é persistido em várias operações.
Se a caixa de seleção Iniciar um novo proxy estiver marcada, um novo proxy será iniciado para cada Invocar, o cenário da sessão anterior será encerrado e o status do serviço será redefinido.
Editando a configuração do cliente
O painel esquerdo da janela principal do Cliente de Teste do WCF lista os arquivos de configuração de cliente. Clique duas vezes em alguns dos itens para exibir o conteúdo do arquivo no painel direito.
Editar com o Service Configuration Editor
Clique com o botão direito do mouse em Arquivo de Configuração no painel esquerdo e selecione o menu de contexto Editar com SvcConfigEditor. O Service Configuration Editor é iniciado com o conteúdo de configuração do cliente. Você pode editar a configuração e salvá-la na ferramenta.
Depois de salvar o arquivo no Service Configuration Editor, o Cliente de Teste do WCF exibe uma mensagem de aviso para informá-lo que o arquivo foi modificado externamente e pergunta se você deseja recarregá-lo.
Se você selecionar Sim, o conteúdo da configuração na guia “Client.dll.config” refletirá as alterações que você fez no editor.
Se você selecionar Não, o conteúdo da configuração na guia de “Client.dll.config” permanecerá inalterado e o conteúdo modificado será salvo no arquivo de origem.
Restaurar para a configuração padrão
Se quiser cancelar todas as alterações e restaurar a configuração de cliente padrão, clique com o botão direito do mouse em Arquivo de Configuração no painel esquerdo e selecione o menu de contexto Restaurar para Configuração Padrão. O valor de configuração padrão é carregado e o conteúdo na guia "Client.dll.config" é restaurado.
Validar alterações
Quando alterações salvas estiverem sendo carregadas no Cliente de Teste do WCF, a validade da configuração será verificada em relação ao esquema do WCF. Se forem encontrados erros, uma caixa de diálogo será exibida para mostrar os detalhes do erro.
Durante a geração do proxy, da compilação binária ou do serviço que fez a invocação, os itens de menu que dão suporte à edição (isto é, “Editar…”, “Restaurar…”, e assim por diante) ficam desabilitados. A chamada do serviço também é desabilitada ao carregar a configuração atualizada no Cliente de Teste do WCF.
Persistir a configuração do cliente
A guia Ferramentas->Opções->Configuração do Cliente contém uma opção Sempre Regenerar Configuração ao Iniciar Serviços, que é habilitada por padrão. Esta opção especifica que, cada vez que o Cliente de Teste do WCF carrega um serviço, ele gera um arquivo de configuração novamente com base no contrato de serviço e nos arquivos App.config mais recentes de serviço.
Se você editou a configuração do cliente para o serviço e desejar sempre usar esse arquivo atualizado para depurar seu serviço, poderá desmarca a opção Regenerar. Ao fazer isso, mesmo quando você atualizar o serviço e reabrir o Cliente de Teste do WCF, o arquivo Client.dll.config será o que você atualizou anteriormente em vez de um arquivo regenerado com base no serviço atualizado.
No entanto, talvez você precise editar o arquivo de configuração para torná-lo consistente com o proxy regenerado. Se o proxy e o arquivo de configuração regenerados forem incompatíveis devido a um serviço atualizado, ocorrerão erros quando o serviço for chamado.
Cuidado
Se você tiver modificado o arquivo de configuração do cliente e o selecionar para reutilização no futuro, poderá localizar o arquivo no seguinte local:
\Documents and Settings\[Conta de Usuário]\Meus Documentos\Test Client Projects.
Todas as informações de credenciais atualizadas armazenadas no arquivo de configuração do cliente são protegidas pela ACL (lista de controle de acesso) dessa pasta.
Adicionando, removendo e atualizando serviços
Adicionar serviço
Clique em Arquivo->Adicionar Serviço para adicionar um serviço ao Cliente de Teste do WCF. Em seguida, é necessário digitar o URI (endereço do ponto de extremidade) do serviço a ser adicionado. O endereço do serviço pode ser um endereço MEX ou um endereço WSDL.
Também é possível encontrar uma lista dos 10 pontos de extremidade de serviços adicionados recentemente no submenu Serviços Recentes. Se você selecionar um deles, o serviço especificado será adicionado ao Cliente de Teste do WCF.
Você também pode clicar com o botão direito do mouse na raiz da árvore de serviço Meus Projetos de Serviço e selecionar Adicionar Serviço para obter o mesmo resultado.
Durante a geração do proxy, da compilação binária ou da chamada do serviço, os itens de menu que dão suporte à edição de um serviço estão desabilitados. A chamada de serviço também está desabilitada.
Remover serviço
Clique com o botão direito do mouse na raiz do serviço a ser removido e selecione Remover Serviço para remover um serviço do Cliente de Teste do WCF.
Durante a geração do proxy, da compilação binária ou da chamada do serviço, os itens de menu que dão suporte à remoção de um serviço estão desabilitados. A chamada de serviço também está desabilitada.
Atualizar serviço
Se uma alteração tiver sido feita no serviço enquanto o Cliente de Teste do WCF estiver em execução, e você desejar garantir que a implementação do Cliente de Teste do WCF para esse serviço esteja atualizada, clique com o botão direito do mouse na raiz do serviço e selecione Atualizar Serviço. Observe que depois da atualização, o status do serviço é redefinido.
Durante a geração do proxy, da compilação binária ou da chamada do serviço, os itens de menu que dão suporte à atualização de um serviço estão desabilitados. A chamada de serviço também está desabilitada.
Local dos arquivos gerados pelo Cliente de Teste
Por padrão, o Cliente de Teste do WCF armazena o código do cliente e os arquivos de configuração gerados na pasta "%appdata%\Local\temp\Test Client Projects". Essa pasta é excluída depois que o Cliente de Teste do WCF é fechado. Se um arquivo de configuração for modificado no Cliente de Teste do WCF, e a opção Sempre Regenerar Configuração ao Iniciar Serviços estiver desabilitada, o arquivo modificado será copiado para a pasta “Cached Config” em “Meus Documentos\Test Client Projects Documents” com um arquivo XML de mapeamento (endereço dos metadados para nome do arquivo) como um índice.
Você também pode iniciar o Cliente de Teste do WCF em uma linha de comando, use a opção /ProjectPath
para especificar um novo caminho desejado para armazenar os arquivos gerados, ou use a opção /RestoreProjectPath
para restaurar o local padrão. A sintaxe dela é a seguinte:
wcfTestClient.exe /ProjectPath [desired location]
A execução desse comando não abre o Cliente de Teste do WCF. Apenas o local da pasta é alterado. Você pode executar esse comando se o Cliente de Teste do WCF estiver ou não em execução. O novo local será aplicado quando o Cliente de Teste do WCF for reiniciado. As informações sobre localização podem ser salvas no Registro, ou no arquivo WcfTestClient.exe.option na pasta “%appdata%\Local\temp\Test Client Projects".
Recursos suportados pelo Cliente de Teste do WCF
A lista a seguir relaciona os recursos com suporte pelo Cliente de Teste do WCF:
Chamada de serviço: solicitação/resposta e mensagem unidirecional.
Associações: todas as associações suportadas por Svcutil.exe.
Sessão de controle.
Contrato de mensagens.
Serialização XML.
A lista a seguir relaciona os recursos que não são têm suporte pelo Cliente de Teste do WCF:
Tipos: Stream, Message, XmlElement, XmlAttribute, XmlNode, tipos que implementam a interface de IXmlSerializable, incluindo o atributo XmlSchemaProviderAttribute relacionado e os tipos XDocument e XElement e o tipo DataTable do ADO.NET.
Contrato dúplex.
Transação.
Segurança: CardSpace, certificado e nome de usuário/senha.
Associações: WSFederationbinding, algumas associações de contexto e associação HTTPS, WebHttpbinding (suporte a mensagem de resposta de Json).
Fechando o Cliente de Teste do WCF
Você pode fechar o Cliente de Teste do WCF das seguintes maneiras:
No menu Arquivo , clique em Sair. Como alternativa, na janela principal do Cliente de Teste do WCF, clique em Fechar. Essas duas ações desligam a Hospedagem Automática do Serviço WCF e interrompem o processo de depuração do Visual Studio se o Cliente de Teste do WCF for iniciado pelo Visual Studio.
Clique com o botão direito do mouse no ícone do Host do Serviço WCF na área de notificação e clique em Sair. Isso encerra o Host Automático do Serviço WCF e o Cliente de Teste do WCF e interrompe o processo de depuração do Visual Studio.