المعرف الترتيبي في QTP/UFTمثال على تحديد الكائن
⚡ ملخص ذكي
المعرف الترتيبي في QTP/UFT هو العامل الحاسم في حالة التعادل UFT ينطبق هذا عندما لا تزال الخصائص الإلزامية والمساعدة تطابق أكثر من كائن واحد، باستخدام قيم Index أو Location أو CreationTime لاختيار كائن فريد واحد.

ما هو المعرف الترتيبي في QTP/UFT?
An المعرف الترتيبي هي خاصية عددية UFT (سابقا QTPيُضيف هذا الخيار وصفًا للكائن عندما لا تكفي الخصائص الإلزامية والمساعدة التي تم جمعها أثناء جلسة التسجيل لتحديد الكائن بشكل فريد. وبدلًا من الفشل، يعتمد البرنامج على عداد يُشير، في الواقع، إلى "أخذ الكائن الثالث من هذه الفئة".
يوجد نوع مُعرِّف ترتيبي افتراضي لكل فئة من فئات كائنات الاختبار. يختلف ترقيم WebEdit عن ترقيم WinButton، ويختلف ترقيم Browser أيضًا. يمكنك عرض أو تعديل المُعرِّف الترتيبي الافتراضي لأي فئة في نافذة تعريف الكائنات.
كما توضح لقطة الشاشة أعلاه، تقع قائمة المعرف الترتيبي المنسدلة في أسفل مربع حوار تعريف الكائن، أسفل قوائم الخصائص الإلزامية والمساعدة. هذا الموقع ليس مصادفة: فهو يعكس الترتيب الذي... UFT في الواقع، يتم التشاور مع المجموعات الثلاث.
توجد ثلاثة أنواع من المعرفات الترتيبية في UFT:
- على أساس الفهرس
- معتمد على الموقع
- وقت الابتكار
لماذا UFT لا يستخدم المعرفات الترتيبية إلا كملاذ أخير
تحديد هوية الأشياء في UFT تُنفَّذ العملية بشكل متسلسل. تُتعلَّم الخصائص الإلزامية أولاً. إذا لم تُنتج أي تطابق، تُضاف الخصائص المساعدة واحدة تلو الأخرى حتى يصبح الوصف فريدًا. فقط عندما تُستنفد المجموعتان UFT قم بإرفاق مُعرّف ترتيبي، وفي وقت التشغيل يتم استشارة آلية التعريف الذكي قبل الوثوق بالقيمة الترتيبية.
يرجع سبب هذا التصنيف إلى الاستقرار. وتصف الخصائص الإلزامية والمساعدة ماذا الكائن هو: اسمه، وعلامة HTML الخاصة به، ونوعه، وتسميته. أما المعرف الترتيبي فيصف فقط أين كان الجسم موجودًا في مكانه لحظة التسجيل. أي شيء يُغيّر الصفحة يُغيّر الرقم.
- يقوم المطور بإدراج حقل مخفي فوق الحقل الذي تقوم بأتمتته.
- يضيف الشعار الترويجي رابطين إضافيين إلى رأس الصفحة.
- يقوم التصميم المتجاوب بإعادة تدفق النموذج من عمودين إلى عمود واحد.
- يفتح المتصفح المنبثق في وقت أبكر مما كان عليه أثناء التسجيل.
لا تُخلّ أيٌّ من هذه التغييرات بوصفٍ مبنيٍّ على اسمٍ أو مُعرِّف، ولكن كل تغييرٍ منها يُغيّر بصمتٍ جميع قيم الفهرس والموقع في الصفحة. لهذا السبب، يتعامل المهندسون ذوو الخبرة مع المُعرِّف الترتيبي كإشارةٍ إلى أن وصف الكائن يحتاج إلى تحسين، وليس كحلٍّ نهائي. وينطبق المبدأ نفسه على... اختبار الأتمتة الأطر بشكل عام، بما في ذلك استراتيجية تحديد المواقع في Selenium.
💡 نصيحة: قبل قبول مُعرّف ترتيبي، افتح الكائن في أداة فحص الكائنات وابحث عن سمة مخصصة ثابتة. غالبًا ما تُغني إضافة هذه السمة إلى قائمة الخصائص المساعدة للفئة عن الحاجة إلى مُعرّف ترتيبي في كل كائن لاحق من هذا النوع.
أنواع المعرفات الترتيبية في UFT/QTP
على أساس الفهرس
- عند استخدام مُعرِّف ترتيبي قائم على الفهرس، UFT يُسند قيمة إلى مؤشر خاصية الكائن أثناء التسجيل.
- تعتمد القيمة على ترتيب ظهور الكائن داخل الكود المصدري، وليس على الشاشة.
- أول ظهور له قيمة 0.
- تكون قيم خاصية الفهرس خاصة بالكائن، لذلك يتم حساب كل فئة من فئات كائنات الاختبار بشكل منفصل.
- لذلك، إذا استخدمتَ index:=3 لوصف كائن اختبار WebEdit، UFT يبحث عن عنصر WebEdit الرابع في الصفحة.
- وبالمثل، إذا استخدمت index:=1 لوصف كائن اختبار WebButton، UFT يبحث عن عنصر WebButton الثاني في الصفحة.
معتمد على الموقع
- عند استخدام مُعرِّف ترتيبي قائم على الموقع، UFT يُسند قيمة إلى موقع خاصية للكائن لتحديده بشكل فريد.
- تعتمد القيمة على الترتيب الذي يظهر به الكائن داخل النافذة أو الإطار أو مربع الحوار، فيما يتعلق بالكائنات الأخرى ذات الخصائص المتطابقة.
- أول ظهور للكائن هو 0.
- يتم تعيين القيم في أعمدة، من الأعلى إلى الأسفل ثم من اليسار إلى اليمين.
- الموقع هو المعرف الترتيبي الافتراضي لمعظم المعايير Windows اختبار فئات الكائنات، حيث يكون التخطيط المرئي أكثر استقرارًا من ترتيب الترميز.
وقت الابتكار
- عند استخدام المعرف الترتيبي لوقت الإنشاء، UFT يُسند قيمة إلى وقت الإنشاء خاصية لكائن المتصفح.
- هذا المعرف متاح فقط لبيئة الويب ولعناصر اختبار المتصفح فقط.
- تشير القيمة إلى ترتيب فتح المتصفح بالنسبة للمتصفحات المفتوحة الأخرى.
- يتلقى المتصفح الأول الذي يتم فتحه أثناء التشغيل وقت الإنشاء = 0، وتتلقى المتصفحات اللاحقة 1 و2 و3 وهكذا.
- إذا تم إغلاق متصفح، فإن المتصفحات المتبقية تحتفظ بقيمها الأصلية بدلاً من إعادة ترقيمها.
جدول مقارنة بين الفهرس والموقع ووقت الإنشاء
تجيب المعرفات الثلاثة على ثلاثة أسئلة مختلفة، ويُعد اختيار المعرف الخاطئ سببًا متكررًا للأعطال المتقطعة.
| البعد | فهرس | المدينة المنورة - بجوار المسجد النبوي | وقت الابتكار |
|---|---|---|---|
| اسم الخاصية | مؤشر | موقع | وقت الإنشاء |
| أساس الطلب | ترتيب الكود المصدري / التسلسل الهرمي للكائنات | موضع الشاشة داخل النافذة أو الإطار أو مربع الحوار | ترتيب فتح نوافذ المتصفح |
| قاعدة العد | بالتسلسل، لكل فئة كائن اختبار | الأعمدة، من الأعلى إلى الأسفل ثم من اليسار إلى اليمين | بشكل متسلسل، لكل مثيل متصفح |
| القيمة الأولى | 0 | 0 | 0 |
| ينطبق على | الويب و Windows فصول | معياري بشكل أساسي Windows فصول | كائنات المتصفح فقط |
| يتعطل عندما | تغييرات ترتيب العلامات | يتم تغيير موضع التخطيط أو تغيير حجمه | Windows افتح بتسلسل مختلف |
| أفضل يستخدم لـ | عناصر تحكم الشبكة المتكررة أو الجدول | نماذج سطح المكتب القديمة ذات التخطيط الثابت | تدفقات الويب متعددة النوافذ مثل النوافذ المنبثقة للدفع |
كيفية تعيين المعرف الترتيبي في مستودع الكائنات
يتم تكوين المعرف الترتيبي لكل فئة من فئات كائنات الاختبار، ويتم تطبيقه تلقائيًا على كل كائن من تلك الفئة التي UFT يتم التعلم لاحقًا. لا يتم تحديث الكائنات الموجودة بالفعل في المستودع بأثر رجعي.
- ساعات العمل UFT وحدد الأدوات > تحديد الكائنات.
- اختر البيئة، على سبيل المثال الويب أو المعيار Windows، من القائمة المنسدلة للبيئة.
- حدد فئة كائن الاختبار التي تريد تغييرها، مثل WebEdit أو WinButton.
- في خانة رمز الخصم، أدخل TABBYDAY. المعرف الترتيبي القسم، حدد الفهرس، أو الموقع، أو وقت الإنشاء، أو لا شيء.
- انقر OK وإعادة تعلم الكائن بحيث يتم التقاط القيمة الترتيبية الجديدة.
- افتح مستودع الكائنات، وحدد الكائن، وتأكد من ظهور الخاصية الترتيبية الآن في قائمة الوصف.
اختيار بدون سلوفان يعطل هذا الإجراء البديل لتلك الفئة تمامًا. UFT سيقوم النظام حينها بإصدار تنبيه خطأ في تحديد الهوية بدلاً من التخمين، وهو السلوك المرغوب فيه غالباً في مجموعة برامج يكون فيها الخطأ الصامت في تحديد الهوية أكثر ضرراً من الفشل الواضح. لذا، يُنصح بتسجيل توقعاتك في وثيقة مكتوبة بشكل جيد. حالة اختبار يجعل هذا الأمر واضحاً للفريق بأكمله.
⚠️ تحذير: يُعد تغيير المعرّف الترتيبي لفئة ما إعدادًا على مستوى الجهاز، وليس على مستوى الاختبار. إذا لم يتم تصديره ومشاركته، فقد تفشل البرامج النصية التي تنجح على جهازك على جهاز زميل أو على خادم البناء.
كيفية استخدام المعرفات الترتيبية في Descriptإيف البرمجة
في البرمجة الوصفية، لا يوجد مربع حوار لتحديد الكائن. يُكتب الترتيب مباشرةً في سلسلة الوصف، تمامًا مثل أي اسم خاصية آخر، ويبدأ الترقيم دائمًا من الصفر.
' Ordinals are zero based: index:=3 is the FOURTH WebEdit on the page Set objPage = Browser("Guru99 Bank").Page("Guru99 Bank") objPage.WebEdit("index:=3").Set "9999999999" Print "Filled WebEdit occurrence #" & (3 + 1) ' Location is counted top to bottom, then left to right objPage.WebButton("location:=1").Click Print "Clicked WebButton occurrence #" & (1 + 1) ' CreationTime works only on Browser objects Print "Switching to browser opened at position #" & (1 + 1) Browser("creationtime:=1").Sync
الإخراج:
Filled WebEdit occurrence #4 Clicked WebButton occurrence #2 Switching to browser opened at position #2
يتمثل النمط الأكثر أمانًا في الجمع بين العقارات الحقيقية و ChildObjects لذا، يتم التحقق من صحة الترتيب قبل استخدامه. يفترض المثال أدناه وجود صفحة تحتوي على خمسة عناصر WebEdit متطابقة وفهرس بقيمة 9.
Dim oDesc, oChildren, intIndex Set oDesc = Description.Create() oDesc("micclass").Value = "WebEdit" oDesc("html tag").Value = "INPUT" Set oChildren = objPage.ChildObjects(oDesc) intIndex = 9 If intIndex < oChildren.Count Then oChildren(intIndex).Set "Guru99" Else Print "Index " & intIndex & " is out of range; only " & oChildren.Count & " objects match" End If
الإخراج:
Index 9 is out of range; only 5 objects match
يقوم هذا الحارس بتحويل خطأ وقت التشغيل غير المفيد "لا يمكن تحديد الكائن" إلى رسالة قابلة للقراءة، وهو أمر مهم عند نشر النتائج إلى عيب. tracكير أو إلى نظام إدارة دورة حياة التطبيقات من HP متكامل مع UFT.
أخطاء شائعة عند استخدام المعرفات الترتيبية
معظم العيوب المتعلقة بالترتيب tracلنعد إلى مجموعة صغيرة من الأخطاء المتكررة.
- العد من 1. يبدأ كل مُعرّف ترتيبي من 0. كتابة index:=1 للحقل الأول هو الخطأ الأكثر شيوعًا ويؤدي إلى فشل بمقدار واحد يبدو وكأنه مشكلة في التوقيت.
- الخلط بين الفهرس والموقع. يتبع الفهرس شفرة المصدر، بينما يتبع الموقع الشاشة. في صفحة يُعاد فيها ترتيب العناصر باستخدام CSS، تختلف القيمتان، ويتم تبديلهما.ping يستهدفون عنصر التحكم الخاطئ بصمت.
- استخدام CreationTime خارج بيئة الويب. توجد هذه الخاصية فقط في كائنات المتصفح. تطبيقها على كائن صفحة أو إطار أو نافذة يُسبب خطأً يتعلق بخاصية غير مدعومة.
- إدخال قيمة ترتيبية بشكل ثابت في دالة مشتركة. تصبح الدالة القابلة لإعادة الاستخدام والتي تفترض أن index:=2 غير قابلة للاستخدام في اللحظة التي تستدعيها فيها شاشة ثانية بتصميم مختلف.
- ترك الأرقام الترتيبية في المستودع بعد استقرار التطبيق. بمجرد أن يضيف المطورون معرفات ثابتة، قم بإعادة النظر في الكائنات واستبدل الترتيب بالخاصية الجديدة.
- الاعتماد على الأعداد الترتيبية داخل الحلقات فوق الشبكات. تفضل
ChildObjects، والتي تُرجع مجموعة مباشرة، لذا فإن العدد يعكس الصفحة الحالية بدلاً من الصفحة المسجلة.
المصادر
قم بتنزيل صفحات الويب المستخدمة في الدرس التعليمي أعلاه للتدرب الذاتي.
تُعدّ المعرّفات الترتيبية جزءًا صغيرًا من نموذج تعريف الكائنات. لمعرفة كيفية اندماجها في سير العمل الأوسع، تابع القراءة الكاملة. QTP/UFT سلسلة التدريبراجع الأساسيات في اختبار البرمجياتتعرّف على كيفية إدارة النتائج في برنامج تعليمي حول HP ALMوقارن استراتيجيات تحديد المواقع مع Selenium البرنامج التعليمي.
الأسئلة الشائعة
انقر اضغط هنا إذا لم يكن من الممكن الوصول إلى الفيديو

