سؤال

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

أنا لا أفهم...

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

المحلول

فإنه يسمح لك لكتابة الاختبارات الوظيفية في "الوحدة" إطار اختبار (مسألة هي تسمية في وقت لاحق).

عندما يتم اختبار التطبيق الخاص بك من خلال المتصفح الذي يتم عادة اختبار منظومة متكاملة.تنظر لديك لاختبار التغييرات قبل ارتكاب لهم (الدخان الاختبارات), كنت لا ترغب في اختبار يدويا مرارا وتكرارا.

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

Ps مثل أي ممارسة من أنك تستخدم للمرة الأولى لديها منحنى التعلم ، لذلك عادة ما يستغرق وقتا أطول في المرات الأولى.أنا أيضا أقترح عليك إلقاء نظرة على الصفحة كائن نمط ، فإنه يساعد على الحفاظ على الاختبارات نظيفة.

تحديث 1: لاحظ أن الاختبارات سيتم أيضا تشغيل جافا سكريبت على صفحات ، مما يساعد على التجارب عالية صفحات ديناميكية.لاحظ أيضا أنه يمكنك تشغيله مع المتصفحات المختلفة, حتى تتمكن من التحقق عبر متصفح القضايا(على الأقل على الجانب الوظيفي ، كما كنت لا تزال بحاجة إلى التحقق البصري).

نلاحظ أيضا أن كمية الصفحات التي تغطيها الاختبارات يتراكم ، يمكنك إنشاء الاختبارات مع دورات كاملة من التفاعلات بسرعة.باستخدام صفحة كائن نمط تبدو مثل:

   LastPage aPage = somePage
      .SomeAction()
      .AnotherActionWithParams("somevalue")
      //... other actions
      .AnotherOneThatKeepsYouOnthePage(); 
  // add some asserts using methods that give you info
  // on LastPage (or that check the info is there).
  // you can of course break the statements to add additional 
  // asserts on the multi-steps story.

من المهم أن نفهم أن تذهب تدريجيا عن هذا.إذا كان هو بالفعل بناء النظام ، إضافة اختبارات الميزات/التغييرات التي كنت تعمل على.إضافة المزيد والمزيد من التغطية على طول الطريق.سوف اليدوي بدلا من ذلك ، عادة ما يخفي ما فاتك اختبار ، حتى إذا قمت بتغيير أن يؤثر على كل صفحة واحدة وسوف تحقق مجموعة فرعية (كما أن الوقت لا يسمح), تعرف تلك التي كنت في الواقع اختبار QA يمكن أن تعمل من هناك (أمل بإضافة المزيد من الاختبارات).

نصائح أخرى

وهذا هو الشيء المشترك ما يقال عن وحدة اختبار بشكل عام. "لست بحاجة لكتابة ضعفي رمز لاختبار؟" نفس المبادئ تنطبق هنا. الحصيلة هي القدرة على تغيير التعليمات البرمجية وتعرف أنك لا ننتهك أي شيء.

لأنه يمكنك تكرار نفس اختبار مرارا وتكرارا.

إذا طلبك حتى 50+ الصفحات وعليك القيام به متكررة يبني واختباره ضد X عدد من المتصفحات الرئيسية يجعل الكثير من معانيها.

وتخيل لديك 50 صفحة، مع كل 10 وصلات لكل منهما، وبعض مع أشكال متعددة المراحل التي تتطلب منك أن تذهب من خلال الأشكال، ووضع في حوالي 100 مجموعة مختلفة من المعلومات للتحقق من أنها تعمل بشكل صحيح مع جميع أرقام بطاقات الائتمان كل العناوين في جميع البلدان، وما إلى ذلك.

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

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

في أي حجم لائق على شبكة الإنترنت، الاختبارات يجب أن تكون الآلية.

وهذه النقطة هي نفس لأي نوع من الاختبار الآلي: كتابة رمز قد يستغرق وقتا أطول من "مجرد النقر حول وبصريا التحقق من عمل الأشياء"، ربما 10 أو حتى 50 مرات أكثر

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

والسيلينيوم (جنبا إلى جنب مع أدوات مماثلة، مثل Watir) يتيح لك تشغيل الاختبارات ضد واجهة المستخدم من التطبيق ويب بطرق أجهزة الكمبيوتر جيدة في: آلاف المرات بين عشية وضحاها، أو في غضون ثوان بعد كل الإيداع المصدر. (لاحظ أن هناك الكثير من غيرها من القطع اختبار UI أن البشر هم أفضل بكثير في مثل يلاحظ أن بعض الشيء الغريب لا علاقة مباشرة لاختبار خاطئا).

وهناك طرق أخرى لإشراك كومة كاملة من التطبيق الخاص بك من خلال النظر في HTML الناتجة بدلا من إطلاق المتصفح لجعله، مثل <وأ href = "http://webrat.rubyforge.org" يختلط = " نوفولو noreferrer "> Webrat و يمكنن . معظم هذه لم يكن لديك وسيلة للتفاعل مع معهد اليونسكو للإحصاء جافا سكريبت الثقيلة؛ السيلينيوم كنت قد غطت هنا إلى حد ما.

السيلينيوم تسجيل وإعادة تشغيل كل دليل النقر وكتابة لديك لاختبار تطبيق الويب الخاص بك.مرارا وتكرارا.

مع مرور الوقت الدراسات نفسي أظهرت لي أن أميل أقل الاختبارات والبدء في تخطي بعض ، أو نسيان لهم.

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

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

وإذا قمت بحفظ تلك الاختبارات كصفوف أداة JUnit يمكنك إعادة تشغيل لهم في وقت فراغك، وذلك كجزء من بناء الآلي الخاص بك، أو في اختبار الحمل الرجل الفقير استخدام JMeter.

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

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

وأنا لا أقول يجب عليك التخلص من اختبار، ولكن أداة اختبار UI الآلي يكمل اختبار النظام.

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

إذا كنت لا تحب النهج السيلينيوم، يمكنك محاولة HtmlUnit ، أجد أنه أكثر فائدة و من السهل على الاندماج في وحدة الاختبارات الحالية.

لتطبيقات الويب الغنية مع واجهات (مثل العديد من المشاريع GWT) السيلينيوم / طاحونة / WebDriver / وما هو السبيل لإنشاء اختبارات القبول. في حالة GWT / GXT، رمز واجهة المستخدم النهائي هو في JavaScript ذلك خلق اختبارات القبول باستخدام حالات الاختبار أداة JUnit العادية هو في الأساس غير وارد. مع السيلينيوم يمكنك خلق سيناريوهات اختبار مطابقة إجراءات المستخدم الحقيقية والنتائج المتوقعة.

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

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

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