Criando Mocks de serviços REST com SoapUI

SoapUIO que podemos fazer quando precisamos de um serviço REST para concluir um desenvolvimento ou simular algum cenário de teste e o serviço em questão não está pronto ainda? Utilizamos mocks!
O SoapUI é uma ferramenta para testes de serviços SOAP e REST que nos permite também criar mocks para WebServices. Ou seja, com ele conseguimos simular um serviço REST executando como se fosse um serviço real.

A ideia deste post é mostrar como criar esses mocks de uma maneira simples utilizando o SoapUI.

O primeiro passo é criar um projeto de teste no SoapUI. Para isso clique em: “File > New REST Project” e defina um nome para o seu projeto.

Após isso, clique em “Project > New REST MockService”, será criado um elemento dentro do projeto do SoapUI.  No exemplo o nome dado para o elemento de mock foi “Produto”.

1

Figura 1 – Criando projeto de mock para REST

Depois de criado o elemento, é necessário configurar as propriedades do serviço que iremos simular. No exemplo vamos fazer um mock de um serviço que insere e consulta um produto. Para isso, definimos na aba “Custom Properties” as propriedades que devem ser informadas no request da requisição, no caso as propriedades serão nome e quantidade.

4Figura 2 – Definindo propriedades do serviço

O próximo passo é criar um mock para cada tipo de método que o serviço pode oferecer, no caso do exemplo, vamos criar um mock do método POST para a inserção de um produto e um mock do método GET para consultar o produto criado. Para isso, clique com o botão direito no elemento “Produto” e clique em “Add new mock action”.

5Figura 3 – Criando um elemento de mock

No pop-up aberto, selecione o método POST e coloque como o resource path: “/produto” e clique em “OK”.
Será criado um item que representa o mock.

6Figura 4 – Definindo resource path do mock

Para configurar o mock  que simulará a resposta quando este serviço for chamado, clique com o botão direito no elemento e depois na opção “New MockResponse”.

Crie o mock com o nome de “Sucesso”, pois nesse mock iremos definir como será o retorno do serviço em caso de sucesso.

7Figura 5 – Criando o mock para o response do serviço

Portanto, o próximo passo é definir a resposta do mock, ou seja, qual será o response code e qual o json de retorno quando o serviço for chamado. No caso de sucesso definimos que o retorno será status code igual a 200 e o json de resposta retornará o id do produto.

8Figura 6 – Configurando um retorno de sucesso

Para o mock que representará uma requisição com erro, definimos que o status code será igual a 400 e deverá retornar um json informando que um campo obrigatório não foi informado na requisição.

9Figura 7 – Configurando um retorno de erro

Feito! Criamos dois mocks para simular uma requisição com sucesso e outra com erro quando é chamado o serviço de inserção de um produto.
Agora faremos a mesma coisa para criar um mock para o serviço de consulta de produto.

Devemos criar um mock usando o método GET e o resource path será o mesmo usado anteriormente.
No mock de sucesso deve ser definido que o status code será igual a 200 e que deverá retornar um json com os dados do produto.

11Figura 8 – Definindo retorno do serviço de consulta

Pronto! Temos mais um mock criado! Qual o próximo passo? Executá-los!

Para isso clique com o botão direito no elemento “Produto” e clique na opção “Start Minimized”. O SoapUI executará os mock criados na porta 8080.

13Figura 9 – Executando os mocks

Para fazer um teste, chame os serviços usando o Postman, usando o URL definida nos mocks. O SoapUI retorná o que foi definido para cada situação conforme exemplo abaixo:

17Figura 10 – Requisição de sucesso e erro do mock inserção de produto
16Figura 11 – Requisição de sucesso do mock consulta produto

No caso do mock de inserção de produto, existe um mock para simular uma requisição de sucesso e outro para erro, quando chamamos o serviço, a cada requisição o SoapUI executa um dos mocks, ou seja, sempre é uma sequência, uma hora de sucesso e outra vez de erro.

Isso acontece porque no elemento produto foi definido na propriedade Dispatch como SEQUENCE. Outra opção que pode ser escolhida é a opção SCRIPT. Se definido essa propriedade o SoapUI irá executar o mock de sucesso ou erro conforme o script definido.

Para definir essa propriedade, basta clicar com o botão direito no mock do método POST na opção “Show MockAction Editor”. Será aberta a tela abaixo:

18Figura 12 – Definindo sequência de execução do mock

Feito!! Temos nossos mocks criados e executando com sucesso. Fácil, né? 😉

Com esse tipo de recurso não precisamos depender da implementação real do serviço para ganharmos agilidade em desenvolvimentos e testes que utilizam arquitetura baseada em serviços.

Referência

 https://www.soapui.org/rest-testing-mocking/rest-service-mocking.html

Por MONISE COSTA

Formada em Sistemas de Informação pela PUC Campinas, MATERANA desde 2011. Apaixonada pela área de TI, Analista de Requisitos na maior parte do tempo e desenvolvedora Java/Android por lazer.

Postado em: 27 de junho de 2017

Confira outros artigos do nosso blog

REST não é JSON

21 de agosto de 2017

Bruno Sofiato

[Webinar] Profile de aplicações Java com Oracle Mission Control e Flight Recorder

24 de julho de 2017

Danival Calegari

JavaScript 6: diferença entre var, let e const

09 de maio de 2017

Otávio Felipe do Prado

Iniciando com o POSTMAN

17 de abril de 2017

Arthur Fritz Santiago

Deixe seu comentário