كيف تعمل عملية تحديد الكائنات في QTP/UFT?

⚡ ملخص ذكي

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

  • 🎯 نموذج كائن الاختبار: UFT يقارن كائن الاختبار المخزن بكائن وقت التشغيل المباشر في كل خطوة لتحديد عناصر التحكم بغض النظر عن موضع الشاشة.
  • 🗂️ الخصائص الإلزامية: UFT يسجل دائمًا مجموعة افتراضية من الخصائص لكل فئة كائن داخل مستودع الكائنات.
  • 🧩 الخصائص المساعدة: UFT يضيف خصائص النسخ الاحتياطي واحدة تلو الأخرى فقط عندما لا تستطيع المجموعة الإلزامية وحدها إنشاء وصف فريد.
  • ⚙️ مربع حوار تحديد الكائن: تتيح الأدوات > تحديد الكائنات للمختبرين إضافة أو إزالة أو إعادة ترتيب الخصائص لكل بيئة وفئة كائن.
  • 🇧🇷 كائن تجسس: مرر مؤشر الماوس فوق أي عنصر تحكم لفحص خصائص كائن الاختبار وخصائص وقت التشغيل قبل تحديد أي منها يجب الاعتماد عليه.
  • 🔢 المعرفات الترتيبية: يقوم كل من الفهرس والموقع ووقت الإنشاء بحل حالات التعادل بين الكائنات التي تظل متطابقة بعد كل فحص للخاصية.
  • 🧠 التعريف الذكي: تعمل آلية التراجع هذه قبل المعرفات الترتيبية وغالبًا ما تستعيد كائنًا تعطل وصفه المتعلم.

ما هو تعريف الكائن في UFT/QTP?

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

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

مستودع الكائنات والإضافات

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

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

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

مستودع الكائن

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

هدف Descriptالأيون: الخصائص الإلزامية والمساعدة

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

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

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

تُسهّل صورة الويب رؤية القاعدة عمليًا.

هدف Descriptأيون، الخصائص الإلزامية والمساعدة

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

يشرح الفيديو أدناه سير العمل الإلزامي مقابل سير العمل المساعد من البداية إلى النهاية.

مربع حوار تحديد الكائن Box والتجسس على الأشياء

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

  1. ساعات العمل UFT وانتقل إلى الأدوات > تحديد الكائنات.
  2. اختر بيئة (الويب، Windows, Javaوهكذا) من القائمة المنسدلة.
  3. حدد فئة كائن، مثل WebButton أو WinEdit، من القائمة الموجودة على اليسار.
  4. انقل الخصائص بين قائمتي "إلزامي" و"مساعد"، أو أعد ترتيب قائمة "مساعد" للتحكم في الخاصية المطلوبة. UFT يحاول أولاً.
  5. قم بتمكين أو تعطيل خاصية التعرف الذكي لتلك الفئة باستخدام خانة الاختيار الموجودة أعلى اللوحة.

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

استخدام أداة فحص الكائنات لفحص الخصائص

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

المعرفات الترتيبية: الفهرس والموقع ووقت الإنشاء

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

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

UFT لا يتم تعلم مُعرّف ترتيبي إلا عندما لا تستطيع الخصائص الإلزامية والمساعدة التمييز بين كائنين، لأن القيمة نسبية وقد تتغير بتغير تخطيط الصفحة حتى وإن لم يتغير الكائن نفسه. يستخدم مقتطف VBScript أدناه الدالة Index للنقر على الرابط الثاني من رابطين يحملان الاسم نفسه.

Dim objBrowser, objPage
Set objBrowser = Browser("title:=Guru99 Bank")
Set objPage = objBrowser.Page("title:=Guru99 Bank")
' Index:=1 clicks the second Link named "Manage Order" (index starts at 0)
objPage.Link("name:=Manage Order", "index:=1").Click

تُعدّ قيمتا الفهرس والموقع خاصتين بفئة الكائن المذكورة في العبارة، لذا المؤشر:=3 في WebEdit، يتم البحث فقط بين كائنات WebEdit، بينما يتم احتساب نفس القيمة في WebElement العام عبر كل كائن ويب على الصفحة بغض النظر عن النوع.

أين يندرج نظام التعريف الذكي؟

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

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

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

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

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

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

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

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

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