في هذه الصفحة
قد تخفي نتيجة اختبار ناجحة قاعدة مفقودة. في هذا المثال التوضيحي، يُطلب من وكيل ربط متجر بمنصة بريد. يقبل خادم الاختبار تحديث جهة اتصال ويعيد 200 منتظماً، فيكمل الوكيل مهمته وينجح الاختبار.
لكن للوجهة الحقيقية قاعدة إضافية: يجب إعلان السمة المخصصة قبل أن يستطيع تحديث جهة الاتصال ضبطها. لم يحاكِ خادم الاختبار تلك القاعدة. نتيجته الناجحة تثبت شيئاً عن الوكيل في عالم الاختبار، ولا تثبت شيئاً عن القاعدة الغائبة في العالم الحقيقي.
هذه مقايضة المحاكاة الأساسية: تجعل الأفعال الخطرة أو المكلفة قابلة للتكرار، وتخلق أيضاً نظاماً ثانياً قد يبتعد سلوكه عن الأول.
يتيح البديل اختبار الأفعال
لاختبار وكيل يتصرف، أعطه هدفاً وبيئة وحالة نهائية قابلة للملاحظة. تصف مناقشة عن بيئات الوكلاء المحاكية هذا البناء في مهام المتصفح والعمل المعرفي. وتتيح البيئة للمتحقق مقارنة ما تركه الوكيل بنتيجة صحيحة معروفة.
يمكن لبديل الوجهة في التكامل كشف عمليات قليلة: سرد الحقول، وإنشاء جهة اتصال وتحديثها وقراءة سجلها. وقد يحمل بيانات اختبار فيها حقل FNAME معلن، وحقل CUSTOM_TIER غائب. يمكن للاختبار أن يطلب من الوكيل اقتراح ربط، ثم يرفض كتابة تستخدم CUSTOM_TIER قبل وجود تعريف له.
يفيد البديل لأن كل تشغيل يبدأ من الحالة نفسها. يمكن تغيير شرط واحد كل مرة: حقل مفقود، أو إذن مرفوض، أو إصدار مخطط قديم، أو معرف ملتبس. ويمكن مقارنة تسلسل استدعاءات الوكيل والحالة الناتجة عبر النماذج أو المطالبات.
هذا أقوى من سؤال نصي عما سيفعله الوكيل؛ فهو يختبر ما استدعاه فعلاً في عالم مضبوط.
أعط بيانات الاختبار حالة قبل كل استدعاء وبعده، لا استجابة معلبة فقط. إذا أنشأ الوكيل جهة اتصال مرتين، ينبغي أن يكشف الاستدعاء الثاني سلوك التكرار المراد اختباره. وإذا قرأ حقلاً بعد كتابته، ينبغي أن تعيد القراءة الحالة المخزنة. وإلا قد ينجح بإرسال طلب معقول دون أن يكتشف الاختبار إن كان تسلسله قد أنتج السجل المقصود.
دقة المحاكاة جزء من الاختبار
اعتراض منصف يقول: «لدى المزود بيئة اختبار، فلماذا نبني أخرى؟» استخدم بيئته عندما تدعم الحالة المطلوبة وتحافظ على سلامة البيانات. يستحق البديل المحلي مكانه حين تحتاج إلى إعادة ضبط حتمية أو أعطال متعمدة أو استدعاءات لا تستطيع بيئة المزود ترتيبها. وله تكلفة صيانة أيضاً؛ فقد تكون كل قاعدة حاكيتها خاطئة أو تصبح قديمة.
تقول واجهة جهات اتصال Brevo الرسمية إن السمات يجب أن تكون موجودة في الحساب، وإن القيم التي تخالف النوع المعلن تُتجاهل. البديل الذي يرفض كل قيمة غير صالحة سيسلك سلوكاً مختلفاً عن هذه الحالة الموثقة، وقد يدرب الوكيل على انتظار خطأ لن يصل.
اكتب سلوكيات المزود التي يغطيها البديل. واحتفظ بمجموعة صغيرة من فحوص العقد على API الحقيقي أو بيئته الرسمية للاختبار. إذا وجد فحص فرقاً، حدّث البديل وأضف الحالة التي كشفت الفرق. المحاكاة نموذج للمزود وليست بديلاً منه.
وينطبق الانضباط نفسه على الوقت. قد يفوت بديل يجعل كل كتابة مرئية فوراً سير عمل يقرأ مبكراً جداً. وقد يختلق بديل يؤخر كل كتابة إخفاقات لا يحدثها المزود. حاكِ التوقيت حين يؤثر في القرار المختبر فقط، وسمِّ الباقي خارج نطاق المحاكاة. يصبح النجاح ذا معنى محدد: أكمل هذا الوكيل هذه الأفعال في ظل هذه القواعد الممثلة.
يصف دليل موصل Brevo من Tajo المشكلة العملية نفسها من جهة المتجر: قد ينجح الطلب ويبقى حقل غائباً. لا يفيد الاختبار إلا إذا فحص الحقل، لا استجابة HTTP وحدها.
تختبر الوجهة المحاكية الوكيل وفق قواعد ممثلة، وتقارن فحوص العقد هذه القواعد بالوجهة الحية قبل معاينة محدودة.
انتقل من تمرين آمن إلى دليل محدود
ينبغي أن يقود نجاح المحاكاة إلى معاينة صغيرة على الوجهة الحقيقية. اختر بضعة سجلات بحالات متوقعة واضحة في الوجهة. أدرج سجلاً عادياً، وسجلاً ينقصه حقل اختياري، وسجلاً تمنع حالة موافقته استخدامه للتسويق. تحقق مما تخزنه الوجهة فعلاً، ولا تستنتج النتيجة من محتوى الطلب وحده.
تجيب المعاينة الاصطناعية وفحص الوجهة عن سؤالين مختلفين. تختبر معاينة الربط في Tajo التحويل بلا كتابة إلى الوجهة. يوضح العرض المقترح أدناه المرحلة التالية: حتى التحديث المطبق يحتاج إلى فحص حالة الوجهة. إبقاء هذا الفحص معلقًا يمنع اعتبار التدريب دليلًا.
حتى الكتابة المكتملة تحتاج إلى دليل
هل انتهت مزامنة العملاء؟
طُبقت الكتابة. التحقق معلّق.
لم تُفحص حالة الوجهة بعد.
نشاط المزامنة
- قُبل الطلب
- طُبق التحديث
- فحص الوجهة معلّق
تشغيل توضيحي · 14:32 UTC
ما نعرفه
- رد المزوّد
- مقبول
- نتيجة الكتابة
- مطبّق
- قراءة حالة الوجهة
- معلّق
نجاح الاستدعاء لا يثبت الحالة النهائية.
تصميم مقترح يستند إلى سجل النشاط في Tajo. يضيف هذا الرسم حالة تحقق، ولا يدّعي أن قراءة الوجهة بعد الكتابة مطبّقة بالفعل.
ينبغي أن تكون المعاينة ضيقة النطاق وواضحة شرط التوقف. يجب أن يمنع الإخفاق التفعيل الواسع ويشير إلى موضع الاختلاف: تعريف الحقل أو المعرف أو النوع أو الإذن أو التوقيت. النجاح لا يثبت أن كل سجل مستقبلي سيسلك السلوك نفسه، لكنه يثبت أن العقد يعمل للحالات المختارة اليوم.
يفصل هذا التسلسل سؤالين. تسأل المحاكاة: «هل يتبع الوكيل القاعدة المصممة حين نتحكم في العالم؟» وتسأل المعاينة الحية: «هل تلائم القاعدة المصممة حساب هذا المزود؟» لا يغني سؤال عن الآخر.
يشرح دليل عكس ETL سبب تكرار العمل النهائي على سجلات كثيرة. ويضخم ذلك أي فرق باق بين العقد المحاكي والحقيقي.
تدرب في عالم يمكنك إعادة ضبطه، ثم افحص العالم الذي لا يمكنك ذلك فيه.
الأسئلة المتكررة
ماذا تختبر الوجهة المحاكية؟
تختبر اختيار الوكيل الاستدعاءات المتوقعة، واحترامه الأذونات، وتعامله مع الأخطاء المعروفة، وتركه الحالة المتوقعة داخل المحاكاة.
ماذا لا تستطيع إثباته؟
لا تثبت أن نموذجها للمزود كامل. فقد يختلف السلوك غير الموثق والتوقيت وإعداد الحساب الخاص عن المحاكاة.
ماذا ينبغي بعد نجاح المحاكاة؟
نفذ معاينة أو اختباراً أولياً محدوداً على الوجهة الفعلية، ثم افحص الحالة الناتجة قبل التفعيل الواسع.