البريد
العودة إلى المطورين وQA

زمن الملاحظة وزمن التسليم ساعتان مختلفتان

Polling أم Realtime في اختبارات البريد: اختر طريقة انتظار لا وعداً زائفاً بسرعة التسليم

Polling والأحداث يغيران طريقة اكتشاف الرسالة بعد وصولها للنظام المستقبل، لكنهما لا يتحكمان في sender أو queue أو زمن SMTP.

8 دقائق قراءة

قد يأتي timeout من sender بطيء أو delivery متأخر أو event realtime ضائع أو matcher خاطئ. polling وrealtime يحلان فقط كيف يلاحظ الاختبار الرسالة. لذلك عرّف أولاً الرسالة المتوقعة والـdeadline ثم اختر أسلوب المراقبة.

استراتيجيتان للملاحظة

الخاصيةPollingRealtime
الآليةاستعلام متكررالاستجابة لevent
التعقيدinterval وtimeoutconnection وreconnect
الحملchecks فارغةchecks أقل
الفشلtimeout غير مناسبevent مفقود
fallbackيستمر حتى deadlineيحتاج reconciliation أحياناً

ابنِ الانتظار حول predicate

  1. 1

    عرّف الرسالة

    recipient وsender وsubject والوقت.

  2. 2

    حدد deadline

    لا loop بلا نهاية.

  3. 3

    راقب حتى match

    polling أو event أو hybrid.

  4. 4

    شخّص الطبقة

    فرق بين عدم وصول الرسالة وفشل realtime وmatcher خاطئ.

Retryable wait أفضل من sleep ثابت

Playwright يوفر expect.poll وassertions تعيد المحاولة، وCypress يعيد queries وassertions حتى timeout. المبدأ الأفضل هو انتظار شرط مفيد حتى deadline.

sleep يهدر الوقت في الحالات السريعة ويفشل اصطناعياً عند تأخر بسيط.

Realtime لا يجعل SMTP realtime

event قد يصدر فور تخزين الرسالة عند المستقبل، لكنه لا يجبر sender أو مزود خارجي على الإرسال أسرع.

استخدم polling أو realtime حسب بنية المراقبة، لكن اجعل الـassertion ثابتاً: الرسالة الصحيحة يجب أن تظهر قبل deadline واضح مع تشخيص يحدد الطبقة البطيئة.

هل تحتاج مستلماً نظيفاً لاختبار البريد يدوياً؟

استخدم MailOnce لفحص رسائل التسجيل ورموز OTP والروابط السحرية وإعادة تعيين كلمة المرور والإشعارات من دون إدخال بريدك الشخصي ضمن بيانات الاختبار.

أنشئ بريداً مؤقتاً

المصادر وقراءة إضافية

توثيق أمني وتقني أساسي استُخدم لتثبيت إرشادات الاختبار.

واصل الاختبار

انتقل إلى الحد التالي داخل مساحة مشكلة اختبار البريد نفسها.