القائمة

إنشاء بريد مؤقت: صناديق بريد لاختبار تدفقات التحقق

أداة إنشاء بريد مؤقت تمنح الاختبارات الآلية صندوق بريد حقيقيا يستقبل رسائل حقيقية. تعرف على الفرق بينه وبين الأسماء المستعارة والنطاقات الشاملة وحدوده.

تاريخ النشر

  • بيانات اختبار
  • بريد إلكتروني
  • أتمتة

تنشئ أداة إنشاء بريد مؤقت صندوق بريد قصير العمر بعنوان صالح للعمل، بحيث يمكن تشغيل نموذج تسجيل أو تدفق إعادة تعيين كلمة المرور أو إرسال رمز لمرة واحدة من أوله إلى آخره بدلا من استبداله بواجهة وهمية. والصندوق يقبل بريدا حقيقيا، ويحتفظ به مدة ما، ثم يختفي، وهذه الخصيصة بالذات هي ما يجعله نافعا في اختبار وغير صالح كجهة اتصال دائمة.

يفصل هذا الدليل بين ثلاثة أشياء يقصدها الناس عند الحديث عن البريد المؤقت، ويشرح ما يحله صندوق البريد المؤقت ولا تستطيع الواجهة الوهمية حله، ولماذا ترفض خدمات كثيرة هذه النطاقات، ومتى ينبغي ألا تلجأ إليه أصلا. وبحلول النهاية ستستطيع أن تختار بين نطاق مؤقت عام واسم مستعار يعيد التوجيه وصندوق شامل على نطاق تملكه دون تخمين، وأداة البريد على هذا الموقع هي الرفيق العملي لذلك القرار.

ما هو صندوق البريد المؤقت؟

صندوق البريد المؤقت صندوق يوجد لمدة قصيرة ويمكن إنشاؤه دون أي تسجيل. له عنوان، ويستطيع استقبال البريد، وله تاريخ انتهاء. وكل ما عدا ذلك يختلف من مزود إلى آخر: مدة الاحتفاظ، وهل العنوان قابل للتخمين، وهل الصندوق عام يراه الجميع، وهل تحفظ المرفقات.

العنوان يجلس عادة على نطاق مشترك، وهذه هي الحقيقة البنيوية المهمة، لأنها تعني أن النطاق يستخدمه آلاف الأشخاص غير المرتبطين في الوقت نفسه، وأن سمعة النطاق مشتركة بينهم جميعا. وعندما يسيء أحد مستخدمي ذلك النطاق استخدامه، يرث كل مستخدم آخر النتيجة في صورة إدراج في قائمة حجب في مكان ما. ولا شيء في الصندوق نفسه يخبرك أي غرباء استخدموا النطاق هذا الأسبوع، ولا شيء تفعله داخل اختبارك يمكن أن يحسن الوضع الذي ورثته عنهم.

والصندوق ليس اسما مستعارا يعيد التوجيه، وهذا هو التمييز الأكثر إبهاما. فالاسم المستعار ينتمي إلى نطاق تتحكم به ويعيد التوجيه إلى صندوق تملكه أصلا، فالصندوق الأساسي دائم والاسم المستعار مجرد مؤشر. أما صندوق البريد المؤقت فهو الصندوق نفسه، ولا يوجد شيء خلفه بمجرد انتهاء صلاحيته.

ويستحق عمر الصندوق قراءة متأنية قبل الاعتماد عليه. فبعض المزودين يعلن مدة بالدقائق وبعضهم يعلن ساعات، وبعضهم لا يعلن شيئا أصلا. والتصميم السليم لمسار اختبار هو أن تفترض أقصر مدة معلنة لا أطولها، لأن الاعتماد على الأمل ينتج اختبارات تسقط في أوقات متفرقة لا يستطيع أحد تفسيرها.

وهناك فرق آخر بين صندوق مؤقت وصندوق اختبار مخصص. فالصندوق المخصص يعيش داخل نطاق تملكه ويسجل الرسائل الواردة بطريقة تستطيع قراءتها آليا. أما الصندوق المؤقت العام فقد يعرض الرسالة في صفحة ويب ويحذفها بعد مدة قصيرة، وهذا يعني أن أي اختبار يعتمد عليه يجب أن يقرأ الرسالة في نافذة زمنية ضيقة لا يتحكم بها.

كيف يختلف البريد المؤقت عن الأسماء المستعارة والنطاقات الشاملة؟

الاسم المستعار الذي يعيد التوجيه هو هوية مستقرة بعمر مقصود. تنشئه مرة واحدة، وتوجهه إلى صندوق حقيقي، وتستخدمه في كل مكان يطلب فيه خدمة ما عنوان بريد. والرسالة تصل إلى حسابك أنت، ويمكن إيقاف الاسم المستعار لاحقا، ولأن النطاق يملكه أنت فإن قابلية التسليم لذلك الاسم هي سمعتك أنت لا سمعة غريب.

والنطاق الشامل هو النسخة الصناعية من الفكرة نفسها. فكل عنوان على النطاق، لا العناوين التي أنشأتها وحدها، يقبل ويوجه إلى صندوق واحد أو إلى سكربت معالجة واحد. وهذا يجعل من الممكن إنشاء عنوان جديد لكل تشغيل اختبار دون أي خطوة تهيئة، لأن العنوان صالح في اللحظة التي يخترع فيها. ويشرح دليل البريد التفاصيل التشغيلية والتعرض للبريد المزعج الذي يرافق هذه الطريقة.

وصندوق البريد المؤقت العام يقف في الطرف المقابل من المقايضة. فهو لا يكلف شيئا ولا يحتاج سجلات نطاق، وفي المقابل يتشارك نطاقا مع الجميع، وله نافذة احتفاظ لم تخترها أنت، وقد تحجبه الخدمة ذاتها التي تختبرها. وللفحص اليدوي السريع هو مريح. أما لخط أنابيب يعمل كل ليلة فهو مصدر فشل متقطع يصعب إسناده إلى سببه.

والاختيار بين الثلاثة ليس مسألة تفضيل عام، بل مسألة نطاق المسؤولية. فإذا كنت تختبر نظامك الخاص وتحتاج تحكما كاملا في الاحتفاظ والقراءة الآلية، فالنطاق الذي تملكه هو الجواب. وإذا كنت تفحص بسرعة سريعة كيف تبدو رسالة تسجيل في خدمة خارجية، فالصندوق المؤقت العام مناسب. والخلط بين الحالتين هو ما ينتج خطوط أنابيب هشة تبدو سببا في مشكلات لا علاقة لها بها.

ماذا يحل صندوق البريد المؤقت في اختبار التحقق؟

المشكلة التي يحلها محددة: تدفق يرسل رابطا أو رمزا إلى عنوان، ثم ينتظر أن يفعل أحد شيئا به. والواجهة الوهمية للإرسال تستطيع أن تؤكد أن رسالة وضعت في قائمة الانتظار. لكنها لا تستطيع أن تؤكد أن الرابط في الرسالة يعمل، ولا أن الرمز في الرسالة يقبل، ولا أن الرمز المميز في الرابط ينتهي في الوقت الذي ينبغي أن ينتهي فيه.

وصندوق حقيقي يسد هذه الفجوة. يسجل الاختبار بعنوان منشأ، وينتظر وصول الرسالة، ويستخرج الرابط أو الرمز، ويتبعه، ويؤكد على النتيجة. وهذا هو الشكل الوحيد للاختبار الذي يغطي مسار التسليم فعلا، وهو السبب في وجود صناديق البريد المؤقتة في عتاد الاختبار أصلا. ويشرح دليل الهوية كيف ترتبط هذه التدفقات ببقية حقول السجل في مسارات التسجيل والتحقق.

وهناك فائدة ثانية أهدأ. فالصندوق الحقيقي يعرض الرسالة كما سيراها المستلم، بما في ذلك العرض واسم المرسل وسطر الموضوع وترتيب الأجزاء. وعيوب القوالب التي لا تظهر أبدا مع واجهة وهمية، مثل متغير لم يستبدل أو رابط مكسور أو سطر موضوع يصل فارغا، تظهر فورا عندما يقرأ إنسان أو محلل الرسالة الفعلية.

ويمكن توسيع الفكرة إلى ما هو أبعد من التسجيل. فرسائل تأكيد الطلب وإشعارات الشحن وإيصالات الدفع تمر بمسار تسليم حقيقي لا يجربه أي اختبار وحدة، وهي المكان الذي تظهر فيه أخطاء التنسيق والتوقيت التي لا يكشفها أي تأكيد على قاعدة البيانات.

وينبغي أن يقرأ الاختبار الرسالة برمجيا لا بالعين. فالمحلل الذي يستخرج أول رابط أو أول رمز من جسم الرسالة يجعل التأكيد حتميا، والتأكيد الحتمي هو الفرق بين اختبار وعرض توضيحي. وقواعد الاستخراج التي تصمد أمام تغيير القوالب هي التي تستحق أن تكتب في المجموعة، لا الأنماط التي تعمل مع رسالة واحدة بعينها.

وتبقى هناك مسألة التوقيت. فاختبار ينتظر رسالة بلا حد أعلى للانتظار هو اختبار يعلق لا اختبار يفشل، واختبار يعتبر التأخير فشلا مباشرا هو اختبار يرفض نجاحات بطيئة. والحل العملي انتظار بحد أعلى معلن، مع فحص دوري في أثنائه، حتى يكون الفشل قابلا للتفسير عندما يقع.

لماذا تحجب خدمات كثيرة النطاقات المؤقتة؟

الحجب يعمل من قائمة منشورة بالنطاقات المؤقتة. فالبائعون يبيعون أو يمنحون قوائم نطاقات مرتبطة بالبريد المؤقت، ونموذج التسجيل يقارن العنوان المرسل بتلك القائمة قبل أي شيء آخر. والفحص رخيص، ولا يحتاج تحققا من المستخدم، ويوقف نسبة كبيرة من الإساءة الآلية.

النتيجة على الاختبار أن قائمة الحجب جزء من البيئة التي يعمل فيها اختبارك، وهي ليست تحت سيطرتك. فالنطاق الذي يعمل اليوم قد يظهر على قائمة غدا، ويبدأ خط الأنابيب بالفشل دون أي تغيير من جانبك. وهذا هو السبب الأكثر شيوعا للفشل المتقطع في تدفقات التحقق داخل المجموعات الآلية، ومن هنا تأتي أهمية فحص القائمة قبل الاعتماد على أي نطاق عام.

والأسوأ أن الفشل غالبا لا يحمل معلومة. فالنموذج يعيد خطأ عاما، والاختبار يسجل انتهاء مهلة انتظار رسالة، والسبب الحقيقي، وهو أن التسجيل رفض قبل إرسال أي بريد، يقع على طبقات بعيدة من العَرَض. ولهذا فإن مجموعة اختبارات تستخدم نطاقات عامة مشتركة هي مجموعة تحمل ميزانية فشل دائمة بلا تفسير.

والعلاج أن تسجل العنوان المرسل والاستجابة الخام من النموذج كلما انتهت مهلة انتظار التسليم، حتى يملك الشخص التالي الذي يرى الفشل الحقيقتين اللتين تحددانه فورا. وتسجيل حقل واحد إضافي في لحظة الفشل أرخص بكثير من ساعات يقضيها فريق في تخمين سبب اختفاء رسالة.

ويضيف كثير من المزودين قيدا على المعدل بحسب النطاق أو بحسب بادئة العنوان، وهذا يقدم نمط فشل متقطعا ثانيا. فخط أنابيب ينشئ مئات الصناديق في دقائق قليلة قد يجد المزود بدأ يرفض الطلبات، ويظهر العَرَض مرة أخرى كرسالة مفقودة لا كطلب مرفوض، وهذا هو الفرق بين سبب يمكن قياسه وسبب يبقى لغزا.

كيف ينبغي لمجموعة الاختبارات أن تصمم مسار البريد؟

صمم مسار البريد حول نطاق تملكه. وجه نطاقا شاملا إلى صندوق أو إلى سكربت معالجة، وأنشئ عنوانا جديدا لكل تشغيل بتركيب رمز فريد مع النطاق. لا حاجة إلى تهيئة، وقابلية التسليم مسؤوليتك أنت، ولا تحكم أي قائمة خارجية في نجاح خط الأنابيب.

ولاختبارات الوحدة، تجاوز التسليم تماما. فسيرفر التقاط محلي يستقبل الرسالة بدلا من إرسالها، وهذا يحفظ الاختبار سريعا ويزيل الشبكة من الحلقة. وهو الخيار الافتراضي الصحيح لمعظم المجموعات، مع حصر التسليم الحقيقي في العدد الأصغر من الاختبارات التي تحتاجه فعلا. وتشرح أداة التحقق كيف تبنى التأكيدات التي تتحقق من محتوى الرسالة لا من مجرد وصولها.

وأبق العناوين قابلة للتمييز. فبادئة تحدد البيئة والتشغيل، يتبعها النطاق الذي تملكه، تجعل من الممكن تتبع رسالة مستقبلة إلى الاختبار الذي أنتجها وحذف ما لم تعد إليه حاجة. وبلا بادئة يتحول صندوق شامل مشترك إلى كومة رسائل لا يستطيع أحد إسنادها، والصندوق الذي لا تسند رسائله هو صندوق لا يجرؤ أحد على تفريغه.

وثبت النتيجة كما تثبت بقية البيانات. فالعنوان المستخدم في اختبار انحدار ينبغي أن يسجل إلى جانب البذرة التي أنتجته، حتى يمكن إعادة إنتاج التشغيل نفسه بعد شهور. ودليل بيانات الاختبار يعرض الطريقة التي تحفظ بها هذه المعاملات إلى جانب السجلات.

ومما يستحق التثبيت أيضا الخط الزمني للرسالة. فالمدة بين إرسال الطلب ووصول الرسالة قيمة قابلة للقياس، وارتفاعها المفاجئ يدل على مشكلة في المزود أو في قائمة الانتظار قبل أن تدل على مشكلة في الكود. وتسجيل هذا الرقم في كل تشغيل يحول مجموعة اختبارات صامتة إلى أداة رصد مبكر.

متى يجب ألا تستخدم البريد المؤقت؟

هناك حالات يكون فيها الصندوق المؤقت أداة خطأ، ويستحق تسميتها لأن الوقوع فيها سهل. الحالة الأولى كل ما يتصل بحساب حقيقي يهمك. فتسجيل خدمة تعتمد عليها فعلا بصندوق سينتهي بعد ساعة ينشئ حسابا لا تستطيع استعادته، ولا يبرر أي قدر من الراحة ذلك.

والحالة الثانية تدفق يقتضي الاحتفاظ ببيانات إنتاجية. فصندوق خارج مؤسستك يقع خارج سياسة الاحتفاظ الخاصة بك وخارج مسار التدقيق لديك، لذلك يجب ألا تمر أي رسالة تحمل معلومات عملاء حقيقية عبره. وتنظر أنظمة الالتزام إلى ذلك كإفصاح لا كاختصار اختباري، ولا يبرره أي قدر من الراحة خلال دورة تطوير.

والحالة الثالثة كل ما يوجد للالتفاف على حد مفروض. فالعنوان المؤقت ليس وسيلة للحصول على تجارب متكررة من خدمة، واستخدامه بهذه الطريقة مخالفة للشروط وإشارة مضللة عن كيفية عمل المنتج لمستخدم عادي. والتأطير الصادق أن الأداة موجودة لاختبار أنظمتك أنت، ولهذا الغرض وحده.

والحالة الرابعة أدق من سابقاتها: تدفق يجب أن يبقى أطول من نافذة الاحتفاظ. فإذا تحقق اختبار من صندوق بعد ساعة، وكان الصندوق يعيش عشر دقائق، فسيفشل الاختبار لأسباب لا علاقة لها بالبرنامج المختبر. افحص مدة الاحتفاظ قبل أن تبني الانتظار في المجموعة، وإذا لم يعلن المزود مدة فاعتبر الصمت هو الجواب.

وحالة خامسة تظهر في الفرق الكبيرة: الاعتماد على صندوق مؤقت كبيانات ثابتة لإعادة إنتاج عيب قديم. فالرسالة نفسها ستنتهي صلاحيتها، ولن يستطيع أحد بعد شهر أن يفحص ما فحصته أنت. وهنا يكون الحل تخزين محتوى الرسالة المهم إلى جانب الاختبار، لا مجرد تخزين عنوان الصندوق.

ماذا عن الرسائل نفسها؟

الرسالة التي يستقبلها صندوق اختبار صناعية عادة، لكنها بريد حقيقي أنشأه نظام حقيقي، وقد تحمل قيما حقيقية. فسلاسل الاستبدال التي لم تستبدل، وأسماء المضيفات الداخلية في روابط التتبع، وترويسات التنقيح، كلها موجودات شائعة وكلها تستحق الإبلاغ لا التجاهل.

تعامل مع الصندوق كأثر قصير العمر واحذف محتواه عند انتهاء التشغيل. فصندوق بيئة اختبار يتراكم فيه آلاف الرسائل غير المقروءة هو سجل بلا سياسة احتفاظ، والسجل الذي لا سياسة احتفاظ له ينتهي به الأمر إلى الاحتفاظ بشيء لا ينبغي أن يحتفظ به.

والرسائل التي ينشئها الاختبار تمنحك فحصا أمنيا رخيصا. فإذا كان رابط إعادة تعيين كلمة المرور المبني لعنوان واحد يعمل مع عنوان آخر، أو إذا لم تنته صلاحية رمز التحقق، فسيكشف الاختبار المبني على صندوق البريد ذلك بطريقة لا تستطيع أي وحدة اختبار كشفها.

ويستحق محتوى الرسالة مراجعة دورية لا لمرة واحدة. فالقوالب تتغير، والمتغيرات تنقلب، وروابط التتبع تكتسب معاملات جديدة. ومراجعة أسبوعية لعينة من الرسائل تكشف الانحراف مبكرا، بينما كشفه من شكوى مستخدم متأخر هو الطريق الأكثر كلفة إلى المعلومة نفسها.

كل صندوق وعنوان ورسالة ترد في هذا الدليل ينتمي إلى اختبار البرمجيات. والعناوين المنشأة سجلات صناعية موجودة لتشغيل تدفقاتك أنت، ولا يجوز استخدامها لانتحال هوية أحد، ولا للوصول إلى حسابات ليست لك، ولا لتجاوز حدود المعدل أو ضوابط التحقق، ولا لتلقي بريد يهم أي شخص.

تابع القراءة

أدوات شائعة ومقالات استخدام