الجزء الأول: ما الغرض الفعلي من اختبار وتطوير API باستخدام Postman

المجموعة سجلٌّ للطلبات قابل للمشاركة والتشغيل. وهذا يجعلها ممتازة في ثلاث مهام: استكشاف API غير مألوف، وتوثيقه بأمثلة قابلة للتنفيذ فعلاً، وتسليم شخصٍ ما حالةً يستطيع إعادة إنتاجها بنفسه. وهذه الثلاث تستحق أن تُنجَز بإتقان، وكثيراً ما يُبخَس قدرها.

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

الجزء الثاني: المشكلات الأربع

كل حزمة اختبارات API، في كل أداة، تصطدم في النهاية بالمشكلات الأربع نفسها. ومعرفتها مسبقاً هي معظم المهارة.

الجلسات تنتهي صلاحيتها

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

  • أخرِج بيانات الاعتماد من الطلبات المنفردة وضعها في البيئة.

القيم تنتقل بين الاستدعاءات

  • عملية إنشاء تُعيد معرّفاً يحتاجه الاستدعاء التالي.

  • التقطه ولا تكتبه ثابتاً في الشيفرة أبداً، وإلا عملت الحزمة مرة واحدة فقط.

الترتيب مهم

  • التغطية بنية رسم بياني، أما المجموعة فقائمة.

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

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

الجزء الثالث: التأكيدات الجديرة بالكتابة

  • أكِّد على جسم الاستجابة، لا على رمز الحالة وحده. فاستجابة 200 بقائمة فارغة في موضع ينبغي أن يوجد فيه سجل خللٌ يعدّه فحص الحالة نجاحاً.

  • أكِّد أن الإخفاقات تُخفق على النحو الصحيح. اطلب شيئاً غير موجود وافحص الرمز وشكل الخطأ. فالخدمات التي تُعيد 200 وبداخلها خطأ شائعة.

  • أكِّد عبر نقاط النهاية المختلفة. إن كان سجلٌّ يشير إلى آخر، فاجلبه. فالعلل المثيرة للاهتمام تسكن بين استدعاءين.

الجزء الرابع: حين لا تكفي المجموعة

العلامة الفارقة أن تكون نصوص ما قبل الطلب لديك قد صارت إطار عمل صغيراً لا يفهمه سوى شخص واحد. عند تلك النقطة تصبح المشكلات الأربع بنيتك التحتية أنت لا بنية أداتك، وتلك هي اللحظة المناسبة لنقل تغطية اختبارات الانحدار إلى مكان يعاملها كجزء من المنتج. وتتولاها TestSprite بوصفها Auto-Authentication وDynamic Variables وDependency Chains وAuto-Cleanup، على النحو الموصوف في توثيق اختبار API.

احتفظ بالمجموعة. فهي ما تزال أفضل ما لديك للاستكشاف والتوثيق.

الجزء الرابع ونصف: النصوص البرمجية التي لا يراجعها أحد

تستحق نصوص ما قبل الطلب ونصوص الاختبار داخل المجموعة وقفةً، لأنها موطن الإخفاقات المثيرة للاهتمام ولأنها لا تُراجَع تقريباً أبداً.

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

إن بلغت نصوصك البرمجية الحدَّ الذي تبدو عنده تلك الفقرة مألوفة، فإن المجموعة قد صارت برمجية. والبرمجيات تريد مراجعةً وإدارة إصدارات واختبارات خاصة بها، وهو موضع غريب تصل إليه وأنت تقصد أصلاً اختبار شيء آخر.

الجزء الخامس: اجعلها تعمل من دونك

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

الطرفية

npm install -g @testsprite/testsprite-cli
testsprite setup

الإعداد نفسه متاح في لوحة تحكم TestSprite إن كنت تفضّل ألا تثبّت شيئاً محلياً. أما بقية واجهة CLI فتجدها في مستودع CLI.

الجزء السادس: ماذا تفعل TestSprite بالمشكلات الأربع

لكلٍّ من الأربع اسمٌ وتُعالَج بوصفها جزءاً من المنتج لا نصاً برمجياً تكتبه أنت. فـ Auto-Authentication تضبط تدفق تسجيل الدخول مرة واحدة وتجلب رمزاً مميزاً جديداً قبل كل تشغيل. وDynamic Variables تلتقط قيمة من استجابة وتحقنها في الطلب التالي. وDependency Chains تشتق ترتيباً آمناً مما تحتاجه كل حالة وما تنتجه. وAuto-Cleanup تحذف بالضبط السجلات التي أنشأها التشغيل.

وتبدأ التغطية من API Discovery على الخدمة العاملة إضافةً إلى أي مواصفات لديك، وتشمل الخطة المولَّدة فئات التفويض ومعالجة الأخطاء والحدود، وهي الفئات التي يتخطاها الناس.

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

هل يوجد ملف PDF رسمي مجاني؟

ذلك يحدده الناشرون وهو يتغير. وهذه الصفحة معرفة عملية لا نسخة من كتاب.

هل ينبغي أن أتعلّم Postman أولاً؟

نعم. فهو أسرع طريق لبناء تصوّر ذهني دقيق لأي API، وهذا الفهم ينتقل معك إلى كل أداة أخرى.

هل أحتاج إلى تعلّم كتابة النصوص البرمجية؟

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

بأي ترتيب أتعلّم هذا؟

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

هل يكفي Newman للتكامل المستمر؟

هو يشغّل المجموعات في التكامل المستمر بلا مشكلة. والسؤال هو مَن يصون النصوص البرمجية تحتها، لا أيُّ مشغِّل ينفّذها.

باختصار

تعلّم المشكلات الأربع، لا القائمة.

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