GetRoProperty، GetToProperty في QTP/UFT مع المثال
⚡ ملخص ذكي
يكشف Object Spy عن خصائص وأساليب أي عنصر تحكم في التطبيق قيد الاختبار، بينما تقوم GetROProperty وGetTOProperty وSetTOProperty بقراءة وكتابة قيم تلك الخصائص من QTP or UFT نص برمجي واحد في وقت التشغيل.
يوضح هذا البرنامج التعليمي كائن تجسس.
يمكن أن يساعد Object Spy في تحديد الخصائص والأساليب المفيدة المرتبطة بكائن ما في بيئتك.
إتش بي/مايكرو فوكس UFT الدروس يصف أيضا GetROProperty و GetTOProperty و SetTOProperty.
⚠️ ملاحظة حول الإصدار: الأداة الموصوفة هنا تم شحنها تحت اسم HP QuickTest Professional، ثم أصبحت Micro Focus Unified Functional Testing، وتباع اليوم تحت اسم OpenText الاختبار الوظيفي (UFT واحد). لا تزال خاصية التجسس على الكائنات والطرق الثلاث تعمل تمامًا كما هو موضح أدناه.
انقر اضغط هنا إذا لم يكن من الممكن الوصول إلى الفيديو
كائن تجسس
- خاصية التجسس على الأشياء هي إحدى ميزات QTP والتي يمكنك من خلالها عرض خصائص وأساليب كل من كائن وقت الاختبار ووقت التشغيل.
- كما أنه يوفر بناء الجملة للطريقة المحددة.
- يُظهر برنامج Object Spy التسلسل الهرمي الكامل للكائن الذي قمت بتحديده.
يُعدّ هذا التسلسل الهرمي مهمًا، لأن اسم الخاصية المنسوخ من Object Spy هو السلسلة النصية التي تتوقعها الطرق الثلاث أدناه. لذا، فإنّ التجسس على الكائن هو الخطوة الأولى في كل مهمة استرجاع خصائص تقريبًا.
GetROProperty
- GetROProperty – هي طريقة مدمجة تستخدم لاسترداد قيمة وقت التشغيل لخاصية الكائن.
تتضمن عملية استخدام GetROProperty أربع خطوات:
- سجّل الكائن الذي تريد استخدام GetROProperty عليه في مستودع الكائن.
- يُحدد الكائن المُسجل خاصية وقت التشغيل التي يُمكن استخدامها. يُمكنك استخدام أداة Object Spy.
- استخدم طريقة GetROProperty لاسترداد خاصية وقت التشغيل المحددة وتخزين القيمة في متغير.
- استخدم هذه القيمة لإجراء المزيد من الخصومات.
لأن القيمة تُقرأ من عنصر التحكم المباشر، يجب أن يكون التطبيق مفتوحًا ويجب أن يكون الكائن موجودًا بالفعل على الشاشة عند تشغيل السطر.
SetTOProperty و GetTOProperty
- لنفترض وجود زر ويب مخزن في مستودع الكائنات.
- عند تشغيل الاختبار QTP يقوم بإنشاء نسخة من هذا الكائن تسمى كائن الاختبار ويقارنها مع كائن وقت التشغيل
- باستخدام GetTOProperty يمكنك استرداد قيمة خاصية من خصائص كائن الاختبار
- باستخدام SetTOProperty يمكنك تغيير قيمة الخاصية لكائن الاختبار
- عند اكتمال الاختبار، يتم التخلص من كائن الاختبار هذا، وكذلك أي تعديلات أجريتها على خصائص الكائن باستخدام SetTOProperty
- عند إعادة تشغيل الاختبار، يتم إنشاء نسخة جديدة من كائن الاختبار بقيم الخصائص الأصلية المخزنة في مستودع الكائنات
- يمكنك التفكير في استخدام GetTOProperty و SetTOProperty عندما يحتوي نص الاختبار الخاص بك على عدة أسطر من التعليمات البرمجية ويكون بيئة التشغيل لديك متقطعة.
- ملاحظة: لا يوجد أمر SetROProperty
بناء الجملة والأمثلة
تُستدعى الطرق الثلاث جميعها على كائن اختبار في نهاية التسلسل الهرمي الخاص به، وتأخذ جميعها اسم خاصية الوصف كسلسلة نصية. يوضح الجدول توقيع كل منها.
| الأسلوب | بناء الجملة | يقرأ أو يكتب |
|---|---|---|
| GetROProperty | object.GetROProperty(Property) | يقرأ عنصر التحكم المباشر في التطبيق |
| GetTOProperty | object.GetTOProperty(Property) | يقرأ وصف كائن الاختبار المخزن |
| SetTOProperty | object.SetTOProperty Property, Value | يكتب وصف كائن الاختبار لهذه العملية فقط |
قراءة قيمة وقت التشغيل تتم عبر عبارة واحدة. هذا المثال مأخوذ من مرجع رسمي لاسترجاع وتعيين القيم، يقوم بسحب عنوان الهدف للرابط أثناء جلسة التشغيل.
link_href = Browser("Technologies").Page("Technologies").Link("Jobs").GetROProperty("href")
كتابة خاصية كائن الاختبار ثم قراءتها عملية سريعة بنفس القدر. يقوم المثال التالي بتعيين اسم زر الإرسال إلى "زري" ثم يقرأ القيمة نفسها مباشرةً.
Browser("QA Home Page").Page("QA Home Page").WebButton("Submit").SetTOProperty "Name", "my button" ButtonName = Browser("QA Home Page").Page("QA Home Page").WebButton("Submit").GetTOProperty("Name")
يجمع التحقق النموذجي بين الفكرتين: قراءة قيمة وقت التشغيل باستخدام GetROProperty، ثم مقارنتها بما يتوقعه الاختبار.
strValue = Browser("Welcome").Page("Find a Flight").WebList("fromPort").GetROProperty("selection") If strValue = "Acapulco" Then Reporter.ReportEvent micPass, "Default city", "Default city is correct" Else Reporter.ReportEvent micFail, "Default city", "Unexpected value: " & strValue End If
الفرق بين GetROProperty و GetTOProperty
يختلف الاسمان بحرف واحد، وهما أكثر الأسماء إثارةً للالتباس في الأداة. يرمز RO إلى كائن وقت التشغيل، وTO إلى كائن الاختبار، ويقرأ كل منهما من مكان مختلف.
| نقطة المقارنة | GetROProperty | GetTOProperty |
|---|---|---|
| مصدر القيمة | التحكم المباشر في التطبيق قيد التشغيل | الوصف المخزن لكائن الاختبار |
| يجب أن يكون التقديم مفتوحًا | نعم | لا |
| يرى تغييرًا في SetTOProperty | لا | نعم، بالنسبة للدورة الحالية |
| الاستخدام النموذجي | التحقق مما يراه المستخدم فعلياً | التحقق من كيفية تحديد الكائن أو تصحيحه |
| مُعدٌّ للمطابقة | لا يوجد شيء - لا يوجد SetROProperty | SetTOProperty |
يُظهر التباين المُطبق الفرق بوضوح. قم بتعيين مُعرّف HTML لقائمة لا تحتوي على أي مُعرّف، ثم اقرأها بالطريقتين: تُعيد دالة GetROProperty سلسلة نصية فارغة لأن التطبيق لم يتغير، بينما تُعيد دالة GetTOProperty القيمة التي كُتبت للتو في الوصف.
الأخطاء الشائعة وكيفية إصلاحها
تفشل عملية استرجاع الخصائص لعدد قليل من الأسباب المتوقعة. يوضح الجدول الأسباب التي يواجهها المختبرون في أغلب الأحيان.
| عرض | سبب | حل |
|---|---|---|
| تُعيد هذه العملية سلسلة نصية فارغة | اسم الخاصية خاطئ، أو أن الكائن لا يعرضها. | قم بفحص العنصر مرة أخرى وانسخ اسم الخاصية تمامًا كما هو مدرج |
| لم يتم العثور على الكائن في سطر GetROProperty | لم يتم عرض عنصر التحكم بعد | أضف خطوة مزامنة قبل القراءة |
| تتجاهل دالة GetROProperty تغيير دالة SetTOProperty | تعالج الطريقتان كائنات مختلفة بحكم التصميم. | اقرأ التغيير مرة أخرى باستخدام GetTOProperty بدلاً من ذلك |
| يختفي تغيير SetTOProperty | تدوم تعديلات كائن الاختبار فقط خلال التشغيل الحالي | قم بتحرير الكائن في المستودع، أو استخدم البرمجة الوصفية |
| تُثير الدالة SetROProperty خطأً في بناء الجملة | لا توجد طريقة كهذه | قم بتوجيه التطبيق خلال خطوة عادية مثل التعيين أو النقر |
هناك عادتان تمنعان معظم هذه الحالات: الأولى هي فحص عنصر التحكم قبل كتابة السطر بدلاً من تخمين اسم الخاصية، والثانية هي الاحتفاظ بـ فبسكريبت يتم استدعاء عمليات الاسترجاع بالقرب من الخطوة التي تحتاج إلى القيمة، لذلك يظل الكائن معروضًا على الشاشة عند حدوث القراءة.
