سؤال

لقد كنت أعمل على مكون مرن وأود أن أكتب بعض الاختبارات الآلية لذلك. المشكلة هي، أدوات اختبار واجهة المستخدم التي نظرت إليها (flexmonkey. و السيلينيوم فليكس API.) لا تحاكي "بما فيه الكفاية":

تتعامل معظم الأخطاء التي وصلت حتى الآن بالطريقة المرنة التي تتعامل مع السحب والإفلات، والتي لا يمكن لهذه المكتبات محاكاةها بدقة بما فيه الكفاية. على سبيل المثال، أحتاج إلى اختبار حالة حيث يوجد حدث "إسقاط" يحدث في النصف السفلي من مكون - لا يمكن أن يفعله FlexMonkey أو Selenium Fern API ذلك (قد يحاكي حدث ماوس، لكنهم لن يشملوا إحداثيات).

لذلك، هل هناك أي طريقة "جيدة" لأتمتة هذا النوع من الاختبارات؟

يحرر: بعد الكثير من البحث، يبدو الأمر وكأنه قطعة فقط من البرامج التي يمكن أن تفعل هذا هو imacros., ، وهو Windows فقط والواجهة ... تفتقر. لذلك أنا ذاهب ليكون كتابة بلدي. وبعد أساسا، سوف يضع واجهة HTTP java.awt.Robot حتى الكود (بأي لغة) يمكن محاكاة أحداث الماوس / لوحة المفاتيح. إذا كنت مهتما، PM لي وسوف أبقيك محدثا.

تحرير 2.: لقد نشرت النسخة الأولى من الإطار كتبت، blundbuss، في bitbucket: http://bitbucket.org/wolever/blunderbuss/ وبعد ستحتاج إلى Jython لتشغيله (http://www.jython.org/)، ولكن بعد ذلك flex-client مثال يجب أن تعمل.

أشرطة فيديو من Blunderbuss مباشرة في Vimeo:

في الوقت الحالي، لا يزال هذا دليلا على مفهوم، لأنني لم يكن لدي دورات لتنظيفه وجعله أكثر قابلية للاستخدام ... ولكن ربما يكفي الناس يزعجونني سيعطيني ذلك الوقت :)

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

المحلول

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

نصائح أخرى

أنا مهتم بالتأكيد بفئة Java المخصصة الخاصة بك، و (على الرغم من أنني لست الأفضل في جافا (حتى الآن ...))، فأنا على استعداد للمساعدة إذا كنت تفكر في جعل هذا التعاون.

بالنسبة لفتح الفلاش. لسوء الحظ، لا توجد طريقة دقيقة حقا لمحاكاة تجربة السحب / الانخفاض في الفلاش. يتم التعامل مع mousevents، عندما يتم إنشاؤها بواسطة الماوس، بطريقة مختلفة جدا من الأحداث العادية، وبينما يمكنك محاكاة الإجراءات من خلال تمرير الأحداث في مهام المناولة، أو عن طريق جعل المرسل النار من DrAgevent جديد (DrAgEvent.Drag_drop ...، عليه لن يكون هو نفسه وجود المستخدم تفاعل معها. وللبعض الوظائف (مثل الوصول إلى الحافظة)، لن ينجز أي شيء داخل الفلاش أهدافك.

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

لم أضطر أبدا لاستخدامها في المرن، لكنني تعثرت مؤخرا عبر بعض المعلومات حول حزم الأتمتة في MS Surface SDK ... بعد النظر في فئات سلوك المستخدم الآلي الذي يمكن استخدامه للاختبار أي نقل ماوس وهمية بهذا نقطة، أداء هذا الإجراء. كما كنت تستخدم فليكس MX.Automation الحزم والفصول. وبعد تخميني (والأمل) هو أنه ستكون قادرا على تحقيق ما تريد استخدام هذه الفئات.

يمكنك أيضا تجربة Hotkey التلقائي - وهو مشابه برنامج تحرير ماكرو لكنه أثبت أنه فعال للغاية ويمكنك كتابة البرامج النصية وإعدادها بسهولة شديدة.

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