اختبار واجهات برمجة التطبيقات باستخدام Postman و Excel

مرحباً بالجميع ، أنا رئيس قسم الاختبار ، وقد ظهرت مؤخرًا مهمة لاختبار واجهة برمجة التطبيقات. لحلها ، أتقنت أداة Postman و JavaScript الجديدة بالنسبة لي.

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

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

ماذا كان


1. JSON مع البيانات


سابقا ، تم تخزين مجموعة الاختبار في هذا النموذج

2. 2. تم تخزين تسلسل تنفيذ الاستعلام مع معالجات JS في مجموعات Postman.



ما أصبح


1. انتقل جناح الاختبار إلى Excel



يتم إدخال جميع البيانات في Excel (أحرف مفتاح التحكم: R ، H ، I ، إلخ. سأكتب أدناه) ، وبعد ذلك ، باستخدام ماكرو ، يتم نقلها إلى تنسيق json:



2. في ساعي البريد



تم إجراء التجربة على مجموعة قياسية من عمليات CRUD ، والتي يمكن توسيعها أكثر.

نظرًا لأن جميع العمليات في Postman لا تنفذ إلا في إطار الطلب ، فقد اضطررت إلى إدخال طلب get فارغًا في النهاية يتم تحديد الطلب التالي من التسلسل. قم بتشغيل JS code قبل الطلب وحدد الطلب الأول بدون فشل فارغ.

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



في جميع الطلبات ، من المهم الانتباه إلى عنوان url وقسم النص الأساسي في طلبات POST و PUT ، حيث يتم تحديد قيمها بواسطة المتغيرات التي يتم إدخال قيمها من JSON مع البيانات.



الآن عن الاختبارات نفسها




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

كيفية بدء جيلسون جيل من اكسل . في Excel ، اضغط F11 وانتقل إلى "EtaBook" ، هناك قم بتشغيل الماكرو.

كلمات


R - request ، يعني بداية طلب جديد ، في الخلية الثانية من السطر ، يتم تخزين نوع الطلب ، في الثالث هو العنوان الذي تحتاج إلى الاتصال به. يرجى ملاحظة أنه في url يمكنك تحديد متغيرات Postman


سيتم سحب القيمة من المتغير

ح - بيانات التحقق في الرأس ، وحتى الآن تم إدخال رمز الاستجابة فقط ، يتحقق ساعي البريد فقط من ساعي البريد. من المهم أن يكون الاسم في Excel هو نفس "رمز الاستجابة" ، أو يتم تصحيحه في Postman



I ، I2 ... - يدعم قسم بيانات الإدخال تخزين نماذج البيانات من أي تداخل ، والرقم الموجود على يمين I مسؤول عن مستوى التداخل. يتم التفاف مجموعة البيانات التالية في JSON مثل هذا. إذا كان المتغير الذي يخزن البيانات فارغًا ، فلن تتم إضافته. أي إذا لم تكن هناك قيمة في المتغير inn ، فلن تتم إضافتها ، وسيتم إضافة المتغير الرئيسي ، لأنه يخزن النموذج. علاوة على ذلك ، إذا كان النموذج بأكمله فارغًا ، فلن تتم إضافته أيضًا.


سيتم تقديم البيانات في هذا القسم في هيئة الطلب.



O ، O2 ... - قسم من معلمات الإخراج ، سيتم مقارنتها مع تلك التي تم إرجاعها عن طريق الاستجابة. مثل قسم الإدخال ، يدعم تخزين النماذج.


عند المقارنة ، يتم تحويل البيانات إلى سلسلة ، كما أنني حددت مستوى العودية بالإضافة إلى ذلك ، يمكن إزالتها

PO - مخرجات Postman ، سيتم أخذ القيم من هذا القسم من نص الاستجابة للطلب باسم المتغير وكتابتها إلى متغير Postman.


في Excel ، يكفي وضع أي حرف ، يتم كتابة القيمة من الاستجابة ، وليس التفوق ، على المتغير


هذا القسم ضروري لتخزين البيانات بين البرامج النصية ، على سبيل المثال ، لحذف كائن ذي معرف تم إنشاؤه في الطلب السابق

أمر PC - Postman ، تم تقديم أمر "إنهاء" واحد فقط ، ويتم استخدامه لفرض الإنهاء بعد تنفيذ الطلب الحالي. مفيد للاختبار السلبي ، حتى لا يسبب خطوة لحذف الكائن الذي تم إنشاؤه.


يسمح إدخال هذا الأمر بتخزين الاختبارات الإيجابية والسلبية على ورقة واحدة



PI - Postman Input ، سيتم كتابة القيم من هذا القسم إلى متغيرات Postman قبل تعريف url


يمكن أن يكون مفيدًا إذا كنت بحاجة إلى تجاوز المتغيرات المحددة في عنوان url للطلب.

بالمناسبة ، يمكنك استخدام البيانات من متغيرات Postman في البيانات المقدمة ، لذلك تحتاج إلى استخدام تصميم خاص



في الحالة 1 ، أدخلنا القيمة التي تم الحصول عليها في متغير ، وفي الحالة 2 استخدمناها. يمكن استخدامه ليس فقط في الحالة التالية ، ولكن أيضًا في الحالة الحالية بناءً على الطلب التالي. على سبيل المثال ، قد يكون ضروريًا إذا كان تعريف الكائن للتغيير لا يتبع عنوان url ، ولكن وفقًا لقيمة المتغير في الطلب.

التحضير للجري


والآن ، قم بتشغيل ، تشغيل عداء Postman ، حدد المجموعة المطلوبة فيه وتحميل الملف مع بيانات الاختبار:



سوف نخدم المجموعة التالية:



يوصف هنا 15 اختبارًا ، مع كون الخطوات 1-11 و 13 و 15 إيجابية مع نتيجة 200 مع طلب POST والخطوات 12 و 14 سلبية مع نتيجة 400. لن يتم إدخال المعلومات في قاعدة البيانات وبالتالي فإن قسم الإخراج فارغ ، ويتم الإشارة إلى الأمر إنهاء. سيوقف هذا الأمر تنفيذ التسلسل ولن يتم إرسال طلب حذف "حذف".

بعد الحالات 1-11 و 13 و 15 ، نتذكر المعرّف الذي تم تعيينه للكائن الجديد ، ثم لحذفه.

نطلق



كل الاختبارات الـ 15 كانت ناجحة ، تُظهر الصورة الاختبار 14 ، والذي لا يتم فيه حذف الحذف بعد POST

في الاختبارات 1-11 ، 13 ، 15 بعد POST ، يسمى حذف الكائن الذي تم إنشاؤه:



ملخص


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

مراجع


  1. مستودع جيثب ، هناك إكسل ومجموعة ساعي البريد
  2. في التطوير ، تم استخدام أداة VBA-JSON من تأليف تيم هول.


تحديث من 10/15/2019

1. قم بتحسين القدرة على إنشاء ملفات json دون تشغيل excel ، ضعها في بوابة GenerateAll.cmd ، التي تدير البرنامج النصي vb GenerateJsonFiles.vbs. سينتقل البرنامج النصي الذي تم الاتصال به عبر المجلد الحالي وجميع المجلدات الفرعية ويقوم بإنشاء ملفات json
2. قم بتشغيل RunAll.cmd لتشغيل جميع ملفات بيانات json التي تم إنشاؤها ، وكذلك المجلد الحالي وجميع المجلدات الفرعية سوف تمر. بجانب كل واحد منهم سوف يضع الإخراج - report.log مع نتائج التشغيل.

الآن الشد إلى CI لا ينبغي أن يكون مشكلة. يمكنك أيضًا ربط إنشاء json للحصول على نشر ومقارنة البيانات في التفوق للتغييرات في ملفات json.

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


All Articles