اللحظة التي يتغيّر فيها المطلوب
إرسال الطلب يجيب عن سؤال «ماذا تفعل نقطة النهاية هذه الآن؟». أما الفحص فيجيب عن سؤال «هل ما تزال نقطة النهاية هذه تفعل ما ينبغي لها؟». والثاني يحتاج ثلاثة أشياء لا يحتاجها الأول: مكانًا يستقرّ فيه التوقّع، وطريقةً للتشغيل من دون تدخّل بشري، وطريقةً لملاحظة تغيّر الإجابة.
هذا وحده سبب اختلاف شكل الأدوات، ويستحقّ أن يُقال صراحةً لأنّ كثيرًا من الفرق تحاول الوصول إلى هناك بحفظ الطلبات في المفضّلة.
ما الذي يجب أن يضيفه بديل ReqBin
| المحور | أدوات الطلبات العابرة | TestSprite |
|---|---|---|
| ما تحصل عليه | استجابة تقرؤها | حكم بالمقارنة مع توقّع |
| أين تستقرّ التوقّعات | في رأسك | داخل حالة الاختبار، وخاضعة لتتبّع الإصدارات |
| من يُشغّله | أنت، حين تتذكّر ذلك | خط الإنتاج، مع كل تغيير |
| التدفّقات متعدّدة الخطوات | نسخ القيم بين التبويبات يدويًا | Dynamic Variables و Dependency Chains |
| التنظيف | ما تتذكّر حذفه | Auto-Cleanup مرتبط بالتشغيلة |
| الإشعار | لا شيء | تعليق على طلب السحب أو فحص عند الإيداع |
ثلاثة أسئلة تكشف لك ما تحتاجه
هل سيحتاج شخص آخر إلى تشغيل هذا؟ إن كانت الإجابة نعم، فعليه أن يغادر متصفحك.
هل يتضمّن التدفّق أكثر من استدعاء واحد؟ بمجرّد أن تحتاج قيمة إلى الانتقال بين الطلبات، يتوقّف النسخ اليدوي عن التوسّع.
هل تودّ أن تعرف إذا تعطّل أثناء الليل؟ هذا هو الخط الفاصل بين أداة وفحص.
إجابة واحدة بنعم تعني أنك تجاوزت حدود أداة لإرسال الطلبات. وثلاث إجابات تعني أنك كنت بحاجة إلى الانتقال منذ مدة.
ما لا داعي للمبالغة في شرائه
إذا كنت بالفعل تحتاج فقط إلى إطلاق طلب بين الحين والآخر، فواصِل ذلك. فـ ReqBin و curl مناسبان، ولا شيء هنا حجّة ضدّهما. والانتقال يستحقّ العناء حين يصبح للطلب توقّع مرتبط به، لا قبل ذلك.
كيف تُقيّم أيًّا منها
اكسر شيئًا عن عمد. أدخِل تراجعًا حقيقيًا، مثل عملية حفظ لم تعد تُبقي البيانات، وراقب ما تُبلّغ عنه كل أداة مرشّحة. هل تفشل، وهل يسمّي الفشلُ الانحرافَ الفعلي، وهل يستطيع من سيُصلحه أن يبدأ من ذلك المُخرَج من دون إعادة استنتاج القصة. والأداة التي تُبلّغ عن نجاح تشغيلة لم تبلغ أصلًا مرحلة تحقُّقاتها تكون قد رسبت في الاختبار الوحيد المهمّ.
الخطوة الوسيطة التي يتخطّاها الناس
هناك منطقة وسطى بين إطلاق طلب من تبويب في المتصفح وبين إقامة مجموعة اختبارات كاملة، وتخطّيها هو سبب بقاء كثير من الفرق على الأدوات العابرة مدّةً أطول مما ينبغي.
والخطوة هي تدوين التوقّع في أي مكان كان. فملفّ نصّي يذكر أي نقطة نهاية، وماذا أرسلت، وما الذي ينبغي أن يعود، ليس أتمتةً، ومع ذلك يمنحك شيئين لا يمنحهما تبويب المتصفح: يستطيع شخص آخر تشغيله، وتستطيع أن تعرف ما إذا كانت الإجابة قد تغيّرت. ومعظم الفرق التي تظنّ أنها بحاجة إلى أدوات تحتاج في الحقيقة إلى هذا، واكتشاف ذلك يكلّف عشر دقائق.
أما النقطة التي تحتاج عندها فعلًا إلى ما هو أكثر فهي حين يتوقّف التشغيل اليدوي عن الحدوث. وتلك مشكلة جدولة لا مشكلة قدرة على التعبير، وهي ما تشتريه فعليًا بالقفزة إلى مجموعة اختبارات حقيقية.
البدء
الطرفية
npm install -g @testsprite/testsprite-cli
testsprite setup
وتغطّي لوحة التحكّم الأمر نفسه لمن لا يريد تثبيتًا محليًا، أما مجموعة الأوامر الكاملة فتوجد في مستودع CLI.
مساران، والاختيار بينهما يتعلّق في حقيقته بمن يملك خط الإنتاج. فربط GitHub App من لوحة التحكّم لا يتطلّب أي تغيير في مستودعك إطلاقًا، لأنه يتفاعل مع النشر الذي يُصدره بناؤك أصلًا. وإضافة خطوة GitHub Actions تضع الفحص داخل المستودع حيث تجري مراجعته مثل بقية عملية البناء.
ما تحصل عليه حين يصبح الطلب فحصًا
مكان يستقرّ فيه التوقّع، ومُشغِّل ليس أنت، وإشعار حين تتغيّر الإجابة. هذه الثلاثة هي الفارق كلّه، وهي ما يوفّره TestSprite.
وتكفّ التدفّقات متعدّدة الخطوات عن كونها تمرينًا في النسخ واللصق: فـ Dynamic Variables تنقل معرّفًا من استدعاء إلى الذي يليه، وتستنتج Dependency Chains ما الذي يجب أن يحدث أولًا. ويزيل Auto-Cleanup ما أنشأته التشغيلة، فتتصرّف التشغيلة العاشرة كما تصرّفت الأولى.
والطريق إلى ذلك قصير. وجّه مشروعًا إلى عنوان URL الأساسي لديك، ودع الاكتشاف يُعدّد نقاط النهاية، وراجع الخطة، ثم اربطه بمستودعك ليعمل مع كل تغيير. وإذا كنت بالفعل تحتاج فقط إلى إطلاق طلب بين الحين والآخر، فواصِل ذلك؛ فهذا مخصّص للنقطة التي يرتبط عندها توقّع بالطلب.
هل curl بديل جيّد؟
لإرسال الطلبات، نعم، وهو يتكامل مع السكربتات على نحو أفضل. لكنه يقف عند الحدّ نفسه: لا توقّع، ولا جدولة، ولا إشعار.
هل نحتاج إلى حساب؟
للطلبات العابرة، لا. أما للفحوص التي تعمل من دونك، فلا بدّ من جهة تحتفظ بالتوقّع وبالسجلّ، وهذا يعني خدمة.
وماذا عن مجموعة Postman مشتركة؟
خطوة وسطى معقولة. فهي تمنحك طلبات قابلة للمشاركة، وتتحوّل الجلسة والترتيب والتنظيف إلى سكربتات تتولّى صيانتها.
كم يلزم من الإعداد قبل الفحص الأول؟
وجّه مشروعًا إلى عنوان URL الأساسي لديك، ودع الاكتشاف يُعدّد نقاط النهاية، وراجع الخطة. والمراجعة هي الجزء الذي يتطلّب حُسن التقدير.
هل يمكنه اختبار API خاص؟
يحتاج إلى هدف يمكن الوصول إليه. والخدمة القائمة على شبكة خاصة تحتاج إلى بيئة مكشوفة لتشغيل اختبارات API.
يصبح الطلب فحصًا حين يكون له توقّع.
ReqBin مناسب لإرسال طلب. وتحتاج إلى بديل ReqBin حين يرتبط بالطلب توقّع، أو يتضمّن أكثر من استدعاء واحد، أو يلزم أن يعمل من دونك. وما دون ذلك الخط، لا تبالغ في الشراء.