0Pricing
DevOps Bootcamp · Aula

Testes de integração de recursos de nuvem

Implemente testes de integração para verificar a implantação correta e o funcionamento dos recursos reais de nuvem provisionados pelo Terraform.

Testes de integração de recursos de nuvem é uma aula grátis de DevOps Bootcamp no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de DevOps Bootcamp, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de DevOps Bootcamp inclui 4 aulas no total.

O que são testes de integração?

Boas-vindas! Nesta lição, exploraremos os testes de integração das suas configurações do Terraform. Ao contrário dos testes unitários, que verificam componentes individuais de forma isolada, os testes de integração confirmam se várias partes da sua infraestrutura funcionam corretamente em conjunto.

No caso do Terraform, isso significa implementar recursos de nuvem reais e, em seguida, verificar o comportamento e as interações entre eles.

Por que fazer testes de integração do Terraform?

Os testes de integração são essenciais para o Terraform porque dão a confiança de que o seu código:

  • É implementado corretamente: verifica se os recursos são criados conforme esperado.
  • Funciona como previsto: verifica a funcionalidade, não apenas a sintaxe.
  • Lida com dependências: garante que os recursos interligados comunicam entre si.
  • Evita regressões: deteta problemas quando são feitas alterações.

O objetivo é testar o funcionamento real em um ambiente controlado.

Conhecendo o Terratest

Embora pudesse escrever scripts personalizados, a ferramenta mais popular para testes de integração do Terraform é o Terratest. Trata-se de uma biblioteca de Go de código aberto desenvolvida pela HashiCorp.

O Terratest permite:

  • Escrever código em Go para implementar o Terraform.
  • Executar verificações nos recursos implementados.
  • Destruir os recursos depois dos testes.

Ele fornece auxiliares para interagir com o Terraform, APIs de nuvem e muito mais.

Configurando o Terratest

Para usar o Terratest, precisará ter o Go instalado no seu computador. Depois de preparar o Go, criará um novo módulo de Go para os seus testes:

1. Crie um diretório para os seus testes (por exemplo, test/).

2. Inicialize um módulo de Go dentro dele:

cd test
go mod init my_tf_tests

Adicionando a dependência do Terratest

Depois de inicializar o módulo de Go, precisa adicionar o Terratest como dependência. Este comando obtém a biblioteca e atualiza o seu arquivo go.mod:

go get github.com/gruntwork-io/terratest/modules/terraform

O nosso módulo de teste do Terraform

Vamos criar uma configuração simples do Terraform que queremos testar. Será um bucket básico do S3. Salve-a como s3-module/main.tf:

resource "aws_s3_bucket" "example" {
  bucket = "my-unique-test-bucket-12345"
  tags = {
    Environment = "test"
    ManagedBy   = "Terraform"
  }
}

Escrevendo o seu primeiro teste com Terratest

Agora, vamos escrever o nosso arquivo de teste em Go. Crie um arquivo como test/s3_test.go. As etapas principais são:

  • Definir as opções do Terraform (o caminho para a configuração).
  • Inicializar e aplicar o Terraform.
  • Executar verificações.
  • Destruir os recursos.

Isso garante um estado limpo depois de cada execução do teste.

Terratest: inicializar, aplicar e verificar

Aqui está o código em Go para o nosso teste do bucket do S3. Observe como usamos terraform.InitAndApply para provisionar a infraestrutura e, em seguida, recuperar saídas ou chamar APIs da AWS para fazer as verificações.

package test

import (
  "testing"
  "github.com/gruntwork-io/terratest/modules/aws"
  "github.com/gruntwork-io/terratest/modules/terraform"
  "github.com/stretchr/testify/assert"
)

func TestS3BucketCreation(t *testing.T) {
  t.Parallel()

  terraformOptions := &terraform.Options{
    TerraformDir: "../s3-module",
  }

  // Defer destroy to ensure cleanup
  defer terraform.Destroy(t, terraformOptions)

  // Init and apply Terraform
  terraform.InitAndApply(t, terraformOptions)

  // Get the bucket name directly from the config or outputs
  bucketName := "my-unique-test-bucket-12345"

  // Assertions
  aws.AssertS3BucketExists(t, "us-east-1", bucketName)
  tags := aws.GetS3BucketTags(t, "us-east-1", bucketName)
  assert.Equal(t, "test", tags["Environment"])
}

Executando o seu teste de integração

Para executar o seu Terratest, aceda ao diretório test/ no terminal e execute o comando de teste do Go. A opção -v mostra uma saída detalhada.

O Terratest irá:

  • Inicializar o Terraform.
  • Aplicar a configuração.
  • Realizar as verificações.
  • Destruir os recursos criados.
cd test
go test -v

Boas práticas para testes de integração

Tenha estas dicas em mente para realizar testes de integração eficazes:

  • Isolamento: use nomes exclusivos ou sufixos aleatórios nos recursos para evitar conflitos.
  • Limpeza: destrua sempre os recursos depois dos testes (defer terraform.Destroy).
  • Custo: tenha em atenção o custo dos recursos. Use recursos pequenos e baratos.
  • Velocidade: os testes de integração são mais lentos do que os testes unitários. Execute-os com menos frequência, talvez no CI/CD.
  • Realismo: teste no mesmo ambiente de nuvem (ou em uma conta de teste dedicada) no qual fará a implementação.

Verifique a sua compreensão

Qual das opções a seguir é um benefício principal de usar testes de integração para configurações do Terraform?

Recapitulação: testes de integração

Aprendeu sobre testes de integração do Terraform! Abordámos:

  • O que são testes de integração e por que são importantes para o Terraform.
  • Como o Terratest, uma biblioteca de Go, ajuda a escrever esses testes.
  • O fluxo de trabalho básico: configurar, aplicar, verificar e destruir.
  • Boas práticas para escrever testes de integração eficazes e económicos.

Os testes de integração dão a confiança de que a sua infraestrutura se comporta corretamente no mundo real.

Perguntas Frequentes

A aula “Testes de integração de recursos de nuvem” é grátis?

Sim — o texto completo de “Testes de integração de recursos de nuvem” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de DevOps Bootcamp, atualize para CoddyKit PRO. O curso de DevOps Bootcamp inclui 4 aulas no total.

O que vou aprender em “Testes de integração de recursos de nuvem”?

Implemente testes de integração para verificar a implantação correta e o funcionamento dos recursos reais de nuvem provisionados pelo Terraform. Você pratica DevOps Bootcamp com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar DevOps Bootcamp?

Nenhuma experiência prévia é necessária. DevOps Bootcamp no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Testes de integração de recursos de nuvem”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de DevOps Bootcamp?

Sim. Cada aula de DevOps Bootcamp inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. `validate` e `fmt` do Terraform
  2. Testes unitários com Terratest
  3. Testes de integração de recursos de nuvem
  4. Política como código e verificações de conformidade
← Voltar para DevOps Bootcamp