SlideShare uma empresa Scribd logo
1 de 44
Web Service Testing
SoapUI & JMeter Basics
Ricardo Moura - Test Analyst
Ricardo Moura
Há 7 anos, inimigo número 1 dos desenvolvedores
Aspirante a desenvolvedor
Desde 2014 na equipe de QA da Tecban.
Certificado pelo BSTQB nos níveis Foundation e Agile Tester
#BlockChain
Amante dos carros velhos e rápidos
“Aquele cara chato”
“Por que comprar se eu posso fazer gastando o dobro?”
LinkedIN
www.linkedin.com/in/ricardoamr
Conceitos Stub++ Tipos de Teste Ferramentas
Teoria
Prática Testes
Manuais
Mocking
Testes
Automáticos
Performance
Teoria
Conceitos
WebService
Solução utilizada na integração entre diferentes aplicações.
Com esta tecnologia é possível que novas aplicações possam interagir com aquelas que já
existem e que sistemas desenvolvidos em plataformas diferentes sejam compatíveis.
OpenBank
OpenBanking é um termo relativamente novo
https://labsbank.com/
Bancos fornecem uma API publica para desenvolvedores criarem soluções
Aplicativos possuem permissão para movimentar as contas dos clientes
One Bank,
one Public API,
available in the cloud,
for developers of
multiple platforms.
SOAP
É uma especificação para a troca de informação entre sistemas
Formata os dados trocados entre diferentes sistemas e estabelece um padrão que garanta
a interoperabilidade entre eles.
Requer um WSDL(Web Services Description Language) para cada serviço disponibilizado
É baseado em XML para composição das mensagens
Método de transporte genérico
Pode usar qualquer meio de transporte existente para enviar sua requisição, SMTP, HTTP,
JMS
Simple Object Access Protocol
REST
Diferente do SOAP pois é somente um estilo arquitetural usado em projetos de aplicações
Utiliza para transporte o protocolo HTTP e seus métodos(GET, POST, PUT, DELETE, HEAD)
Mais simples que SOAP e não requer um WSDL pois interage com os serviços sempre da
mesma forma(http)*
Flexivel para composição das mensagens, pode utilizar XML, JSON, HTML
Pode possuir um contrato WADL(Web Application Description Language) que determina o
contrato entre as partes.
Representational State Transfer
XML / JSON
Formato para a criação de documentos com dados organizados hierárquicamente.
Não depende das plataformas de hardware ou de software, um banco de dados pode,
através de uma aplicação, escrever em um arquivo XML, e um outro banco distinto pode
ler então estes mesmos dados.
Trabalha com <tags>, requer abertura e fechamento de cada elemento da estrutura.
Padrão amplamente utilizado em diversos sistemas(Excel, TestLink, Mantis, ...)
JavaScript Object Notation
Formato leve para intercâmbio de dados computacionais.
Fácil leitura para humanos e fácil criação para maquinas
Não utiliza <tags>, estrutura mais simples
Utilizado em sistemas de comunicação assíncrona
É um formato independente
eXtensible Markup Language
Stub++
É um disparador de transação, as mensagens partem dele contra
um sistema, é usado para emular estímulos, muito usado para
testar webservices.
Driver
Request A
Request B
Request C
WS
É um rebatedor, responde sempre da mesma forma, é “burro”,
muito simples e sem capacidade de tomar decisões complexas
além de responder X para A, Y para B...
Stub
Request A
Request B
Request C
Response X
Response Y
Response Z
Mock
Responde de maneira condicional, possui a inteligência não
presente nos Stubs pois faz verificações no conteúdo das
chamadas para determinar as respostas.
Request A
Request B
Request C
Response X
Response Y
Response Z
Service Virtualization
Inteligente como um Mock na maneira de responder, porém é
capaz de aprender como o sistema se comporta e substitui-los.
WSSem SV
WSSV Learn
WS
SV SV
1
2
3
Tipos de Teste
Testes de contrato validam se as aplicações envolvidas em uma integração,
tiveram suas entradas e saídas desenvolvidas em conformidade com um
contrato WSDL/WADL pré-definido.
Essencial em sistemas do tipo WebService
Pode ser feito manualmente ou automaticamente através de ferramentas.
Ajuda a limpar o “lixo” criado durante a fase de desenvolvimento,
principalmente quando esta é iniciada sem uma especificação mensagens
pronta.
Reduz significativamente a quantidade de problemas de integração nas fases
posteriores de teste
Contrato
Valida o conteúdo trafegado nas mensagens esta correto.
Se os inputs dos usuários do sistema forem persistidos de alguma forma nas
mensagens, o conteúdo destas deve ser verificado.
É mais abrangente se feito utilizando Drivers e Mocks.
Também valida o comportamento do sistema em caso de respostas http
inválidas.
Funcional
Não devem obrigatoriamente identificar em que momento uma aplicação cai,
este é apenas um dos objetivos.
Denominados testes negativos.
Ajuda a equipe a simular a carga de um ambiente de produção, permitindo
otimizações no código do software ou no hardware onde esta instalado.
Deve-se isolar bem o sistema alvo para não serem gerados falsos resultados.
Divididos geralmente em Carga e Stress, onde o primeiro simula um numero
crescente de usuários até o momento de ruptura da aplicação e o segundo
além do grande volume de requisições, insere algum cenários de crash a fim
de validar a recuperação da aplicação.
A monitoração da aplicação durante o teste é tão ou mais importante que o
próprio teste.
Performance
Ferramentas
Online Parsers
http://www.freeformatter.com/xml-formatter.html
http://jsonlint.com/
Prática
Testes Manuais
1
2
3
4
5
6
Testes Manuais
Mocking
1
2
3
4
5 6
Mocking
7
8
Mocking
9 10
Mocking
Testes Automáticos
1
3
2
Testes Automáticos
4
5
5
6
Testes Automáticos
7
Testes Automáticos
8
9
10
Testes Automáticos
Performance
1
Performance
2
3
4
Performance
5
6
7
8
Performance
9
10
Performance
11
Performance
12
Performance
13
Performance
14
15 16
Links úteis e Referências
https://smartbear.com
https://getpostman.com
http://jmeter.apache.org
http://www.freeformatter.com/xml-formatter.html
http://jsonlint.com
https://community.smartbear.com
https://www.soapui.org/rest-testing/working-with-rest-services.html
https://pt.stackoverflow.com/questions/36745/qual-a-diferen%C3%A7a-entre-mock-stub
http://jmeter.com.br/2013/04/qual-a-diferenca-entre-teste-de-stress-performance-e-carga/
http://jmeter.apache.org/usermanual/jmeter_proxy_step_by_step.html
https://labsbank.com/
Ferramentas
Fóruns/guias/tutoriais
Parabéns
Muito obrigado a todos

Mais conteúdo relacionado

Mais procurados

Mais procurados (7)

Middlewares
MiddlewaresMiddlewares
Middlewares
 
Rest e soap
Rest e soapRest e soap
Rest e soap
 
Entity Framework
Entity FrameworkEntity Framework
Entity Framework
 
Hexagonal Rails
Hexagonal RailsHexagonal Rails
Hexagonal Rails
 
Como DDD e Strategic Design estão nos ajudando a modernizar um Legado
Como DDD e Strategic Design estão nos ajudando a modernizar um LegadoComo DDD e Strategic Design estão nos ajudando a modernizar um Legado
Como DDD e Strategic Design estão nos ajudando a modernizar um Legado
 
Arquitetura de sistemas web
Arquitetura de sistemas webArquitetura de sistemas web
Arquitetura de sistemas web
 
Modular Monoliths - Como é possível organizar sua aplicação para habilitar um...
Modular Monoliths - Como é possível organizar sua aplicação para habilitar um...Modular Monoliths - Como é possível organizar sua aplicação para habilitar um...
Modular Monoliths - Como é possível organizar sua aplicação para habilitar um...
 

Semelhante a SoapUI & Jmeter Basics Web service testing

Automação de testes para equipes agile
Automação de testes para equipes agileAutomação de testes para equipes agile
Automação de testes para equipes agile
Alini Rebonatto
 
Desenvolvimento web com software livre
Desenvolvimento web com software livreDesenvolvimento web com software livre
Desenvolvimento web com software livre
Ruan Carvalho
 

Semelhante a SoapUI & Jmeter Basics Web service testing (20)

WebServices-XML
WebServices-XMLWebServices-XML
WebServices-XML
 
Automação de testes para equipes agile
Automação de testes para equipes agileAutomação de testes para equipes agile
Automação de testes para equipes agile
 
Web Service - XML
Web Service - XMLWeb Service - XML
Web Service - XML
 
Arquitetura funcional em microservices, 4 anos depois
Arquitetura funcional em microservices, 4 anos depoisArquitetura funcional em microservices, 4 anos depois
Arquitetura funcional em microservices, 4 anos depois
 
Android + web service
Android + web serviceAndroid + web service
Android + web service
 
PHP nas Nuvens
PHP nas NuvensPHP nas Nuvens
PHP nas Nuvens
 
Architecture performance using micro services
Architecture performance using micro servicesArchitecture performance using micro services
Architecture performance using micro services
 
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices
 
Escalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLIDEscalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLID
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014
 
Web services
Web servicesWeb services
Web services
 
Desenvolvimento web com software livre
Desenvolvimento web com software livreDesenvolvimento web com software livre
Desenvolvimento web com software livre
 
Desenvolvimento web com Software Livre
Desenvolvimento web com Software LivreDesenvolvimento web com Software Livre
Desenvolvimento web com Software Livre
 
Soa Woa Rest
Soa Woa RestSoa Woa Rest
Soa Woa Rest
 
Workshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIsWorkshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIs
 
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMASO MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
 
Introdução ao 12 Factors APP
Introdução ao 12 Factors APPIntrodução ao 12 Factors APP
Introdução ao 12 Factors APP
 
Sistemas Distribuidos Java
Sistemas Distribuidos JavaSistemas Distribuidos Java
Sistemas Distribuidos Java
 
A Linguagem Php
A Linguagem PhpA Linguagem Php
A Linguagem Php
 
Artigo de Protótipo de Sistema de Gerenciamento de Rotas para Transporte Cole...
Artigo de Protótipo de Sistema de Gerenciamento de Rotas para Transporte Cole...Artigo de Protótipo de Sistema de Gerenciamento de Rotas para Transporte Cole...
Artigo de Protótipo de Sistema de Gerenciamento de Rotas para Transporte Cole...
 

SoapUI & Jmeter Basics Web service testing

  • 1. Web Service Testing SoapUI & JMeter Basics Ricardo Moura - Test Analyst
  • 2. Ricardo Moura Há 7 anos, inimigo número 1 dos desenvolvedores Aspirante a desenvolvedor Desde 2014 na equipe de QA da Tecban. Certificado pelo BSTQB nos níveis Foundation e Agile Tester #BlockChain Amante dos carros velhos e rápidos “Aquele cara chato” “Por que comprar se eu posso fazer gastando o dobro?”
  • 4. Conceitos Stub++ Tipos de Teste Ferramentas Teoria Prática Testes Manuais Mocking Testes Automáticos Performance
  • 7. WebService Solução utilizada na integração entre diferentes aplicações. Com esta tecnologia é possível que novas aplicações possam interagir com aquelas que já existem e que sistemas desenvolvidos em plataformas diferentes sejam compatíveis.
  • 8. OpenBank OpenBanking é um termo relativamente novo https://labsbank.com/ Bancos fornecem uma API publica para desenvolvedores criarem soluções Aplicativos possuem permissão para movimentar as contas dos clientes One Bank, one Public API, available in the cloud, for developers of multiple platforms.
  • 9. SOAP É uma especificação para a troca de informação entre sistemas Formata os dados trocados entre diferentes sistemas e estabelece um padrão que garanta a interoperabilidade entre eles. Requer um WSDL(Web Services Description Language) para cada serviço disponibilizado É baseado em XML para composição das mensagens Método de transporte genérico Pode usar qualquer meio de transporte existente para enviar sua requisição, SMTP, HTTP, JMS Simple Object Access Protocol
  • 10. REST Diferente do SOAP pois é somente um estilo arquitetural usado em projetos de aplicações Utiliza para transporte o protocolo HTTP e seus métodos(GET, POST, PUT, DELETE, HEAD) Mais simples que SOAP e não requer um WSDL pois interage com os serviços sempre da mesma forma(http)* Flexivel para composição das mensagens, pode utilizar XML, JSON, HTML Pode possuir um contrato WADL(Web Application Description Language) que determina o contrato entre as partes. Representational State Transfer
  • 11. XML / JSON Formato para a criação de documentos com dados organizados hierárquicamente. Não depende das plataformas de hardware ou de software, um banco de dados pode, através de uma aplicação, escrever em um arquivo XML, e um outro banco distinto pode ler então estes mesmos dados. Trabalha com <tags>, requer abertura e fechamento de cada elemento da estrutura. Padrão amplamente utilizado em diversos sistemas(Excel, TestLink, Mantis, ...) JavaScript Object Notation Formato leve para intercâmbio de dados computacionais. Fácil leitura para humanos e fácil criação para maquinas Não utiliza <tags>, estrutura mais simples Utilizado em sistemas de comunicação assíncrona É um formato independente eXtensible Markup Language
  • 13. É um disparador de transação, as mensagens partem dele contra um sistema, é usado para emular estímulos, muito usado para testar webservices. Driver Request A Request B Request C WS
  • 14. É um rebatedor, responde sempre da mesma forma, é “burro”, muito simples e sem capacidade de tomar decisões complexas além de responder X para A, Y para B... Stub Request A Request B Request C Response X Response Y Response Z
  • 15. Mock Responde de maneira condicional, possui a inteligência não presente nos Stubs pois faz verificações no conteúdo das chamadas para determinar as respostas. Request A Request B Request C Response X Response Y Response Z
  • 16. Service Virtualization Inteligente como um Mock na maneira de responder, porém é capaz de aprender como o sistema se comporta e substitui-los. WSSem SV WSSV Learn WS SV SV 1 2 3
  • 18. Testes de contrato validam se as aplicações envolvidas em uma integração, tiveram suas entradas e saídas desenvolvidas em conformidade com um contrato WSDL/WADL pré-definido. Essencial em sistemas do tipo WebService Pode ser feito manualmente ou automaticamente através de ferramentas. Ajuda a limpar o “lixo” criado durante a fase de desenvolvimento, principalmente quando esta é iniciada sem uma especificação mensagens pronta. Reduz significativamente a quantidade de problemas de integração nas fases posteriores de teste Contrato
  • 19. Valida o conteúdo trafegado nas mensagens esta correto. Se os inputs dos usuários do sistema forem persistidos de alguma forma nas mensagens, o conteúdo destas deve ser verificado. É mais abrangente se feito utilizando Drivers e Mocks. Também valida o comportamento do sistema em caso de respostas http inválidas. Funcional
  • 20. Não devem obrigatoriamente identificar em que momento uma aplicação cai, este é apenas um dos objetivos. Denominados testes negativos. Ajuda a equipe a simular a carga de um ambiente de produção, permitindo otimizações no código do software ou no hardware onde esta instalado. Deve-se isolar bem o sistema alvo para não serem gerados falsos resultados. Divididos geralmente em Carga e Stress, onde o primeiro simula um numero crescente de usuários até o momento de ruptura da aplicação e o segundo além do grande volume de requisições, insere algum cenários de crash a fim de validar a recuperação da aplicação. A monitoração da aplicação durante o teste é tão ou mais importante que o próprio teste. Performance
  • 43. Links úteis e Referências https://smartbear.com https://getpostman.com http://jmeter.apache.org http://www.freeformatter.com/xml-formatter.html http://jsonlint.com https://community.smartbear.com https://www.soapui.org/rest-testing/working-with-rest-services.html https://pt.stackoverflow.com/questions/36745/qual-a-diferen%C3%A7a-entre-mock-stub http://jmeter.com.br/2013/04/qual-a-diferenca-entre-teste-de-stress-performance-e-carga/ http://jmeter.apache.org/usermanual/jmeter_proxy_step_by_step.html https://labsbank.com/ Ferramentas Fóruns/guias/tutoriais