Pilviresurssien integraatiotestaus
Toteuttakaa integraatiotestejä varmistaaksenne Terraformilla luotujen todellisten pilviresurssien oikean käyttöönoton ja toiminnan.
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_testsTerratest-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/terraformTestattava 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 -vIntegraatiotestauksen 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ä.
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
- Terraformin `validate` ja `fmt`
- Yksikkötestaus Terratestillä
- Pilviresurssien integraatiotestaus
- Käytännöt koodina ja vaatimustenmukaisuuden tarkistukset