Testes end-to-end em
Microserviços com Docker
Bárbara Cabral
QA Engineer +10 anos
Consultant +4 empresas
Projetos que atuei:
Unimed Florianópolis, Governo de
SC, Tractebel, Eletrosul, Celesc,
SSP-SC, Pleno Card, Lollapalooza,
CPqD, Resultados Digitais, Caixa.
Palestrante:
N’ways to Test, October Test,
CNQS, TDC, Agile Testers
Conference, Agile Trends, Khomp..
Comunidades
Agenda
Aborda
Contextualização
Estratégia de Testes
Arquitetura
Não aborda
Detalhes do Cliente
Código-fonte
Live-coding
Arquitetura
Telas
Módulos
Front
Back
Arquitetura - módule “E” - consumo da API
Back End
Front End
API “E”
web module C
web module B
web module E
web module A
Service X
Sub web
module E1
Sub Web
Module E2
web module D
Service Y
Arquitetura - web module “A” - consumo de APIs
Back End
Front End
API “E”
web module E
web module A
Service X
Sub web
module E1
Sub Web
Module E2
Service Y
API “G”
API “F” API “H”
Arquitetura - Pipelines - Versionamento
DEV QA
Update
Manager
TSTLocal
DEV QA PRDTSTLocal
Back End
Front End
DEV QATSTLocal
n repos
DEV QA PRDTSTLocal
n repos
PRD
PRD
Update
Manager
Update
Manager
Update
Manager
Dificuldades
Testes end-to-end
Com Microserviços
Repositórios separados
Pipelines diferentes para
back/front
Consumo de outros Serviços
pela API
Promover o código na esteira:
DEV >> TST >> QA >> PRD
Docker > Plataforma Open
Source escrito em Go
Go > Linguagem de programação
de alto desempenho desenvolvida
dentro do Google
Imagens & Containers
1. Imagem com os Testes
2. Container de Testes
Testes
Depende de o
servidor do
Selenium
estar
rodando
E o Servidor do
Selenium?
Estrutura 1 Front-end por Web Module, testes executando no Pipeline do Front
DEV QA Update ManagerTSTLocal
Web Module A
API
“E”
API
“F”
API
“G”
API
“H”
Testes de Aceitação
no pipeline do Front
Testing Module A
ou
Estrutura 2
DEV QA Update ManagerTSTLocal
Web Module A
API “E”
Web Module B Web Module C
ou
Testes de Aceitação
no pipeline do back
Testing Module E
Front-end por API Module, testes executando no Pipeline do Back
Docker Compose ● Arquivo yaml
● Orquestra a criação e administração
de um conjunto de containers
● Estabelece as conexões entre eles
● Volumes para armazenar dados
● Variáveis de Ambientes
compartilhadas
● Configuraçoes
Docker Compose
Docker
Compose
Docker
Compose
A
B
F
S
E
L
E
N
I
U
M
T
E
S
T
E
S
Repositórios ❏ meta
❏ API E
❏ dockerfile
❏ Web module A
❏ dockerfile
❏ Web module B
❏ dockerfile
❏ Test module A
❏ Dokerfile
❏ docker-compose.yml
API “E”
Web-module AWeb-module A
Test modeule A
Conclusão ● Complexidade e grande esforço de configuração dos
pipelines no CI
● Complexidade de configurar todos os
microserviços para rodarem juntos com docker
○ Exige esforço de vários profissionais (back,
front, devops, testes, etc)
● A infra de testes precisa evoluir junto com a infra
dos respositórios
● Vale a pena apenas para sistemas críticos que não
podem parar de funcionar
Obrigada!
Bee Labs
Onde você pode me
encontrar
twitter @barbarapcabral
email barbaracabral@gmail.com
linkedin: /in/barbaracabral
Representante

Testes de ui com docker DevFest2018 - GDG Floripa

  • 1.
  • 2.
    Bárbara Cabral QA Engineer+10 anos Consultant +4 empresas Projetos que atuei: Unimed Florianópolis, Governo de SC, Tractebel, Eletrosul, Celesc, SSP-SC, Pleno Card, Lollapalooza, CPqD, Resultados Digitais, Caixa. Palestrante: N’ways to Test, October Test, CNQS, TDC, Agile Testers Conference, Agile Trends, Khomp..
  • 3.
  • 4.
    Agenda Aborda Contextualização Estratégia de Testes Arquitetura Nãoaborda Detalhes do Cliente Código-fonte Live-coding
  • 5.
  • 6.
    Arquitetura - módule“E” - consumo da API Back End Front End API “E” web module C web module B web module E web module A Service X Sub web module E1 Sub Web Module E2 web module D Service Y
  • 7.
    Arquitetura - webmodule “A” - consumo de APIs Back End Front End API “E” web module E web module A Service X Sub web module E1 Sub Web Module E2 Service Y API “G” API “F” API “H”
  • 8.
    Arquitetura - Pipelines- Versionamento DEV QA Update Manager TSTLocal DEV QA PRDTSTLocal Back End Front End DEV QATSTLocal n repos DEV QA PRDTSTLocal n repos PRD PRD Update Manager Update Manager Update Manager
  • 9.
    Dificuldades Testes end-to-end Com Microserviços Repositóriosseparados Pipelines diferentes para back/front Consumo de outros Serviços pela API Promover o código na esteira: DEV >> TST >> QA >> PRD
  • 10.
    Docker > PlataformaOpen Source escrito em Go Go > Linguagem de programação de alto desempenho desenvolvida dentro do Google
  • 11.
  • 12.
    1. Imagem comos Testes
  • 13.
    2. Container deTestes Testes Depende de o servidor do Selenium estar rodando E o Servidor do Selenium?
  • 14.
    Estrutura 1 Front-endpor Web Module, testes executando no Pipeline do Front DEV QA Update ManagerTSTLocal Web Module A API “E” API “F” API “G” API “H” Testes de Aceitação no pipeline do Front Testing Module A ou
  • 15.
    Estrutura 2 DEV QAUpdate ManagerTSTLocal Web Module A API “E” Web Module B Web Module C ou Testes de Aceitação no pipeline do back Testing Module E Front-end por API Module, testes executando no Pipeline do Back
  • 16.
    Docker Compose ●Arquivo yaml ● Orquestra a criação e administração de um conjunto de containers ● Estabelece as conexões entre eles ● Volumes para armazenar dados ● Variáveis de Ambientes compartilhadas ● Configuraçoes
  • 17.
  • 18.
  • 19.
  • 20.
    Repositórios ❏ meta ❏API E ❏ dockerfile ❏ Web module A ❏ dockerfile ❏ Web module B ❏ dockerfile ❏ Test module A ❏ Dokerfile ❏ docker-compose.yml API “E” Web-module AWeb-module A Test modeule A
  • 21.
    Conclusão ● Complexidadee grande esforço de configuração dos pipelines no CI ● Complexidade de configurar todos os microserviços para rodarem juntos com docker ○ Exige esforço de vários profissionais (back, front, devops, testes, etc) ● A infra de testes precisa evoluir junto com a infra dos respositórios ● Vale a pena apenas para sistemas críticos que não podem parar de funcionar
  • 22.
    Obrigada! Bee Labs Onde vocêpode me encontrar twitter @barbarapcabral email barbaracabral@gmail.com linkedin: /in/barbaracabral Representante