lt

Patikimas laikinos pašto dėžutės API automatizavimas

Sukurkite deterministinius registracijos ir slaptažodžio atstatymo testus su unikaliomis adresomis, ribotu apklausų ciklu, tiksliu pranešimų atitikimu, saugiu raktų tvarkymu ir naudingais nesėkmės įrodymais.

2026-07-17

Kompaktiška automatizacijos kilpa, skirta generuoti, gauti, tikrinti ir valyti pašto dėžutę

Neleistina el. pašto testo versija yra trumpa: sukurti adresą, palaukti penkias sekundes, perskaityti pirmą pranešimą ir tikėtis, kad jis priklauso šiam vykdymui.

Patikima versija vis dar paprasta, tačiau ji laiko pristatymą kaip asinchroninį procesą. Ji sukuria unikalų adresą, įrašo pradžios laiką, apklausia iki nustatyto termino, atitinka numatytą pranešimą, patikrina produkto veiksmą ir pateikia pakankamai konteksto, kai kažkas nepavyksta.

Laikykite API raktą ne URL

Siųskite GPTMail raktą X-API-Key antraštėje. Nenaudokite jo ?api_key= užklausos parametruose. URL dažnai saugomi naršyklės istorijoje, prieigos žurnaluose, stebėjimo sistemose ir referencų duomenyse.

X-API-Key: YOUR_API_KEY

Laikykite raktą savo CI slaptų duomenų tvarkytuve ir maskuokite jį žurnaluose. Viešas kasdieninis raktas patogus tyrimams; kontroliuojamos automatizuotos testų serijos turėtų naudoti raktą, kurio kvotą ir naudojimą galite stebėti.

Dabartiniai galutiniai taškai ir atsakymų pavyzdžiai yra prižiūrimi GPTMail API dokumentacijos puslapyje.

Vienas adresas vienam vykdymui

Kurkite naują adresą kiekvienam savarankiškai vykdomam testui. Nesikliaukite teisingumu, remdamiesi pašto dėžute, kurią dalija visas testų rinkinys.

Užregistruokite adresą, scenarijaus ID, aplinką ir testų pradžios laiką. Šios reikšmės leidžia atmesti pasenusius pranešimus ir diagnozuoti susidūrimus be pranešimų paslapčių įrašymo.

Apklausimas iki termino, o ne fiksuotas laukimas

El. pašto pristatymo laikas skiriasi. Fiksuotas penkių sekundžių laukimas yra švaistymas, kai pristatymas greitas, ir nestabilus, kai lėtas.

Naudokite ribotą kilpą:

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)

Terminas priklauso nuo testų sutarties. Slaptažodžio atstatymo procesas gali reikalauti kitokio limito nei masinio naujienlaiškio peržiūra. Laikykite limitą aiškų, kad lėta priklausomybė netyliai neištempų viso CI darbo.

Tikslus atitikimas

„Pirmas pranešimas dėžutėje“ nėra naudingas selectorius. Atitinkite kelis signalus:

  • gavėjas yra tas adresas, sukurtas šiam vykdymui;
  • sukūrimo laikas yra vėlesnis nei suaktyvinimo laikas;
  • siuntėjas priklauso laukiamam servisui;
  • tema arba pranešimo tipas atitinka procesą;
  • pranešimo ID dar nebuvo panaudotas.

Kai siuntėjas gali išsiųsti kelis kodus, pasirinkite naujausią atitinkantį pranešimą. Išsaugokite jo ID testų išvestyje, kad pakartotiniai bandymai netyčia jo nepanaudotų.

Skaityti tik po sąrašo atitikimo

Pašto dėžutės sąrašo gavimas turėtų būti pigus atrankos žingsnis. Pilną pranešimą gaukite tik pasirinktam kandidatui. Tai sumažina nereikalingą darbą ir išvengia nesusijusios reklaminės pašto analizės.

Patikrinkite verslo rezultatą, o ne tik šešių skaitmenų eilutės buvimą. Pateikite kodą arba atidarykite laukiamą nuorodą, tada patikrinkite, ar paskyra pasiekia teisingą būseną.

Tvarkykite greičio apribojimus kaip signalą

Jei API grąžina kvotos ar greičio apribojimo atsakymą, sustabdykite dabartinį bandymą ir parodykite atstatymo informaciją. Aggresyvūs pakartojimai paverčia aiškų pajėgumo signalą triukšmu ir gali vėluoti nesusijusius testus.

Ribokite lygiagrečių vykdymų skaičių testų vykdyme, ypač kai rinkinys sukuria daug adresų vienu metu. Maža darbininkų grupė yra lengviau derinama nei šimtai vienu metu vykstančių apklausų kilpų.

Valymas be nesėkmių slėpimo

Valymas turėtų būti vykdomas po įrodymų surinkimo. Sėkmingai – pašalinkite pranešimus arba leiskite trumpam saugojimui juos ištrinti. Nesėkmės atveju – išsaugokite adresą ir pranešimo ID apsaugotuose CI artefaktuose pakankamai ilgai, kad būtų galima ištirti, po to juos ištrinkite.

Niekada nespausdinkite patvirtinimo kodų, privačių nuorodų ar visų HTML turinio į viešuosius kūrimo žurnalus.

Padarykite pakartojimus idempotentus

Pakartokite testą kaip naują vykdymą su nauju adresu. Nemanome, kad pakartojus tą patį užklausą prieš tą pačią paskyrą ir dėžutę, prasidės nuo švarios būsenos. Siuntėjas gali anuliuoti senus kodus, riboti pakartotinus užklausimus arba atmesti dublikatus.

Jei tinklo užklausa baigiasi laiko limitu, atskirkite „negautas atsakymas“ nuo „operacija neįvyko“. Patikrinkite stebimą būseną prieš atliekant destruktyvų pakartojimą.

Praneškite apie nesėkmės tašką

Naudingas automatizacijos nesėkmės pranešimas nurodo vieną iš šių etapų:

  1. nepavyko sugeneruoti adreso;
  2. produkto veiksmas nepavyko prieš el. pašto įdėjimą į eilę;
  3. nebuvo gautas atitinkantis pranešimas iki termino;
  4. pranešimas atvyko, bet turinys neatitiko;
  5. patvirtinimo veiksmas nepavyko;
  6. valymas nepavyko.

Ši klasifikacija paverčia periodinį „el. pašto testas nepavyko“ į užduotį, kurią komanda gali valdyti.

Daugiau apie testų matricą skaitykite Tikras el. pašto testų planas. Dėl pristatymo diagnozės naudokite Patikrinimo el. paštas nepasiekia: raskite sulaužytą žingsnį.

GPTMail