ما الذي تستخدمه لاختبار وحدة واجهة مستخدم الويب الخاصة بك؟[مغلق]

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

سؤال

الشركة التي أعمل بها حاليًا تستخدم السيلينيوم لتوحيد اختبار واجهة المستخدم الخاصة بنا.ما الذي تستخدمه لاختبار وحدة واجهة مستخدم الويب الخاصة بك وما مدى فعاليتها؟

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

المحلول

نحن نستخدم Watin في مكان عملي، فنحن متجر على شبكة الإنترنت، لذا كان هذا الحل منطقيًا للغاية.لقد بدأنا بالفعل باستخدام Watir (تطبيق روبي الأصلي) وانتقلنا بعد ذلك.لقد كان حلاً جيدًا بالنسبة لنا حتى الآن

نصائح أخرى

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

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

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

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

إذا كنت أعمل على تطبيق ويب، فمن النادر بالنسبة لي أن أكتب قدرًا كبيرًا من التعليمات البرمجية دون اختبارات Selenium RC لدعمها.هذا هو مدى فعالية أجد السيلينيوم.:) (نأمل أن يجيب هذا على سؤالك..)

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

إذا قمت بذلك، فسيكون الكود الوحيد في واجهة المستخدم هو الكود الذي يستدعي الواجهة الخلفية، لذا فإن اختبار الواجهة الخلفية يكفي.

لقد استخدمت NUnit ASP في الماضي (في وظيفتي)، وإذا كنت تصر على اختبار الوحدة لواجهة المستخدم الخاصة بك، فإنني أنصحك بشدة باستخدام أي شيء باستثناء NUnit ASP.من الصعب العمل معه، وتميل الاختبارات إلى إبطالها (بحاجة إلى المراجعة) حتى بعد إجراء تغييرات طفيفة في واجهة المستخدم (حتى لو لم تتغير موضوعات الاختبارات فعليًا).

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

نحن نستخدم Visual Studio 2008 Tester Edition.

الايجابيات:جيد جدًا في التقاط تفاعل المستخدم

يلتقط مكالمات اياكس

من السهل جدًا تعيين إدخال المستخدم إلى قاعدة بيانات أو ملف XML أو CSV

يمكن تحويل الاختبار الذي تم التقاطه إلى C# لمزيد من التحكم

يمكن استخدام نفس الاختبارات لاختبار التحميل وتغطية التعليمات البرمجية

سلبيات:

VS2008 Tester Edition عبارة عن SKU منفصل عن إصدار المطور العادي، مما يعني تكلفة إضافية

قد تكون لديك حساسية من Microsoft ;-)

لقد استخدمناها بشكل فعال للغاية في المشاريع، ومع ذلك هناك الكثير من الجهد المبذول في الحفاظ على تحديث الاختبارات، في كل مرة تقوم فيها بتغيير الشاشة، قد يحتاج الاختبار إلى إعادة تسجيله

نحن نميل إلى إبقاء الاختبارات قصيرة وحادة، والقيام بشيء واحد والخروج بدلاً من تسجيل 10 دقائق من النقر في اختبار واحد.

لدينا عدد قليل من أنواع اختبار واجهة المستخدم القياسية:

اختبار القائمة: قم بتسجيل الدخول كمستخدم محدد (أو نوع/دور المستخدم) وتأكد من توفر جميع عناصر القائمة المطلوبة

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

اختبار البحث: ابحث باستخدام بيانات من قاعدة البيانات الخاصة بك أو ملف بيانات وتأكد من إرجاع البيانات الصحيحة من خلال البحث

اختبار إدخال البيانات: قم بإنشاء سجلات جديدة من ملف بيانات، وقم بتنظيف قاعدة البيانات للسماح بإجراء الاختبارات عدة مرات

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

لقد تم استخدام JSunit لفترة من الوقت لإجراء اختبارات الوحدة ...قد لا تكون نفس أنواع الاختبارات التي تتحدث عنها، ولكنها رائعة لضمان عمل JavaScript كما تتوقع.

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

لا أعتقد أنه يحل محل السيلينيوم، لكنه يكمله بشكل جيد.

نحن نستخدم Selenium Core، ولكننا نتحول تدريجيًا إلى Selenium RC وهو أفضل بكثير وأسهل في الإدارة.لقد كتبنا الكثير من التعليمات البرمجية المخصصة لإجراء الاختبارات على خوادم التكامل المستمر لدينا، وبعضها في مجموعات متوازية لتعمل بشكل أسرع.

شيء واحد ستجده هو أن السيلينيوم يبدو وكأنه يعيد تشغيل المتصفح لكل اختبار (يمكنك ضبطه على عدم القيام بذلك، ولكن واجهنا مشاكل في الذاكرة عندما فعلنا ذلك).يمكن أن يكون هذا بطيئًا في Firefox، ولكنه ليس سيئًا جدًا في IE (مرة واحدة أشعر بالامتنان لتكامل نظام التشغيل الخاص بـ Bill Gates).

لقد استخدمت واتير, ، وهو أمر جيد جدًا.لقد أحببته لأنه روبي ويسمح باختبار التفاعل والعناصر المتاحة وتحليل كود المصدر.لم أستخدمه منذ فترة ولكن أعتقد أنه أصبح أفضل.

ومن المفترض أن يتم نقله إلى Firefox وSafari، ولكن هذا يحدث منذ فترة.

الدفع اختبار ويب كانو.إنه مفتوح المصدر ومبني على إطار عمل ANT.

لقد أمضيت بعض الوقت في العمل عليها في دورة تدريبية للدراسات العليا حول ضمان جودة البرمجيات ويبدو أنها أداة اختبار قوية جدًا.

شبكة السيلينيوم يمكنه إجراء اختبارات الويب الخاصة بك عبر أجهزة متعددة بالتوازي، مما قد يؤدي إلى تسريع عملية اختبار الويب

أنا في الغالب استخدم CubicTest, ، وهو مكون إضافي لـ Eclipse يتيح لك تحديد الاختبارات بيانيًا.يمكنه تصدير/تشغيل الاختبارات من خلال عدة مكتبات، بما في ذلك مكتبات watir وselenium.معظم الناس يستخدمون عداء السيلينيوم فقط.

الكشف الكامل:أنا أحد المطورين، لذا فأنا متحيز نوعًا ما :)

ألق نظرة فاحصة هنا: cubetest.openqa.org

-ايرليند

السيلينيوم مخصص لاختبار التكامل، وليس لاختبار الوحدة.إنه فرق دقيق ولكنه مهم.الاستخدام الذي أراه عادةً هو التحقق من سلامة البناء.على سبيل المثال، لديك اختبار يقوم بتسجيل الدخول، واختبار (على سبيل المثال) يرسل قصة، ويقدم تعليقًا، وما إلى ذلك.

الفكرة هي أنك تختبر لمعرفة ما إذا كان النظام بأكمله يعمل معًا قبل النشر، بدلاً من أن يكتشف المستخدم أن موقعك معطل.

نستخدم حاليا سيلك 4 جيه - نهج جافا المركزي لاختبار واجهة مستخدم الويب.يمكنه اختبار Flash وFlex وAIR وSilver Light وWin32 وHTML وعدد قليل من التطبيقات الأخرى.

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

نحن نستخدم واتين لاختبار النظام، و كيونيت لاختبار وحدة جافا سكريبت.

الموليبدينوم مبني على السيلينيوم ويحتوي على بعض الميزات الإضافية.

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