UFT 11.53 إعطاء إجابة غير صحيحة عند تقييم ما إذا كان A> B

StackOverflow https://stackoverflow.com//questions/25064027

  •  23-12-2019
  •  | 
  •  

سؤال

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

giveacodicetagpre.

لقد حاولت عدة طرق لتعيين قيم "A" و "B". ويشمل ذلك تحديد ميزان العربة ومجموعة GC باستخدام البرمجة الوصفية. لقد استخدمت أيضا خطوط Regexp لفصل الأرقام من السلسلة التي تنتجها GetRoProperty. لقد حاولت كتابة القيم إلى DataTable وكانت المقارنة قراءة هذه القيم.

في جميع الحالات إذا قمت بإجراء MSGBOM ل A أو B، فهذا يظهر القيم الصحيحة. ذهبت مع الطريقة المذكورة أعلاه لأنها ترجع الأرقام دون النقطة العشرية.

يبدو وكأنه UFT يستخدم الإجابات السابقة إذا كان العبارة التالية لكل موقع (ربما الإجابة من المرة الأولى). في نهاية المطاف سيقول أن A> B عندما= 16 و ب= 100 هو UFT التخزين المؤقت الجواب على بيان إذا حدث ذلك؟ هو رمز الكود الخاص بي (أنا أتعلم البرمجة أثناء بناء البرامج النصية الاختبار الخاصة بي حتى يكون ذلك ممكنا)؟

أي اقتراحات أو نصيحة ستكون رائعة! شكرا، روبرت

هل كانت مفيدة؟

المحلول

تخميني الأول هو أنك تقارن بين سلسلتين وليس رقمين. يعمل المشغل "&" سلسلة سلسلة من السلسلة، لذلك عند استخدام عبارات مثل "B= B & D" أو "A= A & C"، تقوم ببناء سلسلة من النص. إذا كان A="16" و B="100"، ثم أكبر من المقارنة الأبجدية بأسلوتين منذ الطابع الثاني في A ("6") هو كره من الحرف الثاني في B ("0").

حاول إجبار مقارنة رقمية بدلا من ذلك.

giveacodicetagpre.

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

giveacodicetagpre.

ثم جميع البيانات المستقبلية ستعامل مع تلك الأرقام، وليس سلاسل النصية.

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

من الممكن أيضا أن يكون رمزك مبسرا للغاية. إذا كانت القيم التي تقرأها من "getroproperty" هي قيم عشرية فقط (بدون أحرف عملة)، فيمكنك تحويلها مباشرة إلى أنواع القيمة المزدوجة واستخدام تلك المقارنة. مثال

giveacodicetagpre.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top