كيفية استخدام الدوال في QTP/UFT في 3 خطوات سهلة

⚡ ملخص ذكي

وظائف في QTP/UFT يتيح ذلك للمختبرين تجميع منطق VBScript القابل لإعادة الاستخدام داخل ملفات مكتبة يمكن لأي اختبار استدعاؤها، مما يقلل من التكرار، ويسهل الصيانة، ويسرع تطوير الأتمتة عبر UFT و QTP المشاريع.

  • 📚 فريف: مكتبة الدوال هي ملف بصيغة .qfl أو .vbs يحتوي على دوال VBScript قابلة لإعادة الاستخدام. UFT يمكن للاختبار الاتصال.
  • 🛠️ خلق: قم بإنشاء مكتبة من خلال File > New > Function Library واكتب كتل VBScript Function…End Function القياسية بداخلها.
  • 🔗 جمعية: قم بإرفاق المكتبة عبر ملف > الإعدادات > الموارد > ربط مكتبة الوظائف لعرض وظائفها للاختبار.
  • ▶ ️ الدعوة: استدعاء دالة مكتبة بواسطة typing اسمها مع الوسائط داخل نص الاختبار، تمامًا مثل وظيفة مدمجة UFT بيان.
  • 🗂️ تنسيقات الملفات: اختر .qfl للملف الأصلي UFT محرر أو ملف .vbs لملف نص عادي يمكن قراءته في أي مكان، بما في ذلك التحكم في الإصدار.
  • ⚙️ التحميل أثناء التشغيل: استخدم LoadFunctionLibrary أو ExecuteFile لإرفاق مكتبة برمجيًا بدلاً من مربع حوار الموارد.
  • 🧭 تخصص التسمية: أعطِ كل دالة اسمًا فريدًا في جميع المكتبات المرتبطة بها، لأن UFT ينفذ التعريف الذي تم تحميله آخر مرة عند تعارض الأسماء.
  • 📊 التقرير: استبدال الرسالةBox يتم استدعاء Reporter.ReportEvent بحيث تظهر حالات النجاح والفشل والتحذير مباشرة داخل UFT شجرة النتائج.

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

مكتبات الوظائف الخاصة بك في Micro Focus UFT يمكن أن تحتوي فبسكريبت الوظائف والإجراءات الفرعية والوحدات النمطية وما إلى ذلك.

ما عليك سوى اتباع 3 خطوات بسيطة لاستخدام دالة من مكتبة في اختبارك.

تختلف مكتبة الوظائف عن عمل in UFT: الدالة ليس لها مستودع كائنات أو ورقة بيانات خاصة بها، ومع ذلك يمكن لأي إجراء أو اختبار استدعاؤها بمجرد ربط المكتبة بها.

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

ثلاث خطوات بسيطة لاستخدام دالة من مكتبة في UFT/QTP

الخطوة 1) أنشئ مكتبة وظائف جديدة في UFT or QTP عن طريق تحديد ملف > جديد > مكتبة الدوال. سيتم فتحها كعلامة تبويب جديدة في QTP.

لنقم بإنشاء دالة بسيطة للغاية تعرض مربع رسالة.

Function Demo

MsgBox "This is a Test Function"

End Function

عند استدعاء هذه الدالة، يظهر مربع رسالة. يمكن لملف واحد أن يحتوي على عدة دوال، لذا احفظ الملف مرة واحدة وأعد استخدامه في العديد من الاختبارات. UFT يحفظ مكتبة وظائف مع .qfl إضافة افتراضية، على الرغم من أنها عادية .vbs يعمل الملف أيضًا، كما يشرح القسم التالي.

الخطوة 2) اربط المكتبة باختبارك. افتح ملف > الإعدادات > الموارد > ربط مكتبة الوظائف، ثم انقر فوق إضافةحدد ملف مكتبة الوظائف، ثم انقر OK.

الخطوة 3) الخطوة الأخيرة هي استدعاء الدالة داخل نص الاختبار. بمجرد ربط المكتبة، يصبح استدعاء الدالة بسيطًا للغاية.ping اسمها وتمرير أي وسائط مطلوبة، كما هو موضح أدناه.

' Call the function from the associated library
Demo()

UFT يحدد عرض تقديمي في المكتبة المرتبطة، ويتم تشغيلها تمامًا كما لو كانت مكتوبة محليًا داخل الاختبار.

ملاحظات هامة

  • باستخدام كائنات COM وDCOM، يمكنك إنشاء وظائف متقدمة للغاية
  • في الواقع، العديد من الميزات التي يوفرها QTP يمكن برمجتها باستخدام VBScript
  • لقد رأينا مهندسي الأتمتة الذين جعلوا الأمر أقرب إلى مشروع VB بدلاً من مشروع الأتمتة
  • توصيتنا هي التركيز على الأتمتة بنسبة 100% بدلاً من التباهي بمهاراتك في لغة البرمجة VB

انقر اضغط هنا إذا لم يكن من الممكن الوصول إلى الفيديو

أنواع ملفات مكتبة الوظائف: .qfl مقابل .vbs

UFT لا يُلزمك بتنسيق ملف واحد لمكتبة الدوال. يحفظ محرر مكتبة الدوال الملفات الجديدة بتنسيق واحد. .qfl الامتداد افتراضيًا، و UFT يقبل أيضًا نصًا عاديًا .vbs يتم إنشاء الملف في أي محرر أكواد، لأن... QTP/UFT مكتبة الوظائف ليست سوى VBScript عادي مخزن على القرص؛ يتصرف كلا التنسيقين بشكل متطابق في وقت التشغيل.

ASPECT ملف بصيغة QFL ملف VBS
تم إنشاؤها باستخدام UFT محرر مكتبة الوظائف أي محرر نصوص أو محرر أكواد
يفتح من الخارج UFT لا نعم، كنص عادي
سهولة استخدام نظام التحكم في الإصدارات محدود أفضل، لأن الفروقات قابلة للقراءة
طريقة الارتباط وينطبق الأمر نفسه على كليهما وينطبق الأمر نفسه على كليهما

يعتمد الاختيار في الغالب على سير عمل الفريق أكثر من اعتماده على الوظائف. مكتبة فريدة تم إنشاؤها بسرعة داخل UFT يعمل بشكل جيد كما .qflبينما تُحفظ المكتبات التي يتم صيانتها في Git أو SVN أو أي نظام آخر للتحكم في الإصدارات عادةً على النحو التالي: .vbs تُفضّل الملفات النصية العادية لأنها تُنتج فروقًا أكثر وضوحًا أثناء مراجعة التعليمات البرمجية. يدعم كلا التنسيقين مجموعة ميزات VBScript الكاملة، بما في ذلك الفئات ومعالجة الأخطاء وإنشاء كائنات COM، ويرتبط كلاهما بالاختبار بنفس الطريقة تمامًا، كما هو موضح في القسم التالي.

لا يؤدي تغيير امتداد الملف إلى تغيير محتواه، لذا فإن تحويل ملف موجود .qfl ملف ل .vbsأو العكس، هو مجرد إعادة تسمية ملف متبوعة بإعادة ربط الملف الذي تمت إعادة تسميته بالاختبار.

طرق ربط مكتبة وظائف باختبار

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

  1. مربع حوار ربط مكتبة الوظائف (واجهة المستخدم الرسومية): افتح ملف > الإعدادات > الموارد > ربط مكتبة الوظائف، انقر فوق إضافة، وحدد الملف. UFT يخزن هذا الارتباط داخل الاختبار نفسه، بحيث يتم تحميل المكتبة تلقائيًا في كل مرة يُفتح فيها الاختبار. هذه هي الطريقة الموضحة في الخطوة 2 أعلاه، وهي تُعدّ خيارًا افتراضيًا مناسبًا لأي مكتبة يحتاجها كل اختبار في المشروع.
  2. عبارة LoadFunctionLibrary: قم باستدعاء LoadFunctionLibrary "path" من داخل البرنامج النصي لإرفاق مكتبة في وقت التشغيل دون لمس مربع حوار الموارد. UFT يتعامل مع المكتبة تمامًا مثل ارتباط قائم على الحوار لبقية هذا التشغيل، وهو أمر ملائم عندما يتم تحديد مسار المكتبة ديناميكيًا.
  3. عبارة ExecuteFile: يقوم الأمر ExecuteFile "path" بتشغيل ملف نصي وعرض وظائفه للتشغيل الحالي، ولكن UFT لا يتم تسجيل الملف كـ tracمورد ked، لذلك لا يظهر أبدًا ضمن مكتبات الوظائف المرتبطة في إعدادات الاختبار.
  4. نموذج كائنات الأتمتة (AOM): يمكن تشغيل ملف VBScript خارجي UFTافتح اختبارًا، وأضف مكتبة إلى Test.Settings.Resources.Libraries برمجيًا. تستخدم نصوص البناء أو النشر عادةً هذا الأسلوب لتكوين نفس المكتبة عبر عشرات الاختبارات في عملية واحدة.
' Load a library at run time from inside a script
LoadFunctionLibrary "C:\Automation\CommonFunctions.qfl"

' ExecuteFile works the same way, but UFT does not
' track the file as an associated resource
ExecuteFile "C:\Automation\CommonFunctions.qfl"

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

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

أفضل الممارسات للكتابة UFT/QTP مكتبات الوظائف

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

  • استخدم الخيار الصريح: أضفها كأول سطر في كل مكتبة حتى UFT يقوم بتحديد متغير به خطأ إملائي بدلاً من إنشاء متغير جديد بصمت.
  • حافظ على أسماء الدوال فريدة: إذا قامت مكتبتان مرتبطتان بتعريف دالة بنفس الاسم، UFT يتم استدعاء الملف الذي تم تحميله أخيرًا، لذا فإن الأسماء المكررة تسبب أخطاءً صامتة يصعب تتبعها.tracوالأخطاء.
  • إرجاع القيم بدلاً من ترميزها بشكل ثابت: تقبل هذه الدالة المعاملات وتعيد نتيجة، كما في المثال أدناه، بحيث تخدم نفس الدالة اختبارات متعددة بدلاً من اختبار واحد.
  • تجنب الرسائلBox في نصوص الإنتاج: يُوقف مربع الرسالة التنفيذ مؤقتًا حتى ينقر المستخدم على "موافق". استخدم Reporter.ReportEvent بدلاً من ذلك، يتم تسجيل حالات النجاح والفشل والتحذير مباشرةً في شجرة النتائج دون توقف.ping الجري.
  • التصنيف حسب المجال، وليس حسب سهولة الوصول: احتفظ بوظائف تسجيل الدخول ووظائف قاعدة البيانات ووظائف مساعدة واجهة المستخدم في ملفات منفصلة حتى يتمكن أي اختبار من ربط ما يحتاجه فقط.
  • حافظ على المكتبات تحت نظام التحكم في الإصدارات: قم بتخزين ملفات مكتبة الوظائف في نفس المستودع الخاص ببقية مشروع الأتمتة، بحيث يؤدي التراجع عن المشروع إلى استعادة أي وظيفة مشتركة.
Function AddNumbers(ByVal num1, ByVal num2)
    AddNumbers = num1 + num2
End Function

Dim result
result = AddNumbers(10, 20)
Reporter.ReportEvent micPass, "Sum Calculation", "The result is " & result

إن تطبيق هذه العادات مبكراً لا يكلف الكثير، لكن تعديلها لاحقاً لتناسب مكتبة كبيرة وغير مُدارة يكلف أكثر بكثير.

الأسئلة الشائعة

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

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

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

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

يمكن لأدوات الذكاء الاصطناعي ترجمة منطق VBScript إلى لغات مثل Python or Java كمسودة أولية، ولكن يجب على مهندس ضمان الجودة التحقق من تحديد الكائن ومنطق العمل، لأن الترجمة الآلية نادراً ما تحافظ على كليهما بشكل مثالي.

تلخيص هذه التدوينة بـ: