Testes de Implementação
Testes de Implementação
Vamos agora fazer alguns testes práticos para verificar como podemos utilizar algumas bibliotecas e frameworks para testar comportamentos da nossa aplicação em uma aplicação síncrona e assíncrona.

Para todos os nossos testes, os ambientes de desenvolvimento e produção serão executados em containers Docker. Para isso, utilizaremos o arquivo docker-compose.yml que está disponível no repositório do projeto. Vou utilizar o mapeamento de volume para alterar nossos códigos fontes e testes sem a necessidade de recriar os containers.
Testes Síncronos
Primeiro vamos avaliar nosso sistema de forma síncrona. Para isso, vamos utilizar a seguinte arquitetura:
Neste sistema, vamos iniciar a sua construção com o arquivo YAML que vai definir a estrutura do nosso sistema. Vamos criar um arquivo chamado docker-compose.yml na raiz do nosso projeto com o seguinte conteúdo:
Sugestão:
# Use postgres/example user/password credentials
version: '3.9'
services:
api:
image: python:3.9
working_dir: /app
volumes:
- pip39:/usr/local/lib/python3.9/site-packages
- .:/app
ports:
- "5005:5000"
command: python app.py
restart: on-failure
deploy:
resources:
limits:
memory: 256M
depends_on:
- requirements
requirements:
image: python:3.9-slim-buster
working_dir: /app
volumes:
- pip39:/usr/local/lib/python3.9/site-packages
- .:/app
command: pip install -r requirements.txt
db:
image: postgres
restart: always
# set shared memory limit when using docker-compose
shm_size: 128mb
# or set shared memory limit when deploy via swarm stack
#volumes:
# - type: tmpfs
# target: /dev/shm
# tmpfs:
# size: 134217728 # 128*2^20 bytes = 128Mb
ports:
- "5432:5432"
environment:
POSTGRES_PASSWORD: example
deploy:
resources:
limits:
memory: 256M
adminer:
image: adminer
restart: always
ports:
- 8080:8080
deploy:
resources:
limits:
memory: 256M
volumes:
pip39: