
Ne pouzdana verzija email testa je kratka: kreirajte adresu, spavajte pet sekundi, pročitajte prvu poruku i nadate se da pripada ovom pokretanju.
Pouzdana verzija je i dalje jednostavna, ali tretira isporuku kao asinkronu. Kreira jedinstvenu adresu, bilježi vrijeme početka, anketira unutar roka, podudara namjeravanu poruku, validira radnju proizvoda i prijavljuje dovoljno konteksta kada nešto ne uspije.
Držite API ključ izvan URL-a
Pošaljite GPTMail ključ u zaglavlju X-API-Key. Nemojte ga stavljati u upitne parametre ?api_key=. URL‑ovi se rutinski pohranjuju u historiji preglednika, pristupnim zapisima, sistemima za nadzor i podacima o refereru.
X-API-Key: YOUR_API_KEYPohranite ključ u vaš CI menadžer tajni i maskirajte ga u zapisima. Javni dnevni ključ je praktičan za istraživanje; kontrolirani automatizirani setovi trebaju koristiti ključ čiji kvotu i upotrebu možete pratiti.
Trenutni krajnji točke i primjeri odgovora održavaju se na stranici dokumentacije GPTMail API-ja.
Jedna adresa po pokretanju
Generišite novu adresu za svaki samostalno izvršivi test. Nemojte izvoditi ispravnost iz sandučića koji dijeli cijeli testni paket.
Zabilježite adresu, ID scenarija, okruženje i vrijeme početka testa. Ove vrijednosti vam omogućavaju da odbacite zastarjele poruke i dijagnostikujete kolizije bez zapisivanja tajni poruka.
Anketirajte prema roku, a ne prema fiksnom čekanju
Vrijeme isporuke e‑maila varira. Fiksno čekanje od pet sekundi je i rasipno kada je isporuka brza i nestabilno kada je spora.
Koristite ograničenu petlju:
deadline = now + 90 seconds
delay = 2 seconds
while now < deadline:
messages = list inbox
candidate = newest message matching sender, subject, and start time
if candidate exists:
read candidate and continue the product test
wait delay with a small random jitter
delay = min(delay * 1.5, 10 seconds)Rok pripada ugovoru testa. Tok resetovanja lozinke može zahtijevati drugačiji limit od pregleda masovnog biltena. Držite limit eksplicitnim kako spora ovisnost ne bi tiho produžila cijeli CI posao.
Precizno podudaranje
„Prva poruka u sandučiću“ nije koristan selektor. Podudarajte više signala:
- primatelj je jednak adresi kreiranoj za ovo pokretanje;
- vrijeme kreiranja je kasnije od vremena okidača;
- pošiljalac pripada očekivanom servisu;
- predmet ili tip poruke podudaraju se s tokom;
- ID poruke još nije potrošen.
Kada pošiljalac može izdati više kodova, odaberite najnoviju podudarajuću poruku. Sačuvajte njen ID u izlazu testa kako ponovni pokušaji ne bi slučajno ponovo koristili isti.
Čitajte tek nakon podudaranja u listi
Popis sandučića trebao bi biti jeftin korak otkrivanja. Preuzmite cijelu poruku samo za odabranog kandidata. Ovo smanjuje nepotrebni rad i izbjegava parsiranje nepovezane promotivne pošte.
Validirajte poslovni rezultat, a ne samo prisustvo šesteroznamenkaste stringa. Pošaljite kod ili otvorite očekivani link, zatim potvrdite da račun doseže ispravno stanje.
Rukovanje ograničenjima brzine kao signalom
Ako API vrati odgovor o kvoti ili ograničenju brzine, zaustavite trenutni pokušaj i izložite informacije o resetu. Agresivni ponovni pokušaji pretvaraju jasan signal kapaciteta u šum i mogu odgoditi nepovezane testove.
Ograničite paralelizam u test runneru, posebno kada paket kreira mnogo adresa odjednom. Mali pool radnika je lakše debugirati nego stotine simultanih petlji anketiranja.
Čišćenje bez skrivanja grešaka
Čišćenje bi trebalo da se izvrši nakon što se prikupe dokazi. Pri uspjehu, uklonite poruke ili dopustite da kratko zadržavanje riješi to. Pri neuspjehu, zadržite adresu i ID poruke u zaštićenim CI artefaktima dovoljno dugo za istragu, zatim ih izbrišite.
Nikada ne ispisujte verifikacijske kodove, privatne linkove ili cijela HTML tijela u javne logove izgradnje.
Napravite ponovne pokušaje idempotentnim
Ponovite test kao novo pokretanje s novom adresom. Nemojte pretpostaviti da ponavljanje istog zahtjeva prema istom računu i sandučiću počinje od čistog stanja. Pošiljalac može poništiti stare kodove, ograničiti ponovljene zahtjeve ili odbiti duple pozive.
Ako mrežni zahtjev istekne, razlikujte „nema primljenog odgovora“ od „operacija se nije dogodila“. Provjerite vidljivo stanje prije slanja destruktivnog ponovnog pokušaja.
Prijavite tačku neuspjeha
Koristan neuspjeh automatizacije identificira jednu od ovih faza:
- generisanje adrese nije uspjelo;
- radnja proizvoda nije uspjela prije stavljanja e‑maila u red;
- nijedna podudarajuća poruka nije stigla prije roka;
- poruka je stigla, ali sadržaj se ne podudara;
- verifikacijska radnja nije uspjela;
- čišćenje nije uspjelo.
Ta klasifikacija pretvara povremeni „test e‑maila nije uspio“ u posao koji tim može preuzeti.
Za veći testni matriks, pročitajte Stvarni plan testiranja e‑maila. Za dijagnostiku isporuke, koristite Verifikacijski e‑mail ne stiže: Pronađite slomljeni korak.