SlideShare a Scribd company logo
1 of 42
Download to read offline
Criando uma arquitetura para seus
testes de API com RestAssured
@eliasnogueira
Conceituação
Pirâmide de Testes Original
UI
Tests
Service Tests
Unit Tests
mais
isolamento
mais
integração
rápido
lento
Pirâmide de Testes IdealPirâmide de Testes Ideal
FRONTENDBACKEND
API Gateway
testes funcionais e de
aceitação para o frontend
web e/ou mobile
testes unitários e integração
no backend
testes na api de
consumo
APIs Individuais
API
API
API
API
API
API
API
API
APIs Individuais
API
API
API
API
API
API
API
API
Assumimos que as
API já possuem
testes unitários
Testes
Unitários done!
Individual APIs
API
API
API
API
API
API
API
API
Precisamos testar
funcionalmente as
APIs em separado
Foco desta apresentação
Testes de Contrato e E2E
API
API
API
API
API
API
API
API
Contrato
&
E2E
Contract and E2E testing
API
API
API
API
API
API
API
API
Contrato
&
E2E
Garante a
comunicação
entre APIs
Contract and E2E testing
API
API
API
API
API
API
API
API
Contrato
&
E2E
Garante que as
APIs podem ser
utilizadas em
conjunto
Como serão os projetos de teste?
Modelo 1
Um projeto de teste para todos os microserviço
BACKEND
TEST
PROEJTO
TESTE
Como serão os projetos de teste?
Modelo 2
Um projeto de teste para cada microserviço
BACKEND
TEST TEST TEST
PROEJTO
TESTE
Como serão os projetos de teste?
Modelo 3
Um projeto de teste para cada microserviço
dividido em projetos de cliente e testes
BACKEND
PROEJTO
TESTE
TEST TEST TEST
CLIENT CLIENT CLIENT
Recapitulando
Rest-Assured
http://rest-assured.io
DSL Java para simplificar a execução de testes para serviços REST
import static io.restassured.RestAssured.*;
import static org.hamcrest.Matchers.*;
public class RestAssuredExampleTest {
@Test
public void welcome() {
given().
param(”nome", "Elias").
when().
post("/registro").
then().
body(”mensagem", is(”Oi Elias"));
}
}
import static io.restassured.RestAssured.*;
import static org.hamcrest.Matchers.*;
public class RestAssuredExampleTest {
@Test
public void welcome() {
given().
param(”nome", "Elias").
when().
post("/registro").
then().
body(”mensagem", is(”Oi Elias"));
}
}
Rest-Assured
http://rest-assured.io
importar as bibliotecas
DSL Java para simplificar a execução de testes para serviços REST
import static io.restassured.RestAssured.*;
import static org.hamcrest.Matchers.*;
public class RestAssuredExampleTest {
@Test
public void welcome() {
given().
param(”nome", "Elias").
when().
post("/registro").
then().
body(”mensagem", is(”Oi Elias"));
}
}
Rest-Assured
http://rest-assured.io
pre-condição do
request
DSL Java para simplificar a execução de testes para serviços REST
import static io.restassured.RestAssured.*;
import static org.hamcrest.Matchers.*;
public class RestAssuredExampleTest {
@Test
public void welcome() {
given().
param(”nome", "Elias").
when().
post("/registro").
then().
body(”mensagem", is(”Oi Elias"));
}
}
Rest-Assured
http://rest-assured.io
ação (request)
DSL Java para simplificar a execução de testes para serviços REST
import static io.restassured.RestAssured.*;
import static org.hamcrest.Matchers.*;
public class RestAssuredExampleTest {
@Test
public void welcome() {
given().
param(”nome", "Elias").
when().
post("/registro").
then().
body(”mensagem", is(”Oi Elias"));
}
}
Rest-Assured
http://rest-assured.io
asserção do resultado
response body
DSL Java para simplificar a execução de testes para serviços REST
SUT – System Under Test
SUT – System Under Test | Front-end
Informar um CPF:
• válido
• que não esteja com restrição
• não cadastrado
SUT – System Under Test | Front-end
Efetuar o cadastro
respeitando as restrições
SUT – System Under Test | Front-end
Efetuar operações de CRUD
Modelo 1
Modelo 1
Você criará apenas um projeto de teste para todas as APIs
BACKEND
TEST
PROEJTO
TESTE
Modelo 1
Ganhos
● Centralização do código em um único projeto
● Rapidez e agilidade na criação de testes e resolução de problemas
Problemas
● Mudanças constantes por diversas pessoas podem gerar efeitos
colaterais nos resultados
Modelo 2
Modelo 2
Um projeto de teste para cada microserviço onde as interações
com o(s) endpoint(s) estarão no projeto de teste.
BACKEND
TEST TEST TEST
PROEJTO
TESTE
Modelo 2
Ganhos
● Descentralização organizada dos projetos de teste para com uma API
● Isolamento entre APIs
Problemas
● Possíveis duplicidades de código
Modelo 3
Modelo 3
Um projeto de teste para cada microserviço dividido em um
projeto cliente e um projeto de teste.
BACKEND
PROEJTO
TESTE
TEST TEST TEST
CLIENT CLIENT CLIENT
Modelo 3
Projeto Cliente
Colocaremos aqui toda a lógica necessária para efetuar as
requisições como:
○ Retorno de exceções
○ Objetos de Transporte
○ Chamada das requisições
○ Customizações para validações
○ Configurações de apontamento (URI, base path, porta)
Modelo 3
Projeto Teste
Colocaremos aqui todos os métodos de utilização da API que
criamos no projeto cliente, criando a lógica de testes e
validando os resultados.
Em resumo, todos os testes serão criados aqui
Modelo 3
Ganhos
● Maior gestão de versões (novas funcionalidades, breaking changes)
● Fácil utilização por outros times
○ eles só precisam consumir o cliente e criar seus testes
Problemas
● Aumento de tempo, comparado com os modelos anteriores
Próximos passos
Próximos passos
Aplicação de estratégias e Design Patters para diminuir a manutenção e
acelerar o desenvolvimento dos testes
Gerais Tipo Biblioteca?
Builder Design Pattern Lombok
Logging Estratégia Log4J
Base Test Testing Pattern
Data Driven Testing Pattern TestNG | JUnit
Test Data Factory Testing Pattern
Properties Strategy Estratégia Owner
Reporting Estratégia Allure Report
RestAssured
Request Specification
Response Specification
Validatable response
Filters
Logging
Gratuito!
SCAN ME
Obrigado!
@eliasnogueira
github.com/eliasnogueira
SCAN ME

More Related Content

What's hot

What's hot (20)

Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...
 
Robot Framework Introduction
Robot Framework IntroductionRobot Framework Introduction
Robot Framework Introduction
 
ATDD Using Robot Framework
ATDD Using Robot FrameworkATDD Using Robot Framework
ATDD Using Robot Framework
 
TDC2015: Testes em APIs REST com Rest-Assured
TDC2015: Testes em APIs REST com Rest-AssuredTDC2015: Testes em APIs REST com Rest-Assured
TDC2015: Testes em APIs REST com Rest-Assured
 
Testes de ponta a ponta
Testes de ponta a pontaTestes de ponta a ponta
Testes de ponta a ponta
 
An Introduction To Automated API Testing
An Introduction To Automated API TestingAn Introduction To Automated API Testing
An Introduction To Automated API Testing
 
Rest assured
Rest assuredRest assured
Rest assured
 
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
 
Test Design and Automation for REST API
Test Design and Automation for REST APITest Design and Automation for REST API
Test Design and Automation for REST API
 
API Testing following the Test Pyramid
API Testing following the Test PyramidAPI Testing following the Test Pyramid
API Testing following the Test Pyramid
 
An Introduction to Unit Testing
An Introduction to Unit TestingAn Introduction to Unit Testing
An Introduction to Unit Testing
 
Automated Testing vs Manual Testing
Automated Testing vs Manual TestingAutomated Testing vs Manual Testing
Automated Testing vs Manual Testing
 
Test automation
Test automationTest automation
Test automation
 
Todas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágilTodas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágil
 
Automation testing introduction for FujiNet
Automation testing introduction for FujiNetAutomation testing introduction for FujiNet
Automation testing introduction for FujiNet
 
Cypress Automation
Cypress  AutomationCypress  Automation
Cypress Automation
 
Automation Testing
Automation TestingAutomation Testing
Automation Testing
 
Karate - powerful and simple framework for REST API automation testing
Karate - powerful and simple framework for REST API automation testingKarate - powerful and simple framework for REST API automation testing
Karate - powerful and simple framework for REST API automation testing
 
Usando containers com auto-escala de testes
Usando containers com auto-escala de testesUsando containers com auto-escala de testes
Usando containers com auto-escala de testes
 
DevCamp - O papel de um testador em uma equipe ágil
DevCamp - O papel de um testador em uma equipe ágilDevCamp - O papel de um testador em uma equipe ágil
DevCamp - O papel de um testador em uma equipe ágil
 

Similar to Criando uma arquitetura para seus testes de API com RestAssured

Similar to Criando uma arquitetura para seus testes de API com RestAssured (20)

Automação de Teste para REST, Web e Mobile
Automação de Teste para REST, Web e MobileAutomação de Teste para REST, Web e Mobile
Automação de Teste para REST, Web e Mobile
 
Desafio Rest API
Desafio Rest APIDesafio Rest API
Desafio Rest API
 
Meet up teste api htt-party cucumber
Meet up   teste api htt-party cucumberMeet up   teste api htt-party cucumber
Meet up teste api htt-party cucumber
 
Construindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS LambdaConstruindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS Lambda
 
Tipos de automação de teste
Tipos de automação de testeTipos de automação de teste
Tipos de automação de teste
 
CDI Extensions e DeltaSpike
CDI Extensions e DeltaSpikeCDI Extensions e DeltaSpike
CDI Extensions e DeltaSpike
 
Paralelize seus testes web e mobile para ter feedbacks mais rápidos
Paralelize seus testes web e mobile para ter feedbacks mais rápidosParalelize seus testes web e mobile para ter feedbacks mais rápidos
Paralelize seus testes web e mobile para ter feedbacks mais rápidos
 
Construindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS LambdaConstruindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS Lambda
 
JavaEE 7, na era do cloud computing
JavaEE 7, na era do cloud computingJavaEE 7, na era do cloud computing
JavaEE 7, na era do cloud computing
 
[GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis...
[GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis...[GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis...
[GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis...
 
Workshop Microservices - Construindo APIs RESTful com Spring Boot
Workshop Microservices - Construindo APIs RESTful com Spring BootWorkshop Microservices - Construindo APIs RESTful com Spring Boot
Workshop Microservices - Construindo APIs RESTful com Spring Boot
 
Construindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS LambdaConstruindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS Lambda
 
Construindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS LambdaConstruindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS Lambda
 
Liferay e Modularização com Arquitetura OSGi
Liferay e Modularização com Arquitetura OSGiLiferay e Modularização com Arquitetura OSGi
Liferay e Modularização com Arquitetura OSGi
 
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
 
[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes Automatizados[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes Automatizados
 
C# 6.0 - Novos Recursos (Agosto/2015)
C# 6.0 - Novos Recursos (Agosto/2015)C# 6.0 - Novos Recursos (Agosto/2015)
C# 6.0 - Novos Recursos (Agosto/2015)
 
Criando APIs com Node e TypeScript
Criando APIs com Node e TypeScriptCriando APIs com Node e TypeScript
Criando APIs com Node e TypeScript
 
TDC 2016 SP - Testes em API REST
TDC 2016 SP - Testes em API RESTTDC 2016 SP - Testes em API REST
TDC 2016 SP - Testes em API REST
 
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
 

More from Elias Nogueira

More from Elias Nogueira (20)

Coach por Imersão - Buscando a excelência técnica com o time
Coach por Imersão - Buscando a excelência técnica com o timeCoach por Imersão - Buscando a excelência técnica com o time
Coach por Imersão - Buscando a excelência técnica com o time
 
O Agile Coach pode (e muitas vezes deve) ser técnico
O Agile Coach pode (e muitas vezes deve) ser técnicoO Agile Coach pode (e muitas vezes deve) ser técnico
O Agile Coach pode (e muitas vezes deve) ser técnico
 
Create an architecture for web test automation
Create an architecture for web test automationCreate an architecture for web test automation
Create an architecture for web test automation
 
Como 4 Agile Coaches trabalham em uma Transformação Ágil
Como 4 Agile Coaches trabalham em uma Transformação Ágil Como 4 Agile Coaches trabalham em uma Transformação Ágil
Como 4 Agile Coaches trabalham em uma Transformação Ágil
 
Papel do QA na Transformação Ágil
Papel do QA na Transformação ÁgilPapel do QA na Transformação Ágil
Papel do QA na Transformação Ágil
 
BDD não é automação de teste - Scrum Gathering
BDD não é automação de teste - Scrum GatheringBDD não é automação de teste - Scrum Gathering
BDD não é automação de teste - Scrum Gathering
 
Como criar e executar testes paralelos web usando Selenium e containers
Como criar e executar testes paralelos web usando Selenium e containersComo criar e executar testes paralelos web usando Selenium e containers
Como criar e executar testes paralelos web usando Selenium e containers
 
Improve Yourself -- Learn the Skills, Join the Community - Tests
Improve Yourself -- Learn the Skills, Join the Community - TestsImprove Yourself -- Learn the Skills, Join the Community - Tests
Improve Yourself -- Learn the Skills, Join the Community - Tests
 
BDD não é Automação de Testes
BDD não é Automação de TestesBDD não é Automação de Testes
BDD não é Automação de Testes
 
Criando uma grid para execução de testes paralelo com Appium
Criando uma grid para execução de testes paralelo com AppiumCriando uma grid para execução de testes paralelo com Appium
Criando uma grid para execução de testes paralelo com Appium
 
Como ter sucesso ministrando uma palestra técnica
Como ter sucesso ministrando uma palestra técnicaComo ter sucesso ministrando uma palestra técnica
Como ter sucesso ministrando uma palestra técnica
 
Quais são os steps de que deve conter na sua pipeline?
Quais são os steps de que deve conter na sua pipeline?Quais são os steps de que deve conter na sua pipeline?
Quais são os steps de que deve conter na sua pipeline?
 
Tem que testar mesmo?
Tem que testar mesmo?Tem que testar mesmo?
Tem que testar mesmo?
 
Testes em todos os niveis de planejamento
Testes em todos os niveis de planejamentoTestes em todos os niveis de planejamento
Testes em todos os niveis de planejamento
 
Coaching the Agile Coach
Coaching the Agile CoachCoaching the Agile Coach
Coaching the Agile Coach
 
Java Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and MobileJava Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and Mobile
 
Trust Your Pipeline - Automatically Testing and End-to-End Java Application
Trust Your Pipeline - Automatically Testing and End-to-End Java ApplicationTrust Your Pipeline - Automatically Testing and End-to-End Java Application
Trust Your Pipeline - Automatically Testing and End-to-End Java Application
 
O que é um Agile Coach
O que é um Agile CoachO que é um Agile Coach
O que é um Agile Coach
 
Criando uma grid para execução de teste automatizado funcional e e2e
Criando uma grid para execução de teste automatizado funcional e e2eCriando uma grid para execução de teste automatizado funcional e e2e
Criando uma grid para execução de teste automatizado funcional e e2e
 
A importancia de testes em todos os aspectos
A importancia de testes em todos os aspectosA importancia de testes em todos os aspectos
A importancia de testes em todos os aspectos
 

Recently uploaded

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
Natalia Granato
 

Recently uploaded (6)

ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 

Criando uma arquitetura para seus testes de API com RestAssured

  • 1. Criando uma arquitetura para seus testes de API com RestAssured @eliasnogueira
  • 3. Pirâmide de Testes Original UI Tests Service Tests Unit Tests mais isolamento mais integração rápido lento
  • 4. Pirâmide de Testes IdealPirâmide de Testes Ideal
  • 5. FRONTENDBACKEND API Gateway testes funcionais e de aceitação para o frontend web e/ou mobile testes unitários e integração no backend testes na api de consumo
  • 7. APIs Individuais API API API API API API API API Assumimos que as API já possuem testes unitários Testes Unitários done!
  • 9. Testes de Contrato e E2E API API API API API API API API Contrato & E2E
  • 10. Contract and E2E testing API API API API API API API API Contrato & E2E Garante a comunicação entre APIs
  • 11. Contract and E2E testing API API API API API API API API Contrato & E2E Garante que as APIs podem ser utilizadas em conjunto
  • 12. Como serão os projetos de teste? Modelo 1 Um projeto de teste para todos os microserviço BACKEND TEST PROEJTO TESTE
  • 13. Como serão os projetos de teste? Modelo 2 Um projeto de teste para cada microserviço BACKEND TEST TEST TEST PROEJTO TESTE
  • 14. Como serão os projetos de teste? Modelo 3 Um projeto de teste para cada microserviço dividido em projetos de cliente e testes BACKEND PROEJTO TESTE TEST TEST TEST CLIENT CLIENT CLIENT
  • 16. Rest-Assured http://rest-assured.io DSL Java para simplificar a execução de testes para serviços REST import static io.restassured.RestAssured.*; import static org.hamcrest.Matchers.*; public class RestAssuredExampleTest { @Test public void welcome() { given(). param(”nome", "Elias"). when(). post("/registro"). then(). body(”mensagem", is(”Oi Elias")); } }
  • 17. import static io.restassured.RestAssured.*; import static org.hamcrest.Matchers.*; public class RestAssuredExampleTest { @Test public void welcome() { given(). param(”nome", "Elias"). when(). post("/registro"). then(). body(”mensagem", is(”Oi Elias")); } } Rest-Assured http://rest-assured.io importar as bibliotecas DSL Java para simplificar a execução de testes para serviços REST
  • 18. import static io.restassured.RestAssured.*; import static org.hamcrest.Matchers.*; public class RestAssuredExampleTest { @Test public void welcome() { given(). param(”nome", "Elias"). when(). post("/registro"). then(). body(”mensagem", is(”Oi Elias")); } } Rest-Assured http://rest-assured.io pre-condição do request DSL Java para simplificar a execução de testes para serviços REST
  • 19. import static io.restassured.RestAssured.*; import static org.hamcrest.Matchers.*; public class RestAssuredExampleTest { @Test public void welcome() { given(). param(”nome", "Elias"). when(). post("/registro"). then(). body(”mensagem", is(”Oi Elias")); } } Rest-Assured http://rest-assured.io ação (request) DSL Java para simplificar a execução de testes para serviços REST
  • 20. import static io.restassured.RestAssured.*; import static org.hamcrest.Matchers.*; public class RestAssuredExampleTest { @Test public void welcome() { given(). param(”nome", "Elias"). when(). post("/registro"). then(). body(”mensagem", is(”Oi Elias")); } } Rest-Assured http://rest-assured.io asserção do resultado response body DSL Java para simplificar a execução de testes para serviços REST
  • 21. SUT – System Under Test
  • 22. SUT – System Under Test | Front-end Informar um CPF: • válido • que não esteja com restrição • não cadastrado
  • 23. SUT – System Under Test | Front-end Efetuar o cadastro respeitando as restrições
  • 24. SUT – System Under Test | Front-end Efetuar operações de CRUD
  • 26. Modelo 1 Você criará apenas um projeto de teste para todas as APIs BACKEND TEST PROEJTO TESTE
  • 27. Modelo 1 Ganhos ● Centralização do código em um único projeto ● Rapidez e agilidade na criação de testes e resolução de problemas Problemas ● Mudanças constantes por diversas pessoas podem gerar efeitos colaterais nos resultados
  • 28.
  • 30. Modelo 2 Um projeto de teste para cada microserviço onde as interações com o(s) endpoint(s) estarão no projeto de teste. BACKEND TEST TEST TEST PROEJTO TESTE
  • 31. Modelo 2 Ganhos ● Descentralização organizada dos projetos de teste para com uma API ● Isolamento entre APIs Problemas ● Possíveis duplicidades de código
  • 32.
  • 34. Modelo 3 Um projeto de teste para cada microserviço dividido em um projeto cliente e um projeto de teste. BACKEND PROEJTO TESTE TEST TEST TEST CLIENT CLIENT CLIENT
  • 35. Modelo 3 Projeto Cliente Colocaremos aqui toda a lógica necessária para efetuar as requisições como: ○ Retorno de exceções ○ Objetos de Transporte ○ Chamada das requisições ○ Customizações para validações ○ Configurações de apontamento (URI, base path, porta)
  • 36. Modelo 3 Projeto Teste Colocaremos aqui todos os métodos de utilização da API que criamos no projeto cliente, criando a lógica de testes e validando os resultados. Em resumo, todos os testes serão criados aqui
  • 37. Modelo 3 Ganhos ● Maior gestão de versões (novas funcionalidades, breaking changes) ● Fácil utilização por outros times ○ eles só precisam consumir o cliente e criar seus testes Problemas ● Aumento de tempo, comparado com os modelos anteriores
  • 38.
  • 40. Próximos passos Aplicação de estratégias e Design Patters para diminuir a manutenção e acelerar o desenvolvimento dos testes Gerais Tipo Biblioteca? Builder Design Pattern Lombok Logging Estratégia Log4J Base Test Testing Pattern Data Driven Testing Pattern TestNG | JUnit Test Data Factory Testing Pattern Properties Strategy Estratégia Owner Reporting Estratégia Allure Report RestAssured Request Specification Response Specification Validatable response Filters Logging