Usando SoapUI Data-Driven para testes de API

Em resposta ao desafio do @Leonardo-Galani, vou falar um pouco do uso do SoapUI, mais especificamente da utilização da função de DataSource disponível na versão Pro. Não vou focar este post em como utilizar a ferramenta, e sim em como ela nos ajudou em um Case na empresa que trabalho.

Caso tenham interesse em saber mais sobre a ferramenta, temos aqui no AgileTesters dois posts do @julio.lima falando sobre SoapUI:

Case: Inclusão do nono digito para DDD 9X

Atualmente sou QA na Titans Group e estou alocada em uma a equipe que desenvolve plataformas e gateways, a equipe não tinha um profissional de QA antes e o levantamento dos cenários de teste e automação começaram do zero. Atualmente ainda não temos uma cobertura de testes automatizados muito alta.

Na Titans trabalhamos com telefonia e recentemente aconteceu a inclusão do nono digito para os números de celular de DDD 9X (91 a 99), e todas as plataformas mantidas pela equipe precisaram ser alteradas para suportar e validar corretamente esta alteração.

Resumidamente o comportamento das plataformas seria:

  • Antes do dia D:
    Aceitar somente 9 dígitos para as regiões com DDD 1X e 2X
    Aceitar somente 8 dígitos para as demais localidades

  • Durante o período de dupla convivência:
    Aceitar somente 9 dígitos para as regiões com DDD 1X e 2X
    Aceitar 8 e 9 dígitos para as regiões com DDD 9X
    Aceitar somente 8 dígitos para as demais localidades

  • Após o período de dupla convivência:
    Aceitar somente 9 dígitos para as regiões com DDD 1X, 2X e 9X
    Aceitar somente 8 dígitos para as demais localidades

Para garantir o correto funcionamento da alteração de acordo com a determinação da Anatel era necessário criar pelo menos um teste de número válido e um de número inválido para cada DDD, em cada um dos períodos definidos, e executá-los contra as 7 APIs que precisavam ser alteradas.

Utilizando o SoapUI, foram mapeados os projetos e as chamadas de API que deveriam ser testadas, criamos uma base de dados para cada um dos períodos e replicamos para cada uma das chamadas de API (conforme passo-a-passo):

1 – Criei o projeto REST, informando qual a minha URL do projeto:
imagem1.png

2 - Identifiquei os recursos da API e os métodos desses recursos que seriam utilizados:imagem2.png
imagem3.png
imagem4.png

3 - Criei a primeira Suíte de Teste, referente aos cenários de “Antes do dia D”:
imagem5.png

4 – Inseri um Test Step de REST Test Request e selecionei qual o recurso da API que seria utilizado:
imagem6.png

5 – Inseri um Test Step DataSource configurando ele com o MSISDN que iria ser passado pra API e o STATUS que eu esperava (200 para os testes positivos e 400 para os testes negativos)
imagem7.png

6 – Inseri um Test Step de Assertion e configurei para que validasse o STATUS retornado no JSON com o STATUS do DataSource
imagem8.png

7 – E por último inseri um Test Step DataSourceLoop, onde configuro qual o DataSouce e qual o Step alvo do loop.
imagem8.png

Tendo o primeiro cenário pronto, só precisei clona-lo, alterando a API que seria testada para o mesmo período. E depois clonando minha suíte inteira para o próximo período e alterando o status que esperava para os MSISDN dos DDD 9x.

Após tudo pronto, é só executar a Suíte! :smile:

imagem9.png

Concluindo

O SoapUI é uma ferramenta de fácil utilização para testes de API e a possibilidade de utilizar o DataSource ajuda quando sua API pode ser testadas com muitos parâmetros diferentes, bem como quando seus resultados esperados são variáveis. Para uma melhor organização eu deveria separar os testes positivos dos negativos, entretanto neste caso a ideia era ter o máximo de testes com o menor esforço possível.

Como estamos adotando BDD na equipe, já que é utilizado pelas outras equipes e que ajuda como documentação, não vamos utilizar o SoapUI como ferramenta padrão de automação, mas com certeza sempre que necessário para testes como o do case acima.

Dúvidas, sugestões e críticas são muito bem vindas.

imagem10.png

Claudia Tirloni de Oliveira
QA na Titans Group
@clautirloni
clautirloni@hotmail.com

Já utilizei o Soap-UI em testes para simular a resposta de um serviço que era integrado com outro sistema. É bem simples de usar, gostei bastante.

No passo 4, você pode informar direto o caminho do seu XML, ele importa e você pode alterar os parâmetros e simular o envio, para dar certo no cabeçalho do XML é necessário passar os dados de conexão com banco de dados ;)

@afizac que legal! nunca precisei utilizar para esta finalidade, mas é bom saber que funciona! Realmente o SoapUI é muito simples de utilizar!

Log in to reply

Looks like your connection to Agile Testers was lost, please wait while we try to reconnect.