0Pricing
DevOps Bootcamp · Ders

Bulut Kaynakları için Tümleştirme Testleri

Terraform tarafından oluşturulan gerçek bulut kaynaklarının doğru şekilde dağıtıldığını ve çalıştığını doğrulamak için tümleştirme testleri uygulayın.

Bulut Kaynakları için Tümleştirme Testleri, CoddyKit'te ücretsiz bir DevOps Bootcamp dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, DevOps Bootcamp öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. DevOps Bootcamp kursu toplamda 4 dersten oluşur.

Entegrasyon Testi Nedir?

Hoş geldiniz! Bu derste Terraform yapılandırmalarınız için entegrasyon testini inceleyeceğiz. Bileşenleri yalıtılmış olarak denetleyen birim testlerinin aksine entegrasyon testleri, altyapınızın birden çok bölümünün birlikte doğru şekilde çalıştığını doğrular.

Terraform açısından bu, gerçek bulut kaynaklarını dağıtmak ve ardından bunların davranışlarını ve etkileşimlerini denetlemek anlamına gelir.

Terraform Neden Entegrasyon Testinden Geçirilir?

Entegrasyon testleri Terraform için kritik öneme sahiptir; çünkü kodunuzun şunları yaptığından emin olmanızı sağlar:

  • Doğru şekilde dağıtılır: Kaynakların beklendiği gibi oluşturulduğunu doğrular.
  • Amacına uygun çalışır: Yalnızca söz dizimini değil, işlevselliği de denetler.
  • Bağımlılıkları yönetir: Birbirine bağlı kaynakların iletişim kurmasını sağlar.
  • Gerilemeleri önler: Değişiklik yapıldığında ortaya çıkan sorunları yakalar.

Buradaki amaç, kontrollü bir ortamda 'gerçek durumu' test etmektir.

Terratest'e Giriş

Özel betikler yazabilseniz de Terraform entegrasyon testi için en popüler araç Terratest'tir. Bu, HashiCorp tarafından geliştirilen açık kaynaklı bir Go kitaplığıdır.

Terratest şunları yapmanızı sağlar:

  • Terraform'u dağıtmak için Go kodu yazmak.
  • Dağıtılan kaynaklara karşı doğrulamalar çalıştırmak.
  • Testlerden sonra kaynakları yok etmek.

Terraform, bulut API'leri ve daha fazlasıyla etkileşim kurmak için yardımcı araçlar sunar.

Terratest'i Kurma

Terratest'i kullanmak için makinenizde Go'nun yüklü olması gerekir. Go hazır olduğunda testleriniz için yeni bir Go modülü oluşturacaksınız:

1. Testleriniz için bir dizin oluşturun (örneğin test/).

2. İçinde bir Go modülü başlatın:

cd test
go mod init my_tf_tests

Terratest Bağımlılığını Ekleme

Go modülünüzü başlattıktan sonra Terratest'i bağımlılık olarak eklemeniz gerekir. Bu komut kitaplığı getirir ve go.mod dosyanızı günceller:

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

Test Edeceğimiz Terraform Modülü

Test etmek istediğimiz basit bir Terraform yapılandırması oluşturalım. Bu, temel bir S3 bucket'ı olacaktır. Bunu s3-module/main.tf olarak kaydedin:

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

İlk Terratest'inizi Yazma

Şimdi Go test dosyamızı yazalım. test/s3_test.go gibi bir dosya oluşturun. Temel adımlar şunlardır:

  • Terraform seçeneklerini tanımlayın (yapılandırmanın yolu).
  • Terraform'u başlatın ve uygulayın.
  • Doğrulamaları çalıştırın.
  • Kaynakları yok edin.

Bu, her test çalıştırmasından sonra temiz bir durum sağlar.

Terratest: Başlatma, Uygulama ve Doğrulama

S3 bucket testimiz için Go kodu aşağıdadır. Altyapıyı hazırlamak için terraform.InitAndApply kullandığımıza, ardından doğrulamalar için çıktıları aldığımıza veya AWS API'lerini çağırdığımıza dikkat edin.

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"])
}

Entegrasyon Testinizi Çalıştırma

Terratest'inizi çalıştırmak için terminalde test/ dizininize gidin ve Go test komutunu yürütün. -v bayrağı ayrıntılı çıktıyı gösterir.

Terratest şunları yapar:

  • Terraform'u başlatır.
  • Yapılandırmayı uygular.
  • Doğrulamaları gerçekleştirir.
  • Oluşturulan kaynakları yok eder.
cd test
go test -v

Entegrasyon Testleri İçin En İyi Uygulamalar

Etkili entegrasyon testi için şu ipuçlarını aklınızda bulundurun:

  • Yalıtım: Çakışmaları önlemek için kaynaklarda benzersiz adlar veya rastgele son ekler kullanın.
  • Temizlik: Testlerden sonra kaynakları her zaman yok edin (defer terraform.Destroy).
  • Maliyet: Kaynak maliyetlerine dikkat edin. Küçük ve ucuz kaynaklar kullanın.
  • Hız: Entegrasyon testleri birim testlerinden daha yavaştır. Bunları daha seyrek, örneğin CI/CD ortamında çalıştırın.
  • Gerçekçilik: Dağıtım yapacağınız bulut ortamıyla aynı ortamda (veya özel bir test hesabında) test edin.

Anlayışınızı Kontrol Edin

Terraform yapılandırmaları için entegrasyon testleri kullanmanın başlıca faydalarından biri aşağıdakilerden hangisidir?

Özet: Entegrasyon Testi

Terraform için entegrasyon testlerini öğrendiniz! Şu konuları ele aldık:

  • Entegrasyon testlerinin ne olduğunu ve Terraform için neden önemli olduklarını.
  • Bir Go kitaplığı olan Terratest'in bu testleri yazmaya nasıl yardımcı olduğunu.
  • Temel iş akışını: kurulum, uygulama, doğrulama ve yok etme.
  • Etkili ve maliyet açısından verimli entegrasyon testleri yazmak için en iyi uygulamaları.

Entegrasyon testleri, altyapınızın gerçek dünyada doğru davrandığına dair güven sağlar.

Sıkça Sorulan Sorular

“Bulut Kaynakları için Tümleştirme Testleri” dersi ücretsiz mi?

Evet — “Bulut Kaynakları için Tümleştirme Testleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve DevOps Bootcamp kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. DevOps Bootcamp kursu toplamda 4 dersten oluşur.

“Bulut Kaynakları için Tümleştirme Testleri” dersinde ne öğreneceğim?

Terraform tarafından oluşturulan gerçek bulut kaynaklarının doğru şekilde dağıtıldığını ve çalıştığını doğrulamak için tümleştirme testleri uygulayın. DevOps Bootcamp ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

DevOps Bootcamp öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te DevOps Bootcamp, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Bulut Kaynakları için Tümleştirme Testleri” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu DevOps Bootcamp dersinde kod yazıp çalıştırabilir miyim?

Evet. Her DevOps Bootcamp dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Terraform `validate` ve `fmt`
  2. Terratest ile Birim Testleri
  3. Bulut Kaynakları için Tümleştirme Testleri
  4. Kod Olarak İlke ve Uyumluluk Denetimleri
← DevOps Bootcamp Sayfasına Dön