DevOps-bootcamp · Oppitunti

Pilviresurssien integraatiotestaus

Toteuttakaa integraatiotestejä varmistaaksenne Terraformilla luotujen todellisten pilviresurssien oikean käyttöönoton ja toiminnan.

Oppitunti 3/412 vaihetta

Pilviresurssien integraatiotestaus on ilmainen DevOps-bootcamp-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu DevOps-bootcamp-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. DevOps-bootcamp-kurssilla on yhteensä 4 oppituntia.

Mitä integraatiotestaus on?

Tervetuloa! Tässä oppitunnissa tutustumme Terraform-määritysten integraatiotestaukseen. Yksikkötestit tarkistavat yksittäisiä komponentteja erillään toisistaan, kun taas integraatiotesteillä varmistetaan, että infrastruktuurin useat osat toimivat yhdessä oikein.

Terraformin tapauksessa tämä tarkoittaa oikeiden pilviresurssien käyttöönottoa ja niiden toiminnan sekä keskinäisen vuorovaikutuksen tarkistamista.

Miksi Terraformia kannattaa integraatiotestata?

Integraatiotestit ovat Terraformissa tärkeitä, koska niiden avulla voitte varmistua, että koodinne:

  • ottaa resurssit käyttöön oikein: Varmistaa, että resurssit luodaan odotetulla tavalla.
  • toimii tarkoituksenmukaisesti: Tarkistaa toiminnallisuuden eikä vain syntaksia.
  • käsittelee riippuvuudet: Varmistaa, että toisiinsa liittyvät resurssit pystyvät viestimään keskenään.
  • estää regressiot: Havaitsee muutosten aiheuttamat ongelmat.

Tarkoituksena on testata todellista ympäristöä hallitusti.

Terratestin esittely

Voisitte kirjoittaa omia komentosarjoja, mutta suosituin Terraformin integraatiotestauksen työkalu on Terratest. Se on HashiCorpin kehittämä avoimen lähdekoodin Go-kirjasto.

Terratestin avulla voitte:

  • kirjoittaa Go-koodia Terraformin resurssien käyttöönottoon.
  • tehdä tarkistuksia käyttöön otettuja resursseja vastaan.
  • tuhota resurssit testien jälkeen.

Se tarjoaa apufunktioita Terraformin, pilvipalveluiden ohjelmointirajapintojen ja muiden kohteiden käsittelyyn.

Terratestin määrittäminen

Terratestin käyttämistä varten koneellenne on asennettava Go. Kun Go on valmis käyttöön, luotte testeillenne uuden Go-moduulin:

1. Luo testejä varten hakemisto (esimerkiksi test/).

2. Alusta sen sisällä Go-moduuli:

cd test
go mod init my_tf_tests

Terratest-riippuvuuden lisääminen

Kun Go-moduuli on alustettu, Terratest on lisättävä riippuvuudeksi. Tämä komento noutaa kirjaston ja päivittää go.mod-tiedoston:

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

Testattava Terraform-moduulimme

Luodaan yksinkertainen Terraform-määritys, jonka haluamme testata. Se on perustason S3-säilö. Tallentakaa se nimellä s3-module/main.tf:

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

Ensimmäisen Terratest-testin kirjoittaminen

Kirjoitetaan nyt Go-testitiedosto. Luokaa esimerkiksi tiedosto test/s3_test.go. Keskeiset vaiheet ovat:

  • Määritä Terraform-asetukset (määrityksen polku).
  • Alusta ja ota Terraform käyttöön.
  • Suorita tarkistukset.
  • Tuhoa resurssit.

Näin tila pysyy puhtaana jokaisen testiajon jälkeen.

Terratest: alustus, käyttöönotto ja tarkistukset

Tässä on S3-säilötestimme Go-koodi. Huomaa, kuinka käytämme terraform.InitAndApply-funktiota infrastruktuurin käyttöönottoon ja haemme sen jälkeen tulosteita tai kutsumme AWS-ohjelmointirajapintoja tarkistuksia varten.

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

Integraatiotestin suorittaminen

Suorittaaksesi Terratest-testin siirry päätelaitteessa test/-hakemistoon ja suorita Go-testikomento. -v-valitsin näyttää yksityiskohtaisen tulosteen.

Terratest:

  • alustaa Terraformin.
  • ottaa määritykset käyttöön.
  • suorittaa tarkistukset.
  • tuhoaa luodut resurssit.
cd test
go test -v

Integraatiotestauksen parhaat käytännöt

Pidä nämä vinkit mielessä, jotta integraatiotestaus olisi tehokasta:

  • Eristäminen: Käytä resursseille yksilöllisiä nimiä tai satunnaisia pääteliitteitä ristiriitojen välttämiseksi.
  • Siivous: Tuhoa resurssit aina testien jälkeen (defer terraform.Destroy).
  • Kustannukset: Huomioi resurssien kustannukset. Käytä pieniä ja edullisia resursseja.
  • Nopeus: Integraatiotestit ovat yksikkötestejä hitaampia. Suorita ne harvemmin, esimerkiksi CI/CD-putkessa.
  • Realistisuus: Testaa samassa pilviympäristössä (tai erillisessä testiympäristössä), johon aiot ottaa resurssit käyttöön.

Testaa ymmärryksesi

Mikä seuraavista on Terraform-määritysten integraatiotestien käyttämisen tärkein hyöty?

Kertaus: integraatiotestaus

Olette oppineet Terraformin integraatiotestauksesta! Käsittelimme seuraavia aiheita:

  • Mitä integraatiotestit ovat ja miksi ne ovat Terraformissa tärkeitä.
  • Miten Go-kirjasto Terratest auttaa näiden testien kirjoittamisessa.
  • Perustyönkulku: määritys, käyttöönotto, tarkistus ja tuhoaminen.
  • Tehokkaiden ja kustannustehokkaiden integraatiotestien kirjoittamisen parhaat käytännöt.

Integraatiotestit lisäävät luottamusta siihen, että infrastruktuuri toimii oikein todellisessa ympäristössä.

Aloita maksutta

Opi DevOps-bootcamp tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
142
Oppitunnit
568

Usein kysytyt kysymykset

Onko oppitunti ”Pilviresurssien integraatiotestaus” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa DevOps-bootcamp-oppimispolun 3 oppituntia, myös oppitunnin “Pilviresurssien integraatiotestaus”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. DevOps-bootcamp-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Pilviresurssien integraatiotestaus”?

Toteuttakaa integraatiotestejä varmistaaksenne Terraformilla luotujen todellisten pilviresurssien oikean käyttöönoton ja toiminnan. Harjoittelet DevOps-bootcamp-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni DevOps-bootcamp-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin DevOps-bootcamp-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.

Kuinka kauan ”Pilviresurssien integraatiotestaus”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä DevOps-bootcamp-oppitunnilla?

Kyllä. Jokainen DevOps-bootcamp-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Terraformin `validate` ja `fmt`
  2. Yksikkötestaus Terratestillä
  3. Pilviresurssien integraatiotestaus
  4. Käytännöt koodina ja vaatimustenmukaisuuden tarkistukset
← Takaisin: DevOps-bootcamp