الشروع في استخدام واجهة برمجة تطبيقات التنفيذ التلقائي: الجزء 1 - نظرة عامة

ترجمة شاشي كومار رجا


لذلك ، لنفترض أنك تريد تنفيذ أتمتة واجهة برمجة التطبيقات ، ولكن في كل مرة تكتب فيها أفضل أداة أتمتة api في شريط بحث Google ، ترى العديد من الروابط لأفضل 10 أدوات تتعرض للارتباك وتقرر أنك ستفعلها غدًا بالتأكيد




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



يجب تعليق الأدوات المدفوعة ، وليس تنفيذها :)


1. أين يجب أن أبدأ بحق الجحيم في كتابة الاختبارات؟

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


هل سمعت من TESTNG ، JUNIT ، MOCHA ، PYTEST ، روبوت نعم ، كلهم ​​بيئات أتمتة الاختبار.


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


لمعرفة المزيد عن بيئة الاختبار ، راجع الجزء 2 من السلسلة ، حيث قمت بتقديم Mocha و Pytest بالتفصيل .


2. كيف سأقوم بإجراء مكالمات API في بيئة اختبار؟

تدعم معظم هذه الأنظمة الأساسية مكالمات API ، بما في ذلك مكتبة طلبات HTTP ، لأن REST APIs تستخدم بروتوكول HTTP للاتصال.


تمنحك بعض الأطر ، مثل mocha ، حرية استخدام مكتبة طلب HTTP التي تختارها ، مثل superagent .


  <code class = "lang-JS"> طلب
   .post ('/ api / pet')
   .send ({name: 'Manny'، types: 'cat'}) // يرسل نصًا نشرًا JSON
   .set ('X-API-Key' ، 'foobar')
   .set ("قبول" ، "json")
   .end ((err، res) => {
     // استدعاء وظيفة النهاية سيرسل الطلب
   }) ؛
 </code> 

إنها توفر لك دعمًا سهلاً لـ GET و PUT و POST و DELETE وجميع الطرق الأخرى ، حيث يمكنك تمرير الرؤوس وذاكرة التخزين المؤقت ومعايير طلب المعلومات التي اتصلت بها - لقد حصلت عليها


3. رائع ، ولكن بعض واجهات برمجة التطبيقات الخاصة بي توفر JSON والبعض الآخر يعطي XML استجابة لذلك ، كيف يمكنني التعامل مع هذا؟

تتيح لك معظم مكتبات طلبات HTTP إرسال البيانات واستلامها بتنسيقات JSON و XML و CSV والنص والصورة وبيانات النماذج وتنسيقات البيانات المشفرة مع العديد من معايير الترخيص المعتمدة.


كما أنها تتيح لك معالجة رمز حالة استجابة HTTP والتحقق مما إذا كنا تلقينا رمز حالة الاستجابة المطلوبة أم لا.


  • رموز الاستجابة المعلوماتية (1xx)
    100 - تابع
    101 - تبديل البروتوكولات
    102 - المعالجة

  • رموز استجابة النجاح (2xx)
    200 - حسن 206 - محتوى جزئي
    201 - تم الإنشاء 207 - حالة متعددة
    202 - مقبول 208 - تم الإبلاغ عنه بالفعل
    203 - معلومات غير موثوقة 226 - IM مستخدم
    204 - لا يوجد محتوى 250 - مساحة تخزين منخفضة
    205 - إعادة تعيين المحتوى

  • رموز الاستجابة لإعادة التوجيه (3xx)
    300 - خيارات متعددة 304 - غير معدلة
    301 - تم النقل نهائيًا 305 - استخدم الخادم الوكيل
    302 - العثور على 307 - إعادة توجيه مؤقتة
    303 - انظر أشياء أخرى 308 - إعادة التوجيه الدائم

  • رموز استجابة خطأ العميل (4xx)
    400 - خيارات متعددة 410 - غير معدلة
    401 - تم النقل نهائيًا 411 - استخدم الخادم الوكيل
    402 - وجدت 412 - إعادة توجيه مؤقتة
    403 - انظر الآخر 413 - إعادة التوجيه الدائم
    404 - خيارات متعددة 414 - غير معدلة
    405 - تم النقل نهائيًا 415 - استخدم الخادم الوكيل
    406 - العثور على 416 - إعادة توجيه مؤقتة
    407 - انظر الآخر 417 - إعادة التوجيه الدائم
    408 - العثور على 418 - إعادة توجيه مؤقتة
    409 - انظر الآخر

  • رموز استجابة خطأ الخادم (5xx)
    500 - خطأ خادم داخلي 508 - كشف حلقة
    501 - لم يتم التنفيذ 509 - النطاق الترددي المحدود
    502 - بوابة سيئة 510 - غير ممتدة
    503 - الخدمة غير متوفرة 511 - طلب مصادقة الشبكة
    504 - مهلة العبّارة 550 - تم رفض الإذن
    505 - إصدار HTTP غير معتمد 551 - خيار غير معتمد
    506 - البديل أيضاً يتفاوض 598 - خطأ مهلة قراءة Nework
    507 - التخزين غير الكافي 599 - خطأ في مهلة اتصال الشبكة

4. جيد ، ولكن كيف يمكنني معالجة بيانات الاختبار؟

يعتمد على المكان الذي تحصل منه على بيانات الاختبار. ستتيح لك أطر عمل الاختبار هذه استخدام جميع ميزات اللغة التي تعتمد عليها -


أ. قاعدة البيانات: يمكنك بسهولة إنشاء اتصالات قاعدة البيانات لقراءة البيانات.


ب. الملف الخارجي: يمكنك قراءة النص الخارجي أو JSON أو CSV أو أي ملفات أخرى.


ج. بيانات عشوائية: يمكنك استخدام المكتبات مثل faker لإنشاء بيانات اختبار عشوائية أثناء الطيران.


  <code> var faker = require ('faker') ؛

 var randomName = faker.name.findName ()؛  // روان نيكولاوس
 var randomEmail = faker.internet.email ()؛  // Kassandra.Haley@erich.biz
 var randomCard = faker.helpers.createCard ()؛  // بطاقة اتصال عشوائية تحتوي على العديد من الخصائص
 </code> 

د. البيانات من استجابة واجهة برمجة التطبيقات: في كثير من الأحيان أثناء الاختبار ، ستحتاج إلى تمرير استجابة واجهة برمجة التطبيقات (API) كبيانات طلب إلى أخرى. يمكنك القيام بذلك باستخدام الخطافات ، وستحصل على وظائف مثل قبل ، قبل كل ، بعد ، بعد كل ، والتي ، كما يوحي الاسم ، يتم تنفيذها قبل / بعد أي من الاختبارات أو جميعها. استدعاء API1 قبل API2 ، وتمرير ردها على API2. فقط صحيح !!! ️


5. يبدو أن معالجة بيانات الاختبار وإجراء مكالمات واجهة برمجة التطبيقات بسيطة ، ولكن كيف يمكنني التحقق من إجابات واجهة برمجة التطبيقات؟

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


في المخاوي ، يمكنك استخدام أي مكتبة تأكيد ، على سبيل المثال ، تشاي .


  <code> response.status.should.equal (200)
 foo.should.be.a ('string') ؛
 foo.should.have.lengthOf (3)؛
 tea.should.have.property ("النكهات")
   .with.lengthOf (3) ؛
 </code> 

6. مذهلة! بقي هناك تافه ، بعد كل هذا الاختبار ، أظهر بطريقة ما لرئيسي ما فعلته وأين وجدت المشاكل؟

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



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

ماذا قلت لك ، لقد أسميتها ، أنت حصلت عليها


هذا هو القالب الذي قمت بإنشائه لأتمتة واجهة برمجة التطبيقات باستخدام الموكا في node.js.


ويشمل-


  • اختبار الإطار (المخاوي) ،
  • مكتبة طلب HTTP (اختبار ممتاز) ،
  • مكتبة التأكيد (تشاي) ،
  • مراسل (جاذبية) ،
  • مسجل (وينستون) ،
  • مولد بيانات عشوائي (فاكر) ،
  • دعم Eslint و
  • التحقق من صحة سلسلة المشاغب المتكاملة . كل ما عليك فعله هو استنساخ / تنزيله وأنت مستعد للذهاب.

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


إذا حببت هذا المقال ، فبإمكانك تصفيق يديك ، فربما يجعلني أكتب أكثر

Source: https://habr.com/ru/post/ar433726/


All Articles