Article image
Lucas Blasi
Lucas Blasi25/04/2023 20:00
Compartilhe

Testes de Integração na AWS em Node.Js

  • #AWS
  • #Node.js

No Início pensamos em diversas formas de como executar testes na aws, mas a grande pergunta foi como realizar consultas de microserviços com diversas lambdas e filas SQS sem criar nenhum mock dos serviços?

Depois de muito estudo e muita procura, decidimos executar os testes de uma forma alternativa em nossos serviços, definimos que toda lambda deve armazenar um log dentro de um banco de dados, para melhor demonstrar vamos utilizar o DynamoDB.

Para iniciarmos a construção de nossos testes será necessário codifica-lo, e, para isso iremos utilizar o Jest para criação dos testes e o AWS-SDK para executar nossas consultas e envios de mensagens na AWS.

Em nosso projeto criamos uma pasta src e dentro desta pasta “src” temos uma cadeia de pastas (Models, utils, test).

Pasta Models

A Pasta Models é a pasta onde iremos incluir nossos modelos de mensagem a serem postados na fila.

Pasta Utils

A Pasta Utils é a pasta que iremos incluir nossos arquivos de configuração sqs e dynamoDB

Pasta Tests

A Pasta Tests é a pasta que iremos incluir todas nossas cadeias de testes

A Nossa idéia para os testes é que seja postada a mensagem em uma fila, e em seguida efetuarmos a consulta dessa mensagem em um banco de logs.

Configurando nosso envio de mensagem para fila sqs.

Para enviarmos nossa mensagem a uma fila sqs será necessário configurarmos nosso arquivo sqs.js, esse arquivo contará com a QueueUrl (url da fila), MessageBody (mensagem Json para validar o serviço).

image

Configurando a consulta das mensagens no dynamoDB.

Para efetuarmos a consulta em nosso banco de dados vamos configurar o nosso arquivo dynamo.js, nesse arquivo iremos definir TableName(nome da tabela), KeyExpression(é a nossa chave de expressão e condição de consulta), KeyNames(são os atributos da mensagem) KeyAttributes(São os valores de cada atributo da consulta).

image

Criando nosso teste

Para criação dos nossos testes vamos importar nosso sqs.js , o dynamo.js e a nossa mensagem na pasta models. Veja abaixo como foi codificada a mensagem de forma simplificada.

image

Essa foi a solução que encontramos para testes automatizados em produção sem criar nenhum serviço mock em nosso caminho.

Compartilhe
Comentários (0)