understanding assertions soapui soapui tutorial 5
Temos trabalhado no básico do SoapUI, como criando projetos, adicionando WSDL, enviando uma solicitação e recebendo respostas e gerar recursos de teste para acompanhá-los até o momento.
Neste quinto tutorial do SoapUI, aprenderemos tudo sobre asserções no SoapUI. Recomendamos fortemente que você siga a série completa de treinamento SoapUI nesta página para aprender todos esses recursos básicos.
O que você aprenderá:
- Introdução às afirmações
- Trabalhando com diferentes tipos de afirmações no SoapUI
- Conclusão
- Leitura recomendada
Introdução às afirmações
Como acontece com qualquer teste, temos que comparar o que queremos que o sistema faça e o que realmente está fazendo, para chegar a uma determinada validação ou asserção, que é o que é chamado no contexto de serviços da web. Como testadores, não importa se executamos 1000 ou mesmo milhões de etapas de teste, mas para nós, a comparação de resultados é o que determina o resultado de um teste.
Portanto, passaremos todo este artigo para entender como podemos fazer isso com o SoapUI, embora os serviços da web possam ser declarados manualmente. Além disso, uma asserção manual é demorada quando há várias respostas e respostas com muitos dados. As afirmações da SoapUI são excelentes para superar essas deficiências.
Asserções SOAPUI compare as partes / todas as mensagens de resposta com o resultado esperado. Podemos adicionar uma variedade de asserções fornecidas pelo SoapUI a qualquer etapa de teste. Cada tipo de asserção visa validações específicas na resposta, como texto correspondente, comparação de XPATH ou também podemos escrever consultas com base em nossa necessidade.
Quando as etapas de teste são executadas, as asserções associadas recebem a resposta para as respectivas etapas de teste. Se alguma resposta falhar, a respectiva asserção será processada e a etapa de teste correspondente será marcada como falha. Esta notificação pode ser visualizada na visualização do caso de teste. Além disso, podemos encontrar etapas de teste com falha no log de execução de teste. A amostra de tela de asserção da etapa de teste é a seguinte:

Na imagem acima, algumas das etapas do teste FALHARAM e algumas delas foram APROVADAS. O motivo é a afirmação.
Como discutimos anteriormente, se a condição de afirmação não for atendida com os resultados esperados, o resultado será FALHA.
Trabalhando com diferentes tipos de afirmações no SoapUI
Vamos agora ver como trabalhar com diferentes tipos de asserções como:
- Contém e não contém afirmações
- XPath match e
- Asserções de correspondência XQuery.
Em primeiro lugar, precisamos de um local de esquema WSDL válido.
Siga as etapas abaixo:
Passo 1. Crie um novo projeto SOAP pressionando CTRL + N e siga as etapas. Depois de criar o projeto, SOAPUI gera a lista de interfaces e as solicitações correspondentes.
Passo 2. Para adicionar o conjunto de testes a este projeto, siga estas etapas:
- Clique com o botão direito no nome da interface MedicareSupplierSoap
- Clique Gerar Suite de Teste opção do menu de contexto
- Clique em OK na janela abaixo que aparece:

- No próximo pop-up, digite o nome do conjunto de testes desejado e clique em OK
- SOAPUI PRO irá gerar o conjunto de testes junto com as solicitações no painel do navegador.
- No conjunto de testes, você verá algumas das etapas de teste com a etapa de solicitação SOAP.
Etapa 3. Para executar este conjunto de testes, clique duas vezes na etapa de solicitação e especifique o valor de entrada no respectivo local. Por exemplo, abra GetSupplierByCity solicitar e entrar Nova york entre as marcas da cidade.
- Inicie esta solicitação clicando no ícone RUN - isso receberá a resposta.
- Agora vamos adicionar afirmações. Para isso, clique no Afirmações guia presente na parte superior das guias de registro.
- Ao clicar com o botão direito, um menu pop-up aparecerá com algumas opções básicas relacionadas a afirmações, conforme abaixo:

# 1) Contém afirmação
Clique na opção Adicionar asserção ou clique na barra de ferramentas - Adicionar asserção a janela aparece na tela com diferentes tipos de afirmações.
1. Clique Conteúdo da Propriedade categoria da lista - os tipos de asserção associados e sua descrição são exibidos
2. Clique Contém afirmação e clique no botão Adicionar
3. Esta é a janela de configuração de asserção. Aqui mesmo, temos que especificar a condição esperada com base na resposta.
Por exemplo édeixa eu entrar Nova york texto neste campo de texto. Ignorar maiúsculas e minúsculas em comparação A caixa de seleção será ignorada mesmo se o valor esperado estiver em maiúsculas ou minúsculas.

4. Agora execute o conjunto de testes e verifique os resultados. Como você viu na janela do conjunto de testes, o verde indica a execução bem-sucedida e o vermelho indica falha.
# 2) Não contém afirmação
Podemos usar a afirmação “não contém” para validar solicitações em cenários negativos. Podemos usar GetSupplierByZipCode pedido para aprender isso.
Abra a guia de solicitação clicando duas vezes nela. Na solicitação de entrada, insira o código postal inválido no local apropriado, como 10029 . Execute esta solicitação agora. Verifique os dados da resposta que contêm os detalhes do fornecedor para o CEP fornecido - dê uma olhada na imagem abaixo:
(Clique na imagem para ampliá-la)

A afirmação “não contém” é destacada na cor verde à medida que é executada com sucesso.
Na janela de configuração, configuramos com valor esperado positivo conforme abaixo:

Ele retorna verdadeiro se o valor condicional esperado não for encontrado e retorna falso se o valor esperado for encontrado na mensagem de resposta.
Da mesma forma, podemos alterar a condição e executar a solicitação novamente. Ele gera os resultados de acordo.
# 3) Asserção de correspondência XPath
A asserção de correspondência XPath é um pouco diferente em termos de que irá afirmar a resposta usando dados de resposta reais.
Por exemplo , se tivermos um serviço web de autenticação de login que autenticará as credenciais do usuário e enviará a confirmação ao cliente com algum tipo de dado booleano que pode ser TRUE ou FALSE na forma de XML.
Como você sabe, os documentos XML são construídos por tags. Portanto, ao especificar o valor esperado na configuração, ele deve estar na forma de XML.
como usar um arquivo .bin
Vamos tentar fazer isso:
Adicione mais uma afirmação para o GetSupplierByCity solicitação. Na janela Adicionar Asserção, clique no botão Conteúdo da Propriedade categoria e clique em XPath match afirmação.

A janela abaixo é exibida:

A seção superior é a parte da declaração e a seção inferior é a parte do resultado esperado.
Quando clicamos no Declarar opção, obteremos alguns scripts de declaração gerados automaticamente como a seguir:
declare namespace soap = ’http: //schemas.xmlsoap.org/soap/envelope/’;
declarar namespace ns1 = ’http: //www.webservicex.net/’;
Nos scripts acima, a primeira linha denota a resposta que deve ser dados XML e tags SOAP incluídas. Na próxima linha, toda a resposta será atribuída ou copiada para o ns1 variável de namespace durante a execução. Se quisermos filtrar dados específicos de toda a resposta, temos que adicionar o seguinte script.
// ns1: SupplierData (1)
Como você sabe, se você executar o GetSupplierByCity pedido, ele irá produzir a resposta que contém a lista de dados pessoais do fornecedor que pertence a Cidade de Nova York .
Aqui, nós usamos XPath Match expressão para extrair os detalhes pessoais do fornecedor específico da resposta em massa. Para isso, usamos um ns1 variável. Agora clique no Selecione a partir de uma corrente botão.
Em seguida, SOAPUI gera o seguinte resultado:
0127051883 KMART CORP 250 W 34TH ST NEW YORK NY 10119 0002 (212)760-1242 04 Consulte esta imagem:

Aqui nos dados de resposta, você pode ver apenas os dados pessoais de um fornecedor. Com base no número que está presente dentro dos colchetes angulares, a saída será gerada.
Até agora, trata-se de escolher a parte da resposta que é necessária, como podemos / estamos usando XPath Match afirmação?
Vamos a isso: Clique no botão Salvar quando estiver OK com a resposta.
Inicialmente, se você executasse este serviço depois de configurar a asserção de correspondência XPath sem alterações, o resultado será uma resposta bem-sucedida, com o status destacado em verde.
Mas vamos mudar o parâmetro de entrada na solicitação de entrada para algo que seja uma cidade inválida - “XYZ ou ABC”. Execute a solicitação e verifique os resultados, bem como o status da asserção. Obteremos uma resposta de falha e uma indicação de status em vermelho para a declaração. Como já havíamos especificado que os dados específicos do fornecedor devem estar presentes na resposta do serviço na configuração do resultado esperado e quando o nome da cidade é inválido, esse fornecedor claramente não está presente.
É assim que podemos afirmar a resposta XML usando a asserção de expressão XPath Match. Concordamos que isso é bastante simples para começar, mas se você tentar respostas de serviço diferentes, terá uma ideia muito melhor.
Também podemos usar funções agregadas na expressão XPath Match. Eles são Sum, Min, Max, Count e Avg.
Por exemplo , se quisermos saber o número total de fornecedores contados nos resultados esperados, escreva o seguinte script.
contagem (// ns1: SupplierData) e retorna 536 como um resultado. Lembre-se de que todas as funções de agregação devem estar em letras minúsculas.
# 4) Asserção de correspondência XQuery
Isso é ligeiramente semelhante à afirmação XPath Match. Como vimos na configuração de asserção XPath Match, haverá duas seções - declaração e resultado esperado.
- Adicionar asserção XQuery Match para a solicitação
- Na janela de configuração, clique em declarar botão e escreva o seguinte script
- Agora clique Selecione do atual botão
- SOAPUI gera a resposta para o script
A expressão XQuery também suporta a expressão XPath Match, mas possui sua própria sintaxe de script que não pode ser usada na asserção de correspondência XPath.
Por exemplo :
Veremos um exemplo para buscar todas as respostas de dados do fornecedor usando a expressão XQuery. Veja este exemplo de captura de tela para entender melhor.

Script real:
declare namespace soap='http://schemas.xmlsoap.org/soap/envelope/'; declare namespace ns1='http://www.webservicex.net/'; { for $x in //ns1:SupplierData return $x } Existem mais funções integradas disponíveis para uso na expressão XQuery. Eles estão onde, pedir por, para, devolver e assim por diante.
Conclusão
Bem, essas são as afirmações mais comumente usadas para você.
O ponto de ênfase aqui é que: Asserções são mais importantes para prever o resultado esperado dos serviços da web com precisão. Essa é a razão pela qual é um dos principais recursos no SOAPUI PRO .
Próximo tutorial : No próximo tutorial, vamos nos divertir com noções básicas de script e muito mais ...
Por favor, fique conectado. Como sempre, seus comentários, perguntas e sugestões são muito bem-vindos.
Leitura recomendada
- Como realizar testes orientados a dados no SoapUI Pro - Tutorial # 14 do SoapUI
- Mais de 15 tutoriais SoapUI: a melhor ferramenta de teste de API de serviços da Web
- Tutoriais detalhados do Eclipse para iniciantes
- Como usar propriedades em SoapUI Groovy Script - SoapUI Tutorial # 7
- 7 recursos importantes do SoapUI e SoapUI Pro - Tutorial 2
- Trabalhando com propriedades SoapUI - Tutorial # 8 do SoapUI
- 4 características importantes do SoapUI Pro para Pro Audience - SoapUI Tutorial # 12
- Processo de instalação e download do SoapUI passo a passo - Tutorial # 3 do SoapUI