EvilMail
Tərtibatçılar

Birdəfəlik Ünvanlarla E-poçt Təsdiqləmə Testlərinin Avtomatlaşdırılması

EvilMail API istifadə edərək qeydiyyat axınları, şifrə sıfırlama və bildiriş sistemləri üçün etibarlı uçdan-uca testlər qurun.

EvilMail TeamFebruary 20, 20269 dəq oxu

Tətbiqiniz e-poçt göndərirsə — qeydiyyat təsdiqləri, şifrə sıfırlamaları, fakturalar, bildirişlər — bu e-poçtların həqiqətən çatdığını və düzgün məzmuna sahib olduğunu yoxlayan avtomatlaşdırılmış testlərə ehtiyacınız var. Çox komandanın e-poçt testini mürəkkəb hiss etdiyi üçün keçirdiyini gördük. Elə deyil və bu bələdçi bunu sübut edəcək.

E-poçt axınlarını sınamaqda əsas problem proqrammatik olaraq oxuya biləcəyiniz əsl, əlçatan gələnlər qutularına ehtiyac olmasıdır. CI boru xətlərində şəxsi Gmail hesablarından istifadə kövrəkdir, etibarsızdır və miqyaslanmır. Birdəfəlik e-poçt API-lərinin yetkin test yığınında öz yerini qazandığı məhz budur.

Test Mühitinizin Qurulması İlk olaraq EvilMail idarə panelindən API açarınızı əldə edin. Onu CI sisteminizdə mühit dəyişəni olaraq saxlayın — heç vaxt API açarlarını versiya nəzarətinə göndərməyin. ``` export EVILMAIL_API_KEY="your_api_key_here" ```

Test E-poçt Ünvanının Yaradılması Hər test işlədilməsindən əvvəl yeni birdəfəlik e-poçt yaradın: ``` curl -X POST https://evilmail.pro/api/temp-email \ -H 'Content-Type: application/json' \ -H 'X-API-Key: '"$EVILMAIL_API_KEY" \ -d '{"domain": "evilmail.pro", "ttlMinutes": 30}' ```

Cavab e-poçt ünvanını və sessiya tokenini ehtiva edir. E-poçt ünvanını tətbiqinizdə test hesabı qeydiyyatı üçün istifadə edin.

Gələnlər Qutusunun Sorğulanması Tətbiqinizdə e-poçt göndərmə əməliyyatını (qeydiyyat, şifrə sıfırlama və s.) tetiklədikdən sonra mesaj gələnə qədər gələnlər qutusu son nöqtəsini sorğulayın: ``` curl https://evilmail.pro/api/inbox \ -H 'X-API-Key: '"$EVILMAIL_API_KEY" ```

Əsl testdə bunu vaxt aşımı ilə yenidən cəhd dövrəsinə sarardınız. Budur praktik Python nümunəsi: ``` import requests import time

API_KEY = os.environ['EVILMAIL_API_KEY'] BASE = 'https://evilmail.pro'

def wait_for_email(subject_contains, timeout=60): deadline = time.time() + timeout while time.time() < deadline: r = requests.get(f'{BASE}/api/inbox', headers={'X-API-Key': API_KEY}) messages = r.json().get('data', []) for msg in messages: if subject_contains in msg['subject']: return msg time.sleep(3) raise TimeoutError('Email not received') ```

CI/CD Boru Xətləri ilə İnteqrasiya Bu nümunə istənilən CI sistemi ilə — GitHub Actions, GitLab CI, Jenkins, CircleCI — təmiz işləyir. Əsas prinsip budur: hər test işlədilməsi unikal birdəfəlik ünvan alır, iddialarını icra edir və ünvanın müddəti avtomatik bitir. Təmizləmə skriptləri yoxdur, dolmuş paylaşılan poçt qutuları yoxdur, əvvəlki işlədmələrdən qalmış e-poçtların səbəb olduğu qeyri-sabit testlər yoxdur.

GitHub Actions iş axını addımı belə görünə bilər: ``` - name: Run email integration tests env: EVILMAIL_API_KEY: ${'{ secrets.EVILMAIL_API_KEY }'} run: pytest tests/email/ -v --timeout=120 ```

Nəyi Yoxlamalı Sadəcə e-poçtun gəldiyini yoxlamayın. Mövzu xəttini, göndərən ünvanını, kritik keçidlərin (təsdiqləmə URL-ləri, sıfırlama tokenləri) mövcudluğunu və bu keçidlərin həqiqətən etibarlı səhifələrə apardığını yoxlayın. Tam e-poçt testi tetikləmədən çatdırmaya və məzmun düzgünlüyünə qədər bütün zənciri yoxlayır.

Yüzlərlə Testə Miqyaslanma Çoxsaylı eyni vaxtda e-poçt ünvanı tələb edən böyük test paketləri üçün öz domeniniz altında ünvanlar yaratmaq üçün hesab yaratma son nöqtəsindən istifadə edin. Bu sizə ad sahəsi üzərində tam nəzarət verir və müvəqqəti e-poçt son nöqtəsində hər hansı sorğu limitləməsindən qaçır: ``` curl -X POST https://evilmail.pro/api/accounts \ -H 'X-API-Key: '"$EVILMAIL_API_KEY" \ -H 'Content-Type: application/json' \ -d '{"email": "[email protected]", "password": "testpass"}' ```

Test paketi tamamlandıqdan sonra test hesablarını toplu şəkildə silin: ``` curl -X DELETE https://evilmail.pro/api/accounts \ -H 'X-API-Key: '"$EVILMAIL_API_KEY" \ -H 'Content-Type: application/json' \ -d '{"emails": ["[email protected]"]}' ```

Nəticə E-poçt testi test paketinizdəki kövrək sonradan düşünülmüş şey olmamalıdır. Düzgün birdəfəlik e-poçt API-si ilə hər hansı digər inteqrasiya testi qədər deterministik və etibarlı olur. E-poçtlarınızın həqiqətən işlədiyinə əmin olaraq buraxın.

Əlaqəli Məqalələr