إنشاء روبوت (RPA) باستخدام أدوات الاختبار التلقائي

المؤلفون: Lebedev A. ، Nazarova E.

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

تقليديا ، يتم بناء الروبوتات أو RPA (أتمتة العمليات الروبوتية) على أساس أطر جاهزة. هنا ، القادة ، في رأينا ، منتجات من UiPath ، Automation Anywhere ، Blue Prism ، NICE. هذه منصات مثبتة تسمح لك باتخاذ قرارات الجودة. ومع ذلك ، ليست رخيصة. تحتاج إلى الدفع للحصول على التراخيص في عدد الوظائف المستقبلية ، والدفع مقابل التخصيص لمهمتك الخاصة والتكليف. في بعض الحالات ، يمكنك الحصول على أرخص. تمكنا من ذلك ، ونحن مستعدون لتبادل الخبرات.

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

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

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

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

تم استخدام مجموعة الأدوات التقليدية والمجانية: Java للتطوير والتجميع من خلال Maven. للعمل مع المتصفح ، تم استخدام Selenium (يحتوي التطبيق حيث كان مطلوبًا لإدخال البيانات على واجهة ويب).

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

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

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

تم تنظيم عمل الروبوت على النحو التالي: يتم وضع ملف يحتوي على بيانات لإدخال النظام في مجلد الإدخال على مورد شبكة ويتم إطلاق الروبوت من خلال Jenkins ؛ يقارن سجلات ملف الإدخال حسب حقل المفتاح مع ملف الخدمة ، حيث يتم تخزين جميع السجلات التي تمت معالجتها بالفعل ، ويحدد فقط تلك التي لم تتم معالجتها بعد. بعد ذلك ، تتم معالجة مجموعة السجلات في حلقة. علاوة على ذلك ، في كل خطوة من خطوات المعالجة في كل سجل ، تتم معالجة الاستثناءات والأخطاء (جرب ... الالتقاط) وتتم ملاحظة "قطرات" العملية في الملف الناتج. في الوقت نفسه ، لا تتوقف معالجة مجموعة الإدخال ، ننتقل فقط إلى السجل التالي. ونتيجة لذلك ، عند اكتمال معالجة المصفوفة بالكامل ، يتم حذف ملف الإدخال ، وفي الإخراج ، توجد جميع السجلات التي تمت معالجتها مع النتيجة ووقت التشغيل. يتم عرض تقرير Allure كمعلومات حول المعالجة لكل سجل ،وقائمة عامة بنتائج المعالجة لكل سجل. وهذا يجعل من السهل تقييم النتيجة وتوطين المشاكل ، إن وجدت.

صورة

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

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

هذا أمر مثير للدهشة ، ولكن خلال الأشهر التسعة من التشغيل ، كانت المشاكل فقط بسبب بيانات الإدخال غير الصحيحة. نشأت مشاكل فنية فقط في مرحلة التكليف وارتبطت بتنسيق الترميزات في السجل وتوسيع الذاكرة المستخدمة عند بدء تشغيل خادم Selenium (تم تسليم 1G).

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

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

All Articles