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

API هو اختصار يرمز إلى واجهة برمجة التطبيقات. بعبارات بسيطة ، يمكننا تعريفه على أنه وسيط برمجي يسمح بالاتصال بين التطبيقات.

نحتاج إلى اختبار API لأن:

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

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

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

ما هو إطار الكاراتيه

الكاراتيه؟ لنتحدث عن الكاراتيه. هل هو من اليابان؟ ماذا تعتقد؟ قد يكون ذلك بروس العظيمهذا البرنامج النصي لاختبار الكاراتيه الأساسي.

السيناريو:

سنختبر واجهة برمجة التطبيقات باستخدام عنوان URL هذا.

المسار: api / users / 2

الطريقة: GET

ونحن بحاجة إلى التحقق من صحة ، ما إذا كان الطلب يعيد رمز النجاح ( 200) أم لا.

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

ملاحظة: نحن نأخذ عينة API المتاحة للاختبار. يمكنك اختيار أي مسار أو يمكنك الرجوع إلى واجهة برمجة التطبيقات الخاصة بك.

انقر هنا للحصول على المصدر.

# 5) الآن ستكون خطوتنا التالية هي إنشاء .feature file.

كما تمت مناقشته في قسم المقدمة ، فإن ملف الميزة هو الخاصية التي تم توارثها من Cucumber. في هذا الملف ، سنقوم بكتابة سيناريوهات الاختبار التي يجب تنفيذها لإجراء اختبار API.

  • انتقل إلى المجلد src / test / java في مشروعك.

  • انقر بزر الماوس الأيمن فوقه وأنشئ ملفًا جديدًا - userDetails.feature. ثم انقر فوق الزر "إنهاء".

الآن سترى الملف التالي ضمن المجلد src / test / java

الرمز الأخضر الملون يشبه الميزة fi le في الخيار الذي أنشأناه للتو.

  • بمجرد إنشاء الملف ، سنقوم الآن بكتابة سيناريوهات الاختبار الخاصة بنا والتي ستتم مناقشتها في القسم التالي.

# 6) نظرًا لأن لدينا السيناريو والملف الفارغ. ميزة جاهز ، فلنبدأ الآن مع النص البرمجي الأول. لنبدأ الترميز

اكتب السطر التالي من التعليمات البرمجية ضمن ملف userDetails.feature الذي أنشأناه في الخطوة رقم 5:

 Feature: fetching User Details Scenario: testing the get call for User Details Given url '//reqres.in/api/users/2' When method GET Then status 200

دعونا نحاول فهم المكونات التي تمت كتابتها في الملف أعلاه:

  • الميزة: الكلمة الرئيسية تشرح اسم الميزة التي نختبرها.
  • الخلفية: هذا قسم اختياري يتم التعامل معه على أنه قسم متطلب سابق. يمكن استخدام هذا لتحديد كل ما هو مطلوب لاختبار API. يحتوي على HEADER و URL & amp؛ خيارات PARAM .
  • السيناريو: سيكون لكل ملف ميزة ستراه ميزة واحدة على الأقل (على الرغم من أنه يمكن أن يوفر سيناريوهات متعددة ) . إنه وصف حالة الاختبار.
  • المعطى: إنها الخطوة التي يتعين تنفيذها قبل تنفيذ أي خطوة اختبار أخرى. إنه إجراء إلزامي يجب القيام به.
  • متى: يحدد الشرط الذي يجب الوفاء به لأداء خطوة الاختبار التالية.
  • ثم: يخبرنا أن ما يجب أن يحدث في حالة الشرط المذكور في عندما يتم استيفاء .

ملاحظة: جميع الكلمات الرئيسية المذكورة أعلاه هي من لغة جيركينز. هذه هي الطريقة القياسية لكتابة نصوص الاختبار باستخدام Cucumber.

وبعض الكلمات الأخرى المستخدمة في ملف الميزة هي:

  • 200: إنه رمز الحالة / الاستجابة الذي نحن عليهتوقع (انقر هنا للحصول على قائمة رموز الحالة)
  • GET: إنها طريقة API مثل POST ، PUT ، إلخ.

نأمل هذا الشرح كان من السهل عليك فهمه. الآن ستتمكن من الارتباط بما هو مكتوب بالضبط في الملف أعلاه.

الآن نحتاج إلى إنشاء ملف TestRunner.java

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

  • انتقل إلى المجلد src / test / java في مشروعك

  • انقر بزر الماوس الأيمن فوقه وأنشئ ملف Java جديدًا: TestRunner.java
  • بمجرد إنشاء الملف ، ضع الأسطر التالية من التعليمات البرمجية تحته:
 import org.junit.runner.RunWith; import com.intuit.karate.junit4.Karate; @RunWith(Karate.class) public class TestRunner { }
  • Test Runner هو الملف الذي سيتم تنفيذه الآن لتنفيذ السيناريو المطلوب الذي تمت كتابته في الخطوة رقم 5.

# 7) الآن نحن جاهزون بكل من الملفين TestRunner.Java و userDeatils.feature. المهمة الوحيدة المتبقية لنا هي تشغيل البرنامج النصي

  • انتقل إلى ملف TestRunner.java وانقر بزر الماوس الأيمن على الملف كما هو موضح في الصورة أدناه.

  • اختر تشغيل باسم - & gt؛ Junit Test
  • الآن ، بمجرد تحديدك ، ستبدأ في ملاحظة أن حالة الاختبار قد بدأت الآن.
  • انتظر تنفيذ البرنامج النصي للاختبار. بمجرد الانتهاء من ذلك ، ستلاحظ شيئًا كما هو موضح في الصورة أدناه في نافذتك.

  • أخيرًا ، يمكننا القولأننا نجحنا في إنشاء أول اختبار أساسي لنا البرنامج النصي باستخدام إطار الكاراتيه

# 8) أخيرًا ، الكاراتيه يوفر framework أيضًا عرضًا تقديميًا لتقرير HTML للتنفيذ الذي تم تنفيذه.

  • اذهب إلى Target Folder - & gt؛ تقارير مؤكدة - & GT. هنا سترى تقرير HTML الخاص بك والذي يمكنك فتحه.

** نقترح عليك أيضًا فتح الملف نفسه باستخدام Chrome متصفح للحصول على مظهر ومظهر أفضل.

  • سيظهر لك تقرير HTML التالي الذي يصور السيناريوهات & amp؛ اختبار الذي تم تنفيذه للسيناريو المذكور:

الخاتمة

في هذا البرنامج التعليمي ، ناقشنا اختبار API واختبار مختلف الأدوات المتاحة في السوق ، وكيف أن Karate Framework هو خيار أفضل مقارنة بنظرائه.

لقد اتبعنا نهجًا تدريجيًا لإنشاء أول برنامج نصي للاختبار الأساسي. بدأنا بإنشاء مشروع Maven أساسي في Eclipse IDE لإنشاء ملف ميزة يحتوي على كل سيناريو الاختبار وملف Runner لتنفيذ حالة الاختبار المذكورة في ملف الميزة.

في نهاية الخطوات المتعددة ، يمكننا الاطلاع على تقرير تنفيذ نتائج الاختبار.

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

NEXT & gt؛ & gt؛

لقد طور Lee هذا في وقت فراغه.

على الرغم من أننا نود الخوض في جذور الكاراتيه المثيرة ، في الوقت الحالي ، دعنا نتحدث عن أداة الكاراتيه التي تم تطويرها بواسطة Peter Thomas ، إحدى الأدوات العظيمة التي تنقذ مختبري API. يتبع إطار الكاراتيه

أسلوب الخيار في كتابة البرنامج الذي يتبع نهج BDD. من السهل فهم بناء الجملة من قبل غير المبرمجين. وهذا الإطار هو أداة اختبار API الوحيدة التي جمعت بين أتمتة API واختبار الأداء في أداة واحدة قائمة بذاتها.

يوفر للمستخدمين القدرة على تنفيذ حالات الاختبار بالتوازي وتنفيذ JSON & amp؛ عمليات فحص XML.

باستخدام هذه المعلومات ، يمكن استنتاج بعض النقاط الرئيسية لفهم أداة الكاراتيه بالتفصيل:

  • الكاراتيه هو إطار عمل اختبار BDD بدلاً من ذلك من TDD.
  • إنه مصمم ليكون سهلًا لغير المبرمجين. هذه الميزة تغير قواعد اللعبة لأنها تتيح المزيد من الاستخدام والوصول من قبل العديد من الأشخاص بغض النظر عن خلفيتهم التقنية أو قدرتهم.
  • تستخدم ملف ميزة Cucumber ولغة Gherkins لكتابة الاختبار وهو من السهل جدًا فهمها.

كل هذه الميزات تجعلها واحدة من أفضل أدوات الأتمتة المتاحة اليوم.

History Of Karate Framework

تم إنشاؤه بواسطة ' Peter Thomas ' في عام 2017 ، يهدف هذا البرنامج إلى إجراء الاختباروظائف متاحة بسهولة للجميع. تمت كتابته بلغة Java وكان معظم الناس يتوقعون أن تكون ملفاته أيضًا بنفس اللغة ، ولكن لحسن الحظ لم يكن الأمر كذلك. إطار الخيار. يعد برنامج التشغيل الآلي امتدادًا لـ Cucumber ، وبالتالي يرث استخدام ملف Gherkins في تشغيله. الاختلاف الكبير بين الاثنين هو أن الكاراتيه لا تستخدم Java أثناء الاختبار ، ولكن الخيار يستخدمها.

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

فيما يلي بعض ميزات إطار اختبار الكاراتيه:

  • يستخدم لغة Gherkins سهلة الفهم.
  • لا يتطلب معرفة البرمجة التقنية مثل Java.
  • يعتمد على معايير Cucumber الشائعة.
  • من السهل إنشاء إطار عمل.
  • الاختبار الموازي هو الوظيفة الأساسية التي يوفرها الكاراتيه نفسه ، وبالتالي لا نحتاج إلى الاعتماد على Maven ، Gradle ، إلخ.
  • واجهة المستخدم لتصحيح أخطاء الاختبار.
  • استدعاء ملف ميزة من ملف آخر.
  • يوفر دعمًا لاختبار برنامج تشغيل البيانات الذي تم إنشاؤه داخليًا ، وبالتالي لا داعي للاعتماد على أطر خارجية.
  • راحة أصلية مدمجةالتقارير. بالإضافة إلى ذلك ، يمكن دمجه مع Cucumber للحصول على تقارير أفضل لواجهة المستخدم ومزيد من الوضوح.
  • يوفر دعمًا داخليًا لتبديل التكوين عبر بيئات الاختبار المختلفة (QA ، و Stage ، و Prod ، و Pre-Prod).
  • دعم سلس لتكامل CI / CD الذي يمكن أن يكون مفيدًا.
  • قادر على التعامل مع مكالمات HTTP المتنوعة:
    • دعم مقبس الويب
    • طلب SOAP
    • HTTP
    • معالجة ملف تعريف ارتباط المتصفح
    • HTTPS
    • بيانات نموذج HTML
    • طلب XML

مقارنة الكاراتيه مقابل الراحة المطمئنة

اطمئن : إنها مكتبة قائمة على Java لاختبار خدمات REST. يستخدم لغة جافا لكتابة سطور التعليمات البرمجية. يساعد في اختبار العديد من فئات الطلبات ، مما يؤدي إلى مزيد من التحقق من مجموعات منطق الأعمال المختلفة. خدمات REST.

يسرد الجدول التالي بعض الاختلافات الأكثر بروزًا بين Rest-Assured & amp؛ amp؛ إطار الكاراتيه:

S.No Basis هيكل الكاراتيه REST-Assured
1 اللغة يستخدم مزيجًا من الخيار والخيار يستخدم لغة Java
2 ​​ حجم الكود عادةً ما يكون سطر الكود أقل ، لأنه يتبع بنية تشبه الخيار سطر الكود أكثر لأنه يتضمناستخدام لغة Java
3 المعرفة الفنية المطلوبة يمكن لغير المبرمجين الكتابة بسهولة كود Gherkins المعرفة التقنية مطلوبة لكتابة كود Java
4 الاختبار المستند إلى البيانات تحتاج إلى الاستفادة من TestNG أو ما يعادله لدعم نفس يمكن استخدام العلامات الداخلية لدعم اختبار البيانات
5 هل يوفر دعم مكالمات SOAP نعم ، إنه يوفر يتعلق فقط بطلب REST
6 الاختبار الموازي نعم ، الاختبار الموازي مدعوم بسهولة من خلال إنشاء التقرير الموازي أيضًا ليس إلى حد كبير. على الرغم من أن الأشخاص حاولوا القيام بذلك ، فإن معدل الفشل أكبر من معدل النجاح
7 الإبلاغ يوفر تقارير داخلية ، وبالتالي لا يحتاج إلى الاعتماد على المكونات الإضافية الخارجية. يمكننا حتى دمجها مع البرنامج المساعد لإعداد التقارير Cucumber لتحسين واجهة المستخدم. يجب أن تعتمد على المكونات الإضافية الخارجية مثل Junit و TestNG
8 دعم CSV للبيانات الخارجية نعم ، من Karate 0.9.0 لا ، يجب استخدام كود Java أو مكتبة
9 أتمتة واجهة مستخدم الويب نعم ، من Karate 0.9.5 Web-UI Automation ممكن لا ، إنه غير مدعوم
10 نموذج GET Given param val1 = ‘name1’

And param val2 = ‘name2’

And path ‘somelocation’

When method get

Then match response contains ‘OKAY’

given().

param("val1", "name1").

param("val2", "name2").

when().

get("/some\location").

then().

body(containsString("OKAY"));

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

الأدوات المطلوبة للعمل مع إطار الكاراتيه

الآن ، نظرًا لأننا حصلنا على معرفتنا الأساسية حول إطار عمل الكاراتيه ، دعونا نلقي نظرة على العمليات والأدوات المطلوبة في إعداد بيئة الكاراتيه.

# 1) Eclipse

Eclipse هو بيئة تطوير متكاملة مستخدمة في مجال برمجة الحاسوب. يستخدم في الغالب لبرمجة جافا. كما ذكرنا سابقًا ، فإن الكاراتيه مكتوبة بلغة جافا ، لذلك فمن المنطقي أكثر أن يكون Eclipse هو بيئة تطوير متكاملة (go-to) لبرنامج اختبار API. سبب آخر هو أنها أداة مفتوحة المصدر ، وهذا سبب قوي جدًا لاختيار هذه الأداة.

ملاحظة: يمكننا حتى استخدام IntelliJ و Visual Studio وغيرهما المحررين المتاحة في السوق.

# 2) Maven

هذه أداة أتمتة للبناء تستخدم بشكل أساسي لبناء مشاريع Java. إنها إحدى طرق إعداد بيئة الكاراتيه وكتابة الكود. لإعداد Eclipse الخاص بك مع متطلبات Maven ، يمكنك النقر هنا لتثبيت Maven.

أثناء العمل في Maven ، استخدم تبعيات Maven التي من شأنها أن تساعدك في دعم Karate Framework.

ما يلي سيتم استخدام التبعيات مع Maven في pom.xml.

   com.intuit.karate karate-apache 0.9.5 test   com.intuit.karate karate-junit4 0.9.5 test  

ملاحظة: أحدث الإصدارات قدتكون متاحة في مستودع Maven.

# 3) Gradle

Gradle هو بديل لـ Maven ويمكن استخدامه بسعة متساوية. لديهم أوجه التشابه والاختلاف بينهما ولكن يمكن استخدامها بشكل متساوٍ في إعداد بيئة لرموز الكاراتيه الخاصة بنا. مجموعة من المكونات الإضافية. قد يبدو رمز إعداد Gradle مثل هذا ،

testCompile 'com.intuit.karate:karate-junit4:0.6.0' testCompile 'com.intuit.karate:karate-apache:0.6.0'

ملاحظة: يمكنك إما استخدام MAVEN أو GRADLE.

# 4) إعداد بيئة Java في نظامك

تحتاج إلى إعداد بيئة JDK و JRE للبدء في البرامج النصية لـ Karate Framework.

هيكل نص اختبار الكاراتيه

يُعرف نص اختبار الكاراتيه بامتلاكه الامتداد ".feature". هذه الخاصية موروثة من الخيار. يُسمح أيضًا بتنظيم الملفات في اصطلاح Java. أنت حر في تنظيم ملفاتك وفقًا لاتفاقيات حزمة Java.

ومع ذلك ، فإن إرشادات Maven ترشدك إلى أن يتم تخزين الملفات بخلاف Java بشكل منفصل. يتم إجراؤها في بنية src / test / resources . ويتم الاحتفاظ بملفات Java تحت src / main / java .

ولكن وفقًا لمنشئي إطار الكاراتيه ، فإنهم يعتقدون بشدة أننا نحتفظ بكل من ملفات Java وغير Java جنبًا إلى جنب جانب. وفقًا لهم ، من الأسهل بكثير البحث عن ملف* ملفات .java و * .feature عندما يتم الاحتفاظ بها معًا ، بدلاً من اتباع بنية Maven القياسية.

يمكن القيام بذلك بسهولة عن طريق تعديل ملف pom.xml على النحو التالي (لـ Maven):

    src/test/java  **/*.java     ...   

فيما يلي مخطط الهيكل العام لإطار الكاراتيه:

الآن ، نظرًا لأن إطار الكاراتيه هذا يستخدم ملف Runner ، وهو مطلوب أيضًا في Cucumber لتشغيل ملفات الميزات ، لذا فإن معظم الكتابة ستتبع معايير Cucumber.

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

يُطلق على فئة "Runner" في معظم الأحيان اسم TestRunner.java.

ثم يأخذ ملف TestRunner.java شكل:

 import com.intuit.karate.junit4.Karate; import org.junit.runner.RunWith; @RunWith(Karate.class) public class TestRunner { }

وبالحديث عن ملف . الميزة ، فهو يحتوي على جميع الاختبارات السيناريوهات التي يجب اختبارها للتأكد من أن واجهة برمجة التطبيقات تعمل وفقًا للمتطلبات المتوقعة.

يبدو ملف الميزة * العام كما هو موضح أدناه:

 Feature: fetching User Details Scenario: testing the get call for User Details Given url '//reqres.in/api/users/2' When method GET Then status 200

إنشاء البرنامج النصي الأول لاختبار الكاراتيه الأساسي

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

قبل أن نكتب البرامج النصية الأساسية لاختبار الكاراتيه ،يرجى تثبيت المتطلبات التالية على جهازك:

  • Eclipse IDE
  • Maven. تعيين مسار المخضرم المناسب.
  • JDK & amp؛ JRE. حدد المسار المناسب.

دعونا نلقي نظرة على النهج خطوة بخطوة:

# 1) إنشاء جديد MAVEN مشروع في محرر Eclipse

  • افتح Eclipse
  • انقر فوق ملف. حدد مشروع جديد.

  • حدد Maven Project

  • اختر موقع مساحة العمل.
  • حدد النموذج الأصلي (عادةً ما نختار " Maven-archetype-quickstart 1.1 " لمشاريع Maven البسيطة).
  • توفير معرف المجموعة وأمبير. معرف القطعة الأثرية (استخدمنا القيم التالية في مثالنا).
    • معرف المجموعة : الكاراتيه
    • معرف القطعة الأثرية: KarateTestScriptsSample
  • انقر فوق إنهاء لإكمال الإعداد.

# 2) بمجرد الإنشاء ، ستتمكن الآن من رؤية الهيكل التالي في نافذة Project Explorer.

# 3) قم بتضمين جميع التبعيات الخاصة بك.

خطوتنا الأولى ، بعد الإعداد ، سنقوم بتضمين جميع التبعيات التي ستكون مطلوبة للإعدام. سنحتفظ بكل العلامة تحت POM.xml (على افتراض أنك على علم بالفعل باستخدام POM.xml).

  • افتح POM.xml وانسخ الكود أدناه تحت علامة التبعية واحفظ file.
  com.intuit.karate karate-apache 0.9.5 test   com.intuit.karate karate-junit4 0.9.5 test 

انقر هنا للحصول على المصدر.

# 4) لنفكر في السيناريو ، ما الذي سنختبره فيه

التمرير إلى الأعلى