
Epäluotettava versio sähköpostitestistä on lyhyt: luo osoite, nuku viisi sekuntia, lue ensimmäinen viesti ja toivo, että se kuuluu tähän suoritukseen.
Luotettava versio on silti yksinkertainen, mutta se käsittelee toimituksen asynkronisena. Se luo uniikin osoitteen, kirjaa aloitusajan, pollaa määräajassa, täsmäyttää halutun viestin, validoi tuotetoiminnon ja raportoi riittävästi kontekstia, kun jokin epäonnistuu.
Pidä API-avain pois URL-osoitteesta
Lähetä GPTMail-avain X-API-Key-otsikossa. Älä laita sitä ?api_key=-kyselyparametreihin. URL-osoitteet tallennetaan säännöllisesti selaimen historiaan, pääsylokeihin, valvontajärjestelmiin ja viittaustietoihin.
X-API-Key: YOUR_API_KEYSäilytä avain CI:n salaisuusmanagerissa ja maskaa se lokeissa. Julkinen päivittäinen avain on kätevä tutkimiseen; hallitut automaattiset sarjat tulisi käyttää avainta, jonka kiintiötä ja käyttöä voit seurata.
Nykyiset päätepisteet ja vastausesimerkit ylläpidetään GPTMail API -dokumentaatiosivulla.
Yksi osoite per suoritus
Luo uusi osoite jokaiselle itsenäisesti suoritettavalle testille. Älä johda oikeellisuutta postilaatikosta, jonka koko testisarja jakaa.
Tallenna osoite, skenaarion ID, ympäristö ja testin aloitusaika. Nämä arvot antavat mahdollisuuden hylätä vanhentuneet viestit ja diagnosoida törmäyksiä ilman viestin salaisuuksien lokitusta.
Pollaa määräajan sisällä, ei kiinteällä odotuksella
Sähköpostin toimitusaika vaihtelee. Kiinteä viiden sekunnin odotus on sekä hukkaa, kun toimitus on nopea, että epävakaa, kun se on hidas.
Käytä rajattua silmukkaa:
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)Määräaika kuuluu testisopimukseen. Salasanan nollaus -virtaus saattaa tarvita eri rajan kuin massapostitus -esikatselu. Pidä raja eksplisiittisenä, jotta hidas riippuvuus ei hiljaisesti venytä koko CI-työtä.
Täsmää tarkasti
“Ensimmäinen viesti postilaatikossa” ei ole hyödyllinen valitsin. Täsmää useita signaaleja:
- vastaanottaja on sama kuin tälle suoritukselle luotu osoite;
- luontiaika on myöhempi kuin käynnistysaika;
- lähettäjä kuuluu odotettuun palveluun;
- aihe tai viestityyppi täsmää virtaan;
- viestin ID ei ole jo kulutettu.
Kun lähettäjä voi lähettää useita koodeja, valitse uusin täsmäävä viesti. Säilytä sen ID testin tulosteessa, jotta uudelleenyrittämiset eivät vahingossa käytä sitä uudelleen.
Lue vain listatäsmäyksen jälkeen
Postilaatikon listaaminen tulisi olla halpa löytöaskel. Hae koko viesti vain valitulle ehdokkaalle. Tämä vähentää turhaa työtä ja estää epäolennaisen mainospostin jäsentämisen.
Vahvista liiketoiminnan tulos, ei pelkästään kuusinumeroisen merkkijonon läsnäoloa. Lähetä koodi tai avaa odotettu linkki, sitten tarkista että tili saavuttaa oikean tilan.
Käsittele rajoitukset signaalina
Jos API palauttaa kiintiö- tai nopeusrajoitusvastauksen, pysäytä nykyinen yritys ja näytä nollausinformaatio. Aggressiiviset uudelleenyrittämiset muuttavat selkeän kapasiteettisignaalin meluksi ja voivat viivästyttää muita testejä.
Rajoita samanaikaisuutta testiajonossa, erityisesti kun sarja luo monta osoitetta kerralla. Pieni työntekijäpooli on helpompi debugata kuin satoja samanaikaisia pollaus-silmukoita.
Siivoa paljastamatta epäonnistumisia
Siivoamisen tulisi tapahtua sen jälkeen, kun todisteet on kerätty. Onnistumisen yhteydessä poista viestit tai anna lyhyt säilytysaika hoitaa ne. Epäonnistumisen yhteydessä säilytä osoite ja viestin ID suojatuissa CI-artefakteissa tarpeeksi kauan tutkintaa varten, sitten poista ne.
Älä koskaan tulosta vahvistuskoodia, yksityisiä linkkejä tai koko HTML-sisältöä julkisiin rakennuslokeihin.
Tee uudelleenyrittämiset idempotentteja
Uudelleenyritä testi uutena suorituksena uudella osoitteella. Älä oletuksena, että saman pyynnön toistaminen samaan tiliin ja postilaatikkoon alkaa puhtaalta pohjalta. Lähettäjä voi mitätöidä vanhat koodit, rajoittaa toistuvat pyynnöt tai hylätä kaksoiskutsut.
Jos verkkopyyntö aikakatkaistaan, erota “ei vastausta vastaanotettu” ja “toimintoa ei tapahtunut”. Tarkista havaittava tila ennen tuhoavan uudelleenyrittämisen tekemistä.
Raportoi epäonnistumisen kohta
Hyödyllinen automaatiovirhe tunnistaa yhden näistä vaiheista:
- osoitteen luonti epäonnistui;
- tuote-toiminto epäonnistui ennen sähköpostin jonottamista;
- ei täsmäävää viestiä saapunut ennen määräaikaa;
- viesti saapui, mutta sisältö ei täsmännyt;
- vahvistustoiminto epäonnistui;
- siivoaminen epäonnistui.
Tämä luokittelu muuttaa satunnaisen “sähköpostitesti epäonnistui” -tilanteen työn, jonka tiimi voi omistaa.
Suurempaa testimatriisia varten lue Todellinen sähköpostitestisuunnitelma. Toimituksen diagnosointiin käytä Vahvistussähköposti ei saavu: löydä rikkinäinen vaihe.