10 خطوات كيفية أتمتة اختبار API الخاص بك على نحو فعال ~

قبل قراءة هذا المنشور ، تأكد من وجود واحدة من هذه المشكلات على الأقل:

  1. هل لديك مشكلة أو لا تزال تفعل اختبار API يدويا؟
  2. هل تعمل كـ QA / QE / TE / SET باستخدام Postman / Insomnia / Paw غالبًا لاختبار نقاط نهاية REST API لأنك لا تعرف بالضبط كيفية اختبار نقاط النهاية تلقائيًا؟
  3. هل تعمل ك QA / QE / TE / SET الذي يريد فصل الاختبار عن التطبيق؟

الغرض الرئيسي من هذا المنشور هو حل جميع المشكلات المذكورة أعلاه من خلال أتمتة اختبار API ودمجها مع Jenkins CI. إنه أسهل مما تعتقد إذا اخترت الأدوات والتقنيات المناسبة لتلك المهمة.

الشروط المسبقة

  1. Node.js: Node.js هو وقت تشغيل JavaScript مبني على محرك جافا سكريبت V8 من Chrome. يستخدم Node.js نموذج I / O الذي يحركه الحدث والذي لا يحجب ، مما يجعله خفيف الوزن وفعال. النظام البيئي لحزم Node.js ، npm ، هو أكبر نظام إيكولوجي للمكتبات مفتوحة المصدر في العالم.
  2. Mocha: Mocha هو إطار اختبار جافا سكريبت يجعل من السهل إجراء اختبار غير متزامن.
  3. Chai: على عكس Jasmine ، يجب استخدام مكتبة تأكيد إضافية لتكملة Mocha. Chai هي مكتبة للتأكيد تتيح لك اختيار واجهة التوكيد التي تفضلها ، بما في ذلك "التوكيد" و "التوقع" و "ينبغي".
  4. SuperTest: SuperTest هو امتداد SuperAgent ، مكتبة طلبات HTTP AJAX خفيفة الوزن. يوفر SuperTest تجريدات عالية المستوى لاختبار استجابات node.js لنقطة نهاية API مع تأكيدات سهلة الفهم.
  5. Docker: Docker عبارة عن منصة مفتوحة للمطورين ومسؤولي النظام لإنشاء التطبيقات الموزعة وشحنها وتشغيلها ، سواء على أجهزة الكمبيوتر المحمولة أو أجهزة VM مركز البيانات أو السحابة.
  6. Jenkins CI: Jenkins هو خادم أتمتة مفتوح المصدر مكتوب بلغة Java. تساعد Jenkins على أتمتة الجزء غير البشري من عملية تطوير البرامج بأكملها ، مع وجود أشياء شائعة مثل التكامل المستمر ، ولكن عن طريق تمكين الفرق من تنفيذ الجزء الفني من التسليم المستمر.

يفترض هذا البرنامج التعليمي أن لديك بالفعل:

  1. Node.js ورصيف ميناء المثبتة على جهازك.
  2. التطبيق مع API الذي تريد اختباره قيد التشغيل بالفعل. (هنا هو المثال التطبيق https://github.com/rifkyalikiki/example-api-app)
  3. جنكينز CI مثبتة بالفعل.

هيا بنا نبدأ

  1. قم بإنشاء مجلد مشروع الاختبار. على سبيل المثال: مثال - اختبار api
  2. قم بإنشاء ملف package.json لإضافة جميع التبعيات.

3. تثبيت جميع التبعيات عن طريق تشغيل هذه الأوامر.

قرص your_test_project_folder
npm تثبيت -g المخاوي
تثبيت npm

يجب إضافة مجلد node_modules إلى مجلد مشروع الاختبار الخاص بك ويجب تثبيت جميع التبعيات بنجاح.

4. إنشاء مجلد اختبار على مجلد مشروع الاختبار.

قرص your_test_project_folder
اختبار مكدير

يجب أن يسمى الدليل اختبار Mocha للعثور على ملفات الاختبار لتشغيلها.

5. قم بإنشاء أول ملف اختبار API

يمكنك تسمية ملفات المخاوي الخاصة بك بأي شيء. ومع ذلك ، إذا كنت تختبر نقاط نهاية متعددة مرتبطة بمجموعات من النماذج ، فإنني أوصي بتسمية "yourModel_test.js". على سبيل المثال ، فقط قم بإنشاء ملف user_test.js داخل دليل الاختبار. لا تنسَ تعيين عنوان URL لواجهة برمجة التطبيقات على متغير عمومي أيضًا. سوف تتصل بهذا المتغير عندما تقدم طلبات RESTful باستخدام SuperTest.

6. لنقم بتشغيل اختبار واجهة برمجة التطبيقات الأول عن طريق تشغيل هذه الأوامر

قرص your_test_project_folder
npm البداية
أو
قرص your_test_project_folder
JUNIT_REPORT_PATH = test-result / result.xml JUNIT_REPORT_STACK = 1 المخاوي - المهلة 25000 - الألوان - المُخبر المخاط - جنكينز - المراسل

هنا هي نتيجة الاختبار

نتائج الاختبار من المحطةresult.xml

7. إنشاء enterpoint.sh لوضع الأمر عداء الاختبار.

8. قم بإنشاء dockerfile ليتم استخدامه على Jenkins CI.

9. إنشاء جنكينز البنود المهمة الخاصة بك

جنكينز الوظيفة الجديدة البندجنكينز Job Job (1)جنكينز Job Job (2)جنكينز Job Job (3)

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

بعد ذلك انقر على زر حفظ لحفظ الوظيفة.

10. قم بتشغيل Jenkins Job الخاص بك وشاهد نتائج الاختبار.

قم بتشغيل مهمة jenkins بالنقر فوق زر التشغيلنتيجة الاختبار من وظيفة جنكينز

ستكون نتائج الاختبار الخاصة بي مختلفة عنك لأنني قمت بالفعل بتشغيل المهمة أثناء كتابة هذا المنشور.

تهانينا ، لقد نجحت في اختبار واجهة برمجة التطبيقات (API) الخاصة بك بنجاح. نشر المقبل سأقدم نظرة ثاقبة حول فكرتي لإنشاء إطار الاختبار الخاص بك.

اختبار سعيد!

المصدر: http://developmentnow.com/2015/02/05/make-your-node-js-api-bulletproof-how-to-test-with-mocha-chai-and-supertest/