SlideShare uma empresa Scribd logo
1 de 39
Automação de Testes com
SoapUI
Fundamentos
Mateus Caletti
linkedin.com/in/mateuscaletti/
github.com/mateuscaletti
slideshare.net/mateuscaletti
Criando um projeto...
O projeto é onde você organizará os
seus testes.
Passo-a-passo:
• Tenha a URL que contenha o WSDL que deseja testar
• Vá em “File -> New SOAP Project”
• Insira um nome para o projeto e a URL com o WSDL
do serviço
• Pronto, deverá aparecer algo como:
Criando uma Suíte de Teste...
A Suíte de Teste (TestSuite) é um
conjunto de cenários de teste.
Passo-a-passo:
• Clique com botão direito sobre o nome do seu
projeto anteriormente criado e vá em “New
TestSuite”
• Nomeie o seu TestSuite
• Uma janela com o seu TestSuite deverá aparecer na
tela:
Criando um cenário de teste...
O cenário de teste (TestCase) é onde
você configurará os passos necessários
para a execução do seu teste.
Passo-a-passo:
• Clique com botão direito sobre o nome do seu
TestSuite e vá em “New TestCase”
• Nomeie o seu TestCase
• Uma janela com o seu TestCase deverá ser aberta:
Criando os passos dos seu teste...
Todo TestCase requer que sejam incluídos os
passos (TestStep) para sua execução. São as
tarefas automatizadas para que o teste seja
concluído.
Passo-a-passo:
• Expanda a árvore do seu TestCase e clique com botão direito sobre
“Test Steps” e vá em “Add Step”
• Uma lista de opções será apresentada. Cada qual representa um
tipo de tarefa que pode ser adicionada.
• Para este exemplo, iremos incluir uma atividade mais básica em
teste de serviço que é o “SOAP Request”
• Nomeie a sua atividade
• Escolha a operação do serviço que você importou lá no início
deste tutorial e clique em “OK”
• Aparecerá uma janela para confirmar a criação da tarefa, clique
em “OK” novamente.
... continua ...
Criando os passos dos seu teste...
Todo TestCase requer que sejam incluídos
os passos (TestStep) para sua execução.
São as tarefas automatizadas para que o
teste seja concluído.
Passo-a-passo:
• Agora você precisará configurar o request do seu
serviço Soap
• Você poderá testar normalmente a requisição até que
ela esteja OK
• Pronto! Seu TestStep está criado!
Obs.: Mais adiante, iremos tratar dos principais tipos de TestSteps!
... continua ...
Criando suas asserções...
Para automatizar um teste, você precisará estabelecer quais
são as condições para que o teste conclua com sucesso ou
falha. Neste caso, você irá precisar trabalhar com
“Assertions”, que são condições que você entende que
devem ser verdadeiras, caso contrário, o teste estará
falhando.
Passo-a-passo:
• Na janela do seu “TestStep”, haverá um menu na barra inferior chamado
“Assertions”, clique sobre este botão
• Uma lista de “Assertions” será aberta. Por padrão, em um “SOAP Request”, estará
criada um “SOAP Request – VALID”
• Vamos criar um novo... Clique no sinal de + na barra superior desta lista
• Uma janela com várias opções será aberta. Na versão gratuita do SoapUI, apenas
algumas opções estão disponíveis. Vamos utilizar uma bem simples em “Property
Content -> Not Contains” e clique em “Add”
• Adicione a trecho do retorno que você deseja que não contenha no retorno.
• Por que usaremos este? Como nosso objetivo do teste é validar o “Cenário
Positivo”, isto é, que eu obtenha o valor da série indicada. Então, quando o
serviço retorna erro, ele apresenta algo como a imagem ao lado. Nossa condição
é que “Não contenha” a string “<faultstring>”. Caso tenha, o teste falhará.
... continua ...
Criando suas asserções...
Para automatizar um teste, você precisará
estabelecer quais são as condições para
que o teste conclua com sucesso ou falha.
Neste caso, você irá precisar trabalhar
com “Assertions”, que são condições que
você entende que devem ser verdadeiras,
caso contrário, o teste estará falhando.
Passo-a-passo:
• Instantaneamente, o teste falhará, pois a string
“<faultstring>” estará contida no retorno (response),
pois incluímos, nos parâmetros de entrada, um código
que não existe no banco de dados do BCB.
• Para que o teste passe, vamos alterar o parâmetro de
entrada que a gente sabe que existe.
Vamos rodar o teste...
Podemos rodar o teste conforme o escopo.
Escopo: TestStep
Podemos rodar apenas uma tarefa para validá-la. Para isso, basta dar
duplo-clique sobre o TestStep desejado e clicar no botão “Play”.
Escopo: TestCase
Podemos rodar o TestCase inteiro. Neste caso, ele irá rodar todos
os TestSteps na sequência em que você configurou. Apresentará
uma tela contendo o resumo e o log da execução.
Para isso, basta dar duplo-clique sobre o TestStep desejado e
clicar no botão “Play”.
Escopo: TestSuite
Podemos rodar o TestSuite inteiro. Neste caso, ele irá rodar todos
os TestCase na sequência em que você configurou. Apresentará
uma tela contendo o resumo e o log da execução.
Para isso, basta dar duplo-clique sobre o TestSuite desejado e
clicar no botão “Play”.
Automação de Testes com
SoapUI
Tópicos Avançados:
Conhecendo as Custom Properties
Trabalhando com Propriedades de Ambiente
(Custom Properties)
Propriedades Personalizadas
Existem três tipos de propriedades
personalizadas que podem ser
configuradas.
1. No nível do “Projeto”
2. No nível do “TestSuite”
3. No nível do “TestCase”
Para visualizá-los e manipulá-las, você
deve selecionar o nível desejado. Na
parte inferior esquerdo, uma aba
“Custom Properties” será apresentada.
... continua ...
(Custom Properties)
Propriedades Personalizadas
Mas para que serve?
Podem ser utilizadas para a definição de
dados que poderão ser acessadas nos
TestSteps que estiverem dentro do seu
escopo.
Elucide um exemplo, por favor!
Na versão gratuita, não há funcionalidade
que permita definirmos os “Ambientes” em
que será rodado os testes, isto é, caso eu
precise rodar o teste no ambiente de
“Teste” e, posteriormente, no ambiente de
“Homologação”. Uma forma de contornar
isso é utilizando as propriedades.
A seguir iremos apresentar como...
... continua ...
(Custom Properties)
Propriedades Personalizadas
Mãos na massa...
1. No nível do Projeto, iremos definir a variável
“urlWsdl” conforme a imagem ao lado;
2. Iremos criar um TestStep de “SOAP Request” para
exemplificar;
3. No campo em que está o “endpoint”, iremos
substituir a URL pela tag “${#Project#urlWsdl}”
4. Aperte no play e verá que ele utilizará o valor que
estiver definido na variável. Caso seja necessário
alternar entre ambientes, basta alterar esta variável.
Outros escopos...
Você poderá utilizar as propriedades personalizadas nos
escopos mencionados, bastando referenciá-las da seguinte
maneira:
1. Projeto = ${#Project#nomeDaPropriedade}
2. TestSuite = ${#TestSuite#nomeDaPropriedade}
3. TestCase = ${#TestCase#nomeDaPropriedade}
Automação de Testes com
SoapUI
Tópicos Avançados:
Explorando os diferentes tipos de TestStep
Trabalhando com Properties
Properties
Trabalhando com Propriedades
Este TestStep serve para carregar
variáveis de propriedades que
poderão ser consumidas por outros
TestStep subsequentes.
Existem duas formas:
1. Incluir variáveis manualmente e
mantendo os valores por dentro
da interface do SoapUI
2. Informar um arquivo no formato
.properties para carregar as
variáveis e seus valores
... continua ...
Properties
Trabalhando com Propriedades
Manualmente
1. Clique sobre + na barra superior da
janela para adicionar uma nova
variável
2. Adicione o nome da variável e seu
respectivo valor
3. Repita o processo para tantas
variáveis desejar
4. Para editar os valores, basta dar
duplo-clique sobre o campo
desejado
... continua ...
Properties
Trabalhando com Propriedades
Via arquivo .properties
1. Crie um diretório chamado “resources” dentro
do diretório em que está salvo o seu projeto
2. Crie um arquivo no formato .properties no
diretório recém criado
3. Vamos adicionar um novo TestStep chamado
“PropertiesArquivo”
4. Ao lado do campo “Load from:”, clique no ícone
para selecionar o arquivo
5. Selecione o arquivo criado
6. O SoapUI irá perguntar se deseja criar as
variáveis. Clique em “Sim”
7. Pronto! As variáveis foram criadas e seus
valores serão recarregadas sempre que rodar
seu teste.
... continua ...
Properties
Trabalhando com Propriedades
Via arquivo .properties
1. Mas temos um problema! Caso você
precise movimentar o diretório do seu
projeto, os apontamentos do arquivo
.properties se perderão.
2. Para resolver isso, configure o “Resource
Root” para ser o diretório do seu projeto.
3. Agora retorne para o TestStep
“PropertiesArquivo” e coloque:
“resources/Soap.properties”
4. Rode novamente o seu teste
5. Pronto! Agora o caminho do properties
será relativo ao diretório do seu projeto.
Automação de Testes com
SoapUI
Tópicos Avançados:
Explorando os diferentes tipos de TestStep
Transferindo dados para dentro das propriedades
Property Transfer
Transferindo dados para dentro das propriedades
Agora já sabemos trabalhar com o
TestStep de propriedades, podemos
realizar alguns usos deste recurso.
Digamos que queremos transferir um
valor retornado de um TestStep
“SOAP Request” para ser utilizado
mais adiante.
Para isso, iremos utilizar o TestStep
de Property Transfer.
Property Transfer
Transferindo dados para dentro das propriedades
No nosso exemplo, iremos realizar uma
requisição SOAP para descobrir a cotação de
uma moeda em um determinado dia e
queremos que este valor seja transferido para
uma propriedade.
Para isso, siga o passo-a-passo:
1. Antes de tudo, crie uma variável em algum
TestStep para que você possa ter para onde
transferir o valor neste exemplo
2. Adicione o TestStep “Property Transfer”
3. Nomeie ele para um nome que faça sentido
no teste
4. Uma janela de configuração será
apresentada
... continua ...
Property Transfer
Transferindo dados para dentro das propriedades
5. Para nosso exemplo, criamos um TestStep
chamado “CotacaoResult”
6. Adicione uma nova instrução de transferência
7. Nomeie de uma maneira que faça sentido no
teste.
8. Para configurar, iremos estabelecer dois pontos:
• Origem (source): para a origem, iremos informar o TestStep
“SOAP Request” e sua “Property” chamada “Response”. Isso
indicará ao SoapUI para que trabalhemos com o retorno da
chamada do serviço. Iremos aplicar um comando XPath para
extrair a informação desejada
• Destino (target): para o destino, iremos informar o TestStep
“CotacaoResult” e sua “Property” chamada “resultCotacao”,
conforme variável criada anteriormente.
9. Podemos clicar em play para verificar qual valor
foi transferido
10. Pronto! Seu comando de transferência foi
realizado!
... continua ...
Property Transfer
Transferindo dados para dentro das propriedades
É muito importante o conhecimento
em XPath para o uso deste TestStep.
Com ele, conseguimos obter
resultados incríveis com pouca linha
de comando.
No nosso exemplo, apesar do retorno
da requisição SOAP ter uma alta
complexidade, com apenas um
comando, obtivemos exatamente o
valor desejado.
... continua ...
Automação de Testes com
SoapUI
Tópicos Avançados:
Explorando os diferentes tipos de TestStep
Trabalhando com HTTP Request
HTTP Request
Trabalhando com HTTP Requests
Com o TestStep “HTTP Request” é possível
realizar uma chamada à uma URL na Web. É
bastante útil para acionar API’s em Rest ou
simplesmente verificar o resultado em uma
determinar página.
O SoapUI permite a execução de comandos
GET, POST, PUT, DELETE, ...
Vamos adicionar então...
1. Adicione o TestStep “HTTP Request”
2. Nomeie de uma forma que faça sentido
no seu teste
3. Informe o endpoint que deseja acessar,
bem como forneça os parâmetros
necessários e escolha o método de
requisição
... continua ...
HTTP Request
Trabalhando com HTTP Requests
4. Clique em play e verifique o
resultado
5. Agora podemos inserir “Assertions”
para garantir que o retorno esteja
OK
6. Dado que o retorno está numa
estrutura JSON, iremos aplicar um
assertion do tipo “JsonPath Match”
7. Iremos configurar para que seja
testado se o status seja “ok”
8. Pronto! Veremos que o teste passou!
Automação de Testes com
SoapUI
Tópicos Avançados:
Explorando os diferentes tipos de TestStep
Trabalhando com JDBC Request
JDBC Request
Trabalhando com JDBC Requests
O TestStep “JDBC Request” permitirá
que você realize acessos diretos ao seu
banco de dados, para a execução de
consultas.
Para isso, é necessário baixar os drivers
de conexão do seu banco de dados e
configurá-los no SoapUI.
1. Acesse e baixe
https://www.soapui.org/jdbc/refere
nce/jdbc-drivers.html
2. Coloque o arquivo .jar dentro do
diretório binext da sua instalação
do SoapUI
... continua ...
JDBC Request
Trabalhando com JDBC Requests
Posto que configuração do seu JDBC
Driver esteja feita, iremos adicionar o
TestStep e testá-lo.
1. Adicione o TestStep “JDBC Request”
2. Você deverá informar o “Driver” e a
“Connection String”
3. Clique em “TestConnection” para
verificar se a conexão está
corretamente configurada
4. Informe uma “SQL Query” para ser
realizada no banco de dados
5. Visualize o retorno no lado esquerdo
6. Pronto! Você conseguiu acessar os
dados de banco de dados! ... continua ...
JDBC Request
Trabalhando com JDBC Requests
Os drivers e as Connection Strings
podem ser consultadas no site
https://www.soapui.org/jdbc/referen
ce/jdbc-drivers.html
Automação de Testes com
SoapUI
Tópicos Avançados:
Explorando os diferentes tipos de TestStep
Trabalhando com SOAP Request
SOAP Request
Trabalhando com SOAP Requests
O TestStep “SOAP Request” permitirá
que você realize testes funcionais em
chamadas de webservices expostos
em SOAP.
Conforme explicado no início, você
precisará da URL contendo o WSDL
de seu serviço.
... continua ...
SOAP Request
Trabalhando com SOAP Requests
Primeiramente, você deverá garantir
que o seu serviço já não se encontra
carregado em seu Projeto SoapUI.
Para isso, você poderá navegar nos
itens com setas duplas invertidas.
Caso haja algum cadastrado, dê um
duplo-clique e verifique o endereço
do serviço.
... continua ...
SOAP Request
Trabalhando com SOAP Requests
Caso não exista, você poderá
facilmente adicionar seguindo os
passos abaixo:
1. Clique com botão direito sobre o
nome do seu Projeto SoapUi
2. Vá em “Add WSDL”, adicione a
URL em “WSDL Location” e clique
em “OK”
3. Pronto! Seu serviço está pronto
para ser chamado dentro dos
testes.
... continua ...
SOAP Request
Trabalhando com SOAP Requests
Uma vez adicionado, você poderá, em
qualquer ponto e suíte de teste do seu
Projeto SoapUI, fazer referência às
definições do webservice recém carregado.
Agora fica mais fácil:
1. Basta clicar com botão direito sobre
“Test Steps”, ir em “Add Step” e clicar
sobre “SOAP Request”
2. Dê um nome que faça sentido
3. Escolha o serviço e operação desejada
4. Prepare o payload desejado, podendo
fazer referências às propriedades e
variáveis de ambiente
5. Pronto!
Automação de Testes com
SoapUI
Tópicos Avançados:
Explorando os diferentes tipos de TestStep
O poder do Groovy
Groovy Script
O poder do Groovy
O “TestStep” de Groovy Script
permite que você programe scripts
para realizar validações e
transformações em seus testes.
Mas vamos iniciar e, ao longo do
caminho, explicamos melhor...
1. Clique com botão direito sobre
“Test Steps”, vá em “Add Step” e
clique em “Groovy Script”
2. Dê um nome que faça sentido
3. Uma janela, em branco, será
aberta...
... continua ...
Groovy Script
O poder do Groovy
Nesta janela é em que você poderá
escrever seus scripts.
Mas o que é possível fazer?
O Groovy é uma poderosa ferramenta
que dá a liberdade de interagir com a
sua própria Suite, realizando ações
que não vem embarcadas no SoapUI.
Além disso, permite a importação de
classes externas Java que podem ser
utilizadas para apoiar.
... continua ...
Groovy Script
O poder do Groovy
Mãos à obra!

Mais conteúdo relacionado

Mais procurados

[ScrumDay2020] A evolução da responsabilidade em testes
[ScrumDay2020] A evolução da responsabilidade em testes[ScrumDay2020] A evolução da responsabilidade em testes
[ScrumDay2020] A evolução da responsabilidade em testesJúlio de Lima
 
Noções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoNoções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoSandy Maciel
 
aula 04 - Logica de programacao
aula 04 - Logica de programacaoaula 04 - Logica de programacao
aula 04 - Logica de programacaoAislan Rafael
 
Fatores de Qualidade de MacCall e ISO/IEC 9126
Fatores de Qualidade de MacCall e ISO/IEC 9126Fatores de Qualidade de MacCall e ISO/IEC 9126
Fatores de Qualidade de MacCall e ISO/IEC 9126Elaine Cecília Gatto
 
Java básico - Módulo 05 - Estruturas de Repetição
Java  básico - Módulo 05 - Estruturas de RepetiçãoJava  básico - Módulo 05 - Estruturas de Repetição
Java básico - Módulo 05 - Estruturas de RepetiçãoProfessor Samuel Ribeiro
 
Análise de ferramentas para gestão de regras de negócio em sistemas de inform...
Análise de ferramentas para gestão de regras de negócio em sistemas de inform...Análise de ferramentas para gestão de regras de negócio em sistemas de inform...
Análise de ferramentas para gestão de regras de negócio em sistemas de inform...Bruno Dadalt Zambiazi
 
Desenvolvimento Web : HTML5, CSS3 & JavaScript
Desenvolvimento Web : HTML5, CSS3 & JavaScriptDesenvolvimento Web : HTML5, CSS3 & JavaScript
Desenvolvimento Web : HTML5, CSS3 & JavaScriptFábio Flatschart
 
Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)Gercélia Ramos
 
12 algoritmos e funcoes recursivas
12   algoritmos e funcoes recursivas12   algoritmos e funcoes recursivas
12 algoritmos e funcoes recursivasRicardo Bolanho
 
Mutation testing (OOP 2012, 2012-JAN-24)
Mutation testing (OOP 2012, 2012-JAN-24)Mutation testing (OOP 2012, 2012-JAN-24)
Mutation testing (OOP 2012, 2012-JAN-24)Filip Van Laenen
 
Tecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De SoftwareTecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De Softwaremarthahuback
 
Qualidade de Software: Teste de software
Qualidade de Software: Teste de softwareQualidade de Software: Teste de software
Qualidade de Software: Teste de softwareAlex Camargo
 
Arquitetura de Automação de Teste
Arquitetura de Automação de TesteArquitetura de Automação de Teste
Arquitetura de Automação de TesteElias Nogueira
 
BDD em Testes de Serviço
BDD em Testes de ServiçoBDD em Testes de Serviço
BDD em Testes de ServiçoRafael Lima
 
De a máxima cobertura nos seus testes de API
De a máxima cobertura nos seus testes de APIDe a máxima cobertura nos seus testes de API
De a máxima cobertura nos seus testes de APIElias Nogueira
 
Lista de exercicios algoritmos com pseudocodigo
Lista de exercicios   algoritmos com pseudocodigoLista de exercicios   algoritmos com pseudocodigo
Lista de exercicios algoritmos com pseudocodigoMauro Pereira
 
Desvendando a linguagem JavaScript
Desvendando a linguagem JavaScriptDesvendando a linguagem JavaScript
Desvendando a linguagem JavaScriptRodrigo Branas
 
Teste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e ValidaçãoTeste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e ValidaçãoJoeldson Costa Damasceno
 

Mais procurados (20)

[ScrumDay2020] A evolução da responsabilidade em testes
[ScrumDay2020] A evolução da responsabilidade em testes[ScrumDay2020] A evolução da responsabilidade em testes
[ScrumDay2020] A evolução da responsabilidade em testes
 
Noções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoNoções em teste de software e introdução a automação
Noções em teste de software e introdução a automação
 
aula 04 - Logica de programacao
aula 04 - Logica de programacaoaula 04 - Logica de programacao
aula 04 - Logica de programacao
 
Fatores de Qualidade de MacCall e ISO/IEC 9126
Fatores de Qualidade de MacCall e ISO/IEC 9126Fatores de Qualidade de MacCall e ISO/IEC 9126
Fatores de Qualidade de MacCall e ISO/IEC 9126
 
Java básico - Módulo 05 - Estruturas de Repetição
Java  básico - Módulo 05 - Estruturas de RepetiçãoJava  básico - Módulo 05 - Estruturas de Repetição
Java básico - Módulo 05 - Estruturas de Repetição
 
Análise de ferramentas para gestão de regras de negócio em sistemas de inform...
Análise de ferramentas para gestão de regras de negócio em sistemas de inform...Análise de ferramentas para gestão de regras de negócio em sistemas de inform...
Análise de ferramentas para gestão de regras de negócio em sistemas de inform...
 
Desenvolvimento Web : HTML5, CSS3 & JavaScript
Desenvolvimento Web : HTML5, CSS3 & JavaScriptDesenvolvimento Web : HTML5, CSS3 & JavaScript
Desenvolvimento Web : HTML5, CSS3 & JavaScript
 
Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)
 
12 algoritmos e funcoes recursivas
12   algoritmos e funcoes recursivas12   algoritmos e funcoes recursivas
12 algoritmos e funcoes recursivas
 
Teste de Software - Introdução
Teste de Software - IntroduçãoTeste de Software - Introdução
Teste de Software - Introdução
 
Mutation testing (OOP 2012, 2012-JAN-24)
Mutation testing (OOP 2012, 2012-JAN-24)Mutation testing (OOP 2012, 2012-JAN-24)
Mutation testing (OOP 2012, 2012-JAN-24)
 
Tecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De SoftwareTecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De Software
 
Qualidade de Software: Teste de software
Qualidade de Software: Teste de softwareQualidade de Software: Teste de software
Qualidade de Software: Teste de software
 
Arquitetura de Automação de Teste
Arquitetura de Automação de TesteArquitetura de Automação de Teste
Arquitetura de Automação de Teste
 
BDD em Testes de Serviço
BDD em Testes de ServiçoBDD em Testes de Serviço
BDD em Testes de Serviço
 
De a máxima cobertura nos seus testes de API
De a máxima cobertura nos seus testes de APIDe a máxima cobertura nos seus testes de API
De a máxima cobertura nos seus testes de API
 
Lista de exercicios algoritmos com pseudocodigo
Lista de exercicios   algoritmos com pseudocodigoLista de exercicios   algoritmos com pseudocodigo
Lista de exercicios algoritmos com pseudocodigo
 
Software testing overview subbu
Software testing overview subbuSoftware testing overview subbu
Software testing overview subbu
 
Desvendando a linguagem JavaScript
Desvendando a linguagem JavaScriptDesvendando a linguagem JavaScript
Desvendando a linguagem JavaScript
 
Teste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e ValidaçãoTeste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e Validação
 

Semelhante a Automação de Testes com SoapUI v1

Solucionando a Teoria do Caos com Cypress.io
Solucionando a Teoria do Caos com Cypress.ioSolucionando a Teoria do Caos com Cypress.io
Solucionando a Teoria do Caos com Cypress.ioPatrick Monteiro
 
Onde nenhum desenvolvedor jamais testou: Introduzindo testes unitários em cód...
Onde nenhum desenvolvedor jamais testou: Introduzindo testes unitários em cód...Onde nenhum desenvolvedor jamais testou: Introduzindo testes unitários em cód...
Onde nenhum desenvolvedor jamais testou: Introduzindo testes unitários em cód...André Ricardo Barreto de Oliveira
 
Por que testar é importante e algumas boas práticas
Por que testar é importante e algumas boas práticasPor que testar é importante e algumas boas práticas
Por que testar é importante e algumas boas práticasLucas Caton
 
[MTC 2021] Criando testes automatizados rápidos e robustos com cypress - Walm...
[MTC 2021] Criando testes automatizados rápidos e robustos com cypress - Walm...[MTC 2021] Criando testes automatizados rápidos e robustos com cypress - Walm...
[MTC 2021] Criando testes automatizados rápidos e robustos com cypress - Walm...minastestingconference
 
Como criar testes rápidos e robustos com Cypress
Como criar testes rápidos e robustos com CypressComo criar testes rápidos e robustos com Cypress
Como criar testes rápidos e robustos com CypressWalmyr Lima e Silva Filho
 
Testes Distribuídos com TestComplete v7
Testes Distribuídos com TestComplete v7Testes Distribuídos com TestComplete v7
Testes Distribuídos com TestComplete v7Miquéias Morezet
 
Testes automatizados end-to-end com WordPress por Fabio Nas
Testes automatizados end-to-end com WordPress por Fabio NasTestes automatizados end-to-end com WordPress por Fabio Nas
Testes automatizados end-to-end com WordPress por Fabio NasWordCamp Floripa
 
QAOps - O QA com pézinho em DevOps (Ministry of Testing Floripa 2019)
QAOps - O QA com pézinho em DevOps (Ministry of Testing Floripa 2019)QAOps - O QA com pézinho em DevOps (Ministry of Testing Floripa 2019)
QAOps - O QA com pézinho em DevOps (Ministry of Testing Floripa 2019)Mayara Fernandes
 
Android: testes automatizados e TDD
Android: testes automatizados e TDDAndroid: testes automatizados e TDD
Android: testes automatizados e TDDDextra
 
Introdução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaIntrodução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaFabrício Campos
 
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)Júlio de Lima
 
Tutorial visão automação de testes e casper js
Tutorial visão automação de testes e casper jsTutorial visão automação de testes e casper js
Tutorial visão automação de testes e casper js4ALL Tests
 
Tutorial - Visão sobre Automação de Testes com CasperJS
Tutorial - Visão sobre Automação de Testes com CasperJSTutorial - Visão sobre Automação de Testes com CasperJS
Tutorial - Visão sobre Automação de Testes com CasperJSFrederico Allan
 
Tutorial de instalação do Maven
Tutorial de instalação do MavenTutorial de instalação do Maven
Tutorial de instalação do MavenAllan Alves
 

Semelhante a Automação de Testes com SoapUI v1 (20)

Desafio Rest API
Desafio Rest APIDesafio Rest API
Desafio Rest API
 
Introdução a tdd
Introdução a tddIntrodução a tdd
Introdução a tdd
 
Solucionando a Teoria do Caos com Cypress.io
Solucionando a Teoria do Caos com Cypress.ioSolucionando a Teoria do Caos com Cypress.io
Solucionando a Teoria do Caos com Cypress.io
 
Onde nenhum desenvolvedor jamais testou: Introduzindo testes unitários em cód...
Onde nenhum desenvolvedor jamais testou: Introduzindo testes unitários em cód...Onde nenhum desenvolvedor jamais testou: Introduzindo testes unitários em cód...
Onde nenhum desenvolvedor jamais testou: Introduzindo testes unitários em cód...
 
Por que testar é importante e algumas boas práticas
Por que testar é importante e algumas boas práticasPor que testar é importante e algumas boas práticas
Por que testar é importante e algumas boas práticas
 
[MTC 2021] Criando testes automatizados rápidos e robustos com cypress - Walm...
[MTC 2021] Criando testes automatizados rápidos e robustos com cypress - Walm...[MTC 2021] Criando testes automatizados rápidos e robustos com cypress - Walm...
[MTC 2021] Criando testes automatizados rápidos e robustos com cypress - Walm...
 
TechEd_OFC305
TechEd_OFC305TechEd_OFC305
TechEd_OFC305
 
Como criar testes rápidos e robustos com Cypress
Como criar testes rápidos e robustos com CypressComo criar testes rápidos e robustos com Cypress
Como criar testes rápidos e robustos com Cypress
 
Gsp313 desafio selo_01
Gsp313 desafio selo_01Gsp313 desafio selo_01
Gsp313 desafio selo_01
 
Nao sensivel
Nao sensivelNao sensivel
Nao sensivel
 
Testes Distribuídos com TestComplete v7
Testes Distribuídos com TestComplete v7Testes Distribuídos com TestComplete v7
Testes Distribuídos com TestComplete v7
 
Testes automatizados end-to-end com WordPress por Fabio Nas
Testes automatizados end-to-end com WordPress por Fabio NasTestes automatizados end-to-end com WordPress por Fabio Nas
Testes automatizados end-to-end com WordPress por Fabio Nas
 
QAOps - O QA com pézinho em DevOps (Ministry of Testing Floripa 2019)
QAOps - O QA com pézinho em DevOps (Ministry of Testing Floripa 2019)QAOps - O QA com pézinho em DevOps (Ministry of Testing Floripa 2019)
QAOps - O QA com pézinho em DevOps (Ministry of Testing Floripa 2019)
 
Android: testes automatizados e TDD
Android: testes automatizados e TDDAndroid: testes automatizados e TDD
Android: testes automatizados e TDD
 
Introdução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaIntrodução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem prática
 
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
 
1° Madrugada de Testes
1° Madrugada de Testes1° Madrugada de Testes
1° Madrugada de Testes
 
Tutorial visão automação de testes e casper js
Tutorial visão automação de testes e casper jsTutorial visão automação de testes e casper js
Tutorial visão automação de testes e casper js
 
Tutorial - Visão sobre Automação de Testes com CasperJS
Tutorial - Visão sobre Automação de Testes com CasperJSTutorial - Visão sobre Automação de Testes com CasperJS
Tutorial - Visão sobre Automação de Testes com CasperJS
 
Tutorial de instalação do Maven
Tutorial de instalação do MavenTutorial de instalação do Maven
Tutorial de instalação do Maven
 

Automação de Testes com SoapUI v1

  • 1. Automação de Testes com SoapUI Fundamentos Mateus Caletti linkedin.com/in/mateuscaletti/ github.com/mateuscaletti slideshare.net/mateuscaletti
  • 2. Criando um projeto... O projeto é onde você organizará os seus testes. Passo-a-passo: • Tenha a URL que contenha o WSDL que deseja testar • Vá em “File -> New SOAP Project” • Insira um nome para o projeto e a URL com o WSDL do serviço • Pronto, deverá aparecer algo como:
  • 3. Criando uma Suíte de Teste... A Suíte de Teste (TestSuite) é um conjunto de cenários de teste. Passo-a-passo: • Clique com botão direito sobre o nome do seu projeto anteriormente criado e vá em “New TestSuite” • Nomeie o seu TestSuite • Uma janela com o seu TestSuite deverá aparecer na tela:
  • 4. Criando um cenário de teste... O cenário de teste (TestCase) é onde você configurará os passos necessários para a execução do seu teste. Passo-a-passo: • Clique com botão direito sobre o nome do seu TestSuite e vá em “New TestCase” • Nomeie o seu TestCase • Uma janela com o seu TestCase deverá ser aberta:
  • 5. Criando os passos dos seu teste... Todo TestCase requer que sejam incluídos os passos (TestStep) para sua execução. São as tarefas automatizadas para que o teste seja concluído. Passo-a-passo: • Expanda a árvore do seu TestCase e clique com botão direito sobre “Test Steps” e vá em “Add Step” • Uma lista de opções será apresentada. Cada qual representa um tipo de tarefa que pode ser adicionada. • Para este exemplo, iremos incluir uma atividade mais básica em teste de serviço que é o “SOAP Request” • Nomeie a sua atividade • Escolha a operação do serviço que você importou lá no início deste tutorial e clique em “OK” • Aparecerá uma janela para confirmar a criação da tarefa, clique em “OK” novamente. ... continua ...
  • 6. Criando os passos dos seu teste... Todo TestCase requer que sejam incluídos os passos (TestStep) para sua execução. São as tarefas automatizadas para que o teste seja concluído. Passo-a-passo: • Agora você precisará configurar o request do seu serviço Soap • Você poderá testar normalmente a requisição até que ela esteja OK • Pronto! Seu TestStep está criado! Obs.: Mais adiante, iremos tratar dos principais tipos de TestSteps! ... continua ...
  • 7. Criando suas asserções... Para automatizar um teste, você precisará estabelecer quais são as condições para que o teste conclua com sucesso ou falha. Neste caso, você irá precisar trabalhar com “Assertions”, que são condições que você entende que devem ser verdadeiras, caso contrário, o teste estará falhando. Passo-a-passo: • Na janela do seu “TestStep”, haverá um menu na barra inferior chamado “Assertions”, clique sobre este botão • Uma lista de “Assertions” será aberta. Por padrão, em um “SOAP Request”, estará criada um “SOAP Request – VALID” • Vamos criar um novo... Clique no sinal de + na barra superior desta lista • Uma janela com várias opções será aberta. Na versão gratuita do SoapUI, apenas algumas opções estão disponíveis. Vamos utilizar uma bem simples em “Property Content -> Not Contains” e clique em “Add” • Adicione a trecho do retorno que você deseja que não contenha no retorno. • Por que usaremos este? Como nosso objetivo do teste é validar o “Cenário Positivo”, isto é, que eu obtenha o valor da série indicada. Então, quando o serviço retorna erro, ele apresenta algo como a imagem ao lado. Nossa condição é que “Não contenha” a string “<faultstring>”. Caso tenha, o teste falhará. ... continua ...
  • 8. Criando suas asserções... Para automatizar um teste, você precisará estabelecer quais são as condições para que o teste conclua com sucesso ou falha. Neste caso, você irá precisar trabalhar com “Assertions”, que são condições que você entende que devem ser verdadeiras, caso contrário, o teste estará falhando. Passo-a-passo: • Instantaneamente, o teste falhará, pois a string “<faultstring>” estará contida no retorno (response), pois incluímos, nos parâmetros de entrada, um código que não existe no banco de dados do BCB. • Para que o teste passe, vamos alterar o parâmetro de entrada que a gente sabe que existe.
  • 9. Vamos rodar o teste... Podemos rodar o teste conforme o escopo. Escopo: TestStep Podemos rodar apenas uma tarefa para validá-la. Para isso, basta dar duplo-clique sobre o TestStep desejado e clicar no botão “Play”. Escopo: TestCase Podemos rodar o TestCase inteiro. Neste caso, ele irá rodar todos os TestSteps na sequência em que você configurou. Apresentará uma tela contendo o resumo e o log da execução. Para isso, basta dar duplo-clique sobre o TestStep desejado e clicar no botão “Play”. Escopo: TestSuite Podemos rodar o TestSuite inteiro. Neste caso, ele irá rodar todos os TestCase na sequência em que você configurou. Apresentará uma tela contendo o resumo e o log da execução. Para isso, basta dar duplo-clique sobre o TestSuite desejado e clicar no botão “Play”.
  • 10. Automação de Testes com SoapUI Tópicos Avançados: Conhecendo as Custom Properties Trabalhando com Propriedades de Ambiente
  • 11. (Custom Properties) Propriedades Personalizadas Existem três tipos de propriedades personalizadas que podem ser configuradas. 1. No nível do “Projeto” 2. No nível do “TestSuite” 3. No nível do “TestCase” Para visualizá-los e manipulá-las, você deve selecionar o nível desejado. Na parte inferior esquerdo, uma aba “Custom Properties” será apresentada. ... continua ...
  • 12. (Custom Properties) Propriedades Personalizadas Mas para que serve? Podem ser utilizadas para a definição de dados que poderão ser acessadas nos TestSteps que estiverem dentro do seu escopo. Elucide um exemplo, por favor! Na versão gratuita, não há funcionalidade que permita definirmos os “Ambientes” em que será rodado os testes, isto é, caso eu precise rodar o teste no ambiente de “Teste” e, posteriormente, no ambiente de “Homologação”. Uma forma de contornar isso é utilizando as propriedades. A seguir iremos apresentar como... ... continua ...
  • 13. (Custom Properties) Propriedades Personalizadas Mãos na massa... 1. No nível do Projeto, iremos definir a variável “urlWsdl” conforme a imagem ao lado; 2. Iremos criar um TestStep de “SOAP Request” para exemplificar; 3. No campo em que está o “endpoint”, iremos substituir a URL pela tag “${#Project#urlWsdl}” 4. Aperte no play e verá que ele utilizará o valor que estiver definido na variável. Caso seja necessário alternar entre ambientes, basta alterar esta variável. Outros escopos... Você poderá utilizar as propriedades personalizadas nos escopos mencionados, bastando referenciá-las da seguinte maneira: 1. Projeto = ${#Project#nomeDaPropriedade} 2. TestSuite = ${#TestSuite#nomeDaPropriedade} 3. TestCase = ${#TestCase#nomeDaPropriedade}
  • 14. Automação de Testes com SoapUI Tópicos Avançados: Explorando os diferentes tipos de TestStep Trabalhando com Properties
  • 15. Properties Trabalhando com Propriedades Este TestStep serve para carregar variáveis de propriedades que poderão ser consumidas por outros TestStep subsequentes. Existem duas formas: 1. Incluir variáveis manualmente e mantendo os valores por dentro da interface do SoapUI 2. Informar um arquivo no formato .properties para carregar as variáveis e seus valores ... continua ...
  • 16. Properties Trabalhando com Propriedades Manualmente 1. Clique sobre + na barra superior da janela para adicionar uma nova variável 2. Adicione o nome da variável e seu respectivo valor 3. Repita o processo para tantas variáveis desejar 4. Para editar os valores, basta dar duplo-clique sobre o campo desejado ... continua ...
  • 17. Properties Trabalhando com Propriedades Via arquivo .properties 1. Crie um diretório chamado “resources” dentro do diretório em que está salvo o seu projeto 2. Crie um arquivo no formato .properties no diretório recém criado 3. Vamos adicionar um novo TestStep chamado “PropertiesArquivo” 4. Ao lado do campo “Load from:”, clique no ícone para selecionar o arquivo 5. Selecione o arquivo criado 6. O SoapUI irá perguntar se deseja criar as variáveis. Clique em “Sim” 7. Pronto! As variáveis foram criadas e seus valores serão recarregadas sempre que rodar seu teste. ... continua ...
  • 18. Properties Trabalhando com Propriedades Via arquivo .properties 1. Mas temos um problema! Caso você precise movimentar o diretório do seu projeto, os apontamentos do arquivo .properties se perderão. 2. Para resolver isso, configure o “Resource Root” para ser o diretório do seu projeto. 3. Agora retorne para o TestStep “PropertiesArquivo” e coloque: “resources/Soap.properties” 4. Rode novamente o seu teste 5. Pronto! Agora o caminho do properties será relativo ao diretório do seu projeto.
  • 19. Automação de Testes com SoapUI Tópicos Avançados: Explorando os diferentes tipos de TestStep Transferindo dados para dentro das propriedades
  • 20. Property Transfer Transferindo dados para dentro das propriedades Agora já sabemos trabalhar com o TestStep de propriedades, podemos realizar alguns usos deste recurso. Digamos que queremos transferir um valor retornado de um TestStep “SOAP Request” para ser utilizado mais adiante. Para isso, iremos utilizar o TestStep de Property Transfer.
  • 21. Property Transfer Transferindo dados para dentro das propriedades No nosso exemplo, iremos realizar uma requisição SOAP para descobrir a cotação de uma moeda em um determinado dia e queremos que este valor seja transferido para uma propriedade. Para isso, siga o passo-a-passo: 1. Antes de tudo, crie uma variável em algum TestStep para que você possa ter para onde transferir o valor neste exemplo 2. Adicione o TestStep “Property Transfer” 3. Nomeie ele para um nome que faça sentido no teste 4. Uma janela de configuração será apresentada ... continua ...
  • 22. Property Transfer Transferindo dados para dentro das propriedades 5. Para nosso exemplo, criamos um TestStep chamado “CotacaoResult” 6. Adicione uma nova instrução de transferência 7. Nomeie de uma maneira que faça sentido no teste. 8. Para configurar, iremos estabelecer dois pontos: • Origem (source): para a origem, iremos informar o TestStep “SOAP Request” e sua “Property” chamada “Response”. Isso indicará ao SoapUI para que trabalhemos com o retorno da chamada do serviço. Iremos aplicar um comando XPath para extrair a informação desejada • Destino (target): para o destino, iremos informar o TestStep “CotacaoResult” e sua “Property” chamada “resultCotacao”, conforme variável criada anteriormente. 9. Podemos clicar em play para verificar qual valor foi transferido 10. Pronto! Seu comando de transferência foi realizado! ... continua ...
  • 23. Property Transfer Transferindo dados para dentro das propriedades É muito importante o conhecimento em XPath para o uso deste TestStep. Com ele, conseguimos obter resultados incríveis com pouca linha de comando. No nosso exemplo, apesar do retorno da requisição SOAP ter uma alta complexidade, com apenas um comando, obtivemos exatamente o valor desejado. ... continua ...
  • 24. Automação de Testes com SoapUI Tópicos Avançados: Explorando os diferentes tipos de TestStep Trabalhando com HTTP Request
  • 25. HTTP Request Trabalhando com HTTP Requests Com o TestStep “HTTP Request” é possível realizar uma chamada à uma URL na Web. É bastante útil para acionar API’s em Rest ou simplesmente verificar o resultado em uma determinar página. O SoapUI permite a execução de comandos GET, POST, PUT, DELETE, ... Vamos adicionar então... 1. Adicione o TestStep “HTTP Request” 2. Nomeie de uma forma que faça sentido no seu teste 3. Informe o endpoint que deseja acessar, bem como forneça os parâmetros necessários e escolha o método de requisição ... continua ...
  • 26. HTTP Request Trabalhando com HTTP Requests 4. Clique em play e verifique o resultado 5. Agora podemos inserir “Assertions” para garantir que o retorno esteja OK 6. Dado que o retorno está numa estrutura JSON, iremos aplicar um assertion do tipo “JsonPath Match” 7. Iremos configurar para que seja testado se o status seja “ok” 8. Pronto! Veremos que o teste passou!
  • 27. Automação de Testes com SoapUI Tópicos Avançados: Explorando os diferentes tipos de TestStep Trabalhando com JDBC Request
  • 28. JDBC Request Trabalhando com JDBC Requests O TestStep “JDBC Request” permitirá que você realize acessos diretos ao seu banco de dados, para a execução de consultas. Para isso, é necessário baixar os drivers de conexão do seu banco de dados e configurá-los no SoapUI. 1. Acesse e baixe https://www.soapui.org/jdbc/refere nce/jdbc-drivers.html 2. Coloque o arquivo .jar dentro do diretório binext da sua instalação do SoapUI ... continua ...
  • 29. JDBC Request Trabalhando com JDBC Requests Posto que configuração do seu JDBC Driver esteja feita, iremos adicionar o TestStep e testá-lo. 1. Adicione o TestStep “JDBC Request” 2. Você deverá informar o “Driver” e a “Connection String” 3. Clique em “TestConnection” para verificar se a conexão está corretamente configurada 4. Informe uma “SQL Query” para ser realizada no banco de dados 5. Visualize o retorno no lado esquerdo 6. Pronto! Você conseguiu acessar os dados de banco de dados! ... continua ...
  • 30. JDBC Request Trabalhando com JDBC Requests Os drivers e as Connection Strings podem ser consultadas no site https://www.soapui.org/jdbc/referen ce/jdbc-drivers.html
  • 31. Automação de Testes com SoapUI Tópicos Avançados: Explorando os diferentes tipos de TestStep Trabalhando com SOAP Request
  • 32. SOAP Request Trabalhando com SOAP Requests O TestStep “SOAP Request” permitirá que você realize testes funcionais em chamadas de webservices expostos em SOAP. Conforme explicado no início, você precisará da URL contendo o WSDL de seu serviço. ... continua ...
  • 33. SOAP Request Trabalhando com SOAP Requests Primeiramente, você deverá garantir que o seu serviço já não se encontra carregado em seu Projeto SoapUI. Para isso, você poderá navegar nos itens com setas duplas invertidas. Caso haja algum cadastrado, dê um duplo-clique e verifique o endereço do serviço. ... continua ...
  • 34. SOAP Request Trabalhando com SOAP Requests Caso não exista, você poderá facilmente adicionar seguindo os passos abaixo: 1. Clique com botão direito sobre o nome do seu Projeto SoapUi 2. Vá em “Add WSDL”, adicione a URL em “WSDL Location” e clique em “OK” 3. Pronto! Seu serviço está pronto para ser chamado dentro dos testes. ... continua ...
  • 35. SOAP Request Trabalhando com SOAP Requests Uma vez adicionado, você poderá, em qualquer ponto e suíte de teste do seu Projeto SoapUI, fazer referência às definições do webservice recém carregado. Agora fica mais fácil: 1. Basta clicar com botão direito sobre “Test Steps”, ir em “Add Step” e clicar sobre “SOAP Request” 2. Dê um nome que faça sentido 3. Escolha o serviço e operação desejada 4. Prepare o payload desejado, podendo fazer referências às propriedades e variáveis de ambiente 5. Pronto!
  • 36. Automação de Testes com SoapUI Tópicos Avançados: Explorando os diferentes tipos de TestStep O poder do Groovy
  • 37. Groovy Script O poder do Groovy O “TestStep” de Groovy Script permite que você programe scripts para realizar validações e transformações em seus testes. Mas vamos iniciar e, ao longo do caminho, explicamos melhor... 1. Clique com botão direito sobre “Test Steps”, vá em “Add Step” e clique em “Groovy Script” 2. Dê um nome que faça sentido 3. Uma janela, em branco, será aberta... ... continua ...
  • 38. Groovy Script O poder do Groovy Nesta janela é em que você poderá escrever seus scripts. Mas o que é possível fazer? O Groovy é uma poderosa ferramenta que dá a liberdade de interagir com a sua própria Suite, realizando ações que não vem embarcadas no SoapUI. Além disso, permite a importação de classes externas Java que podem ser utilizadas para apoiar. ... continua ...
  • 39. Groovy Script O poder do Groovy Mãos à obra!