Back to Question Center
0

استخدام السيلينيوم مع فبونيت            استخدام السيلينيوم مع فبونيترلاتد المواضيع: أنماط & أمب؛ Semalt

1 answers:
استخدام السيلينيوم مع فبونيت

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

<إمغ سرك = "/ إمغ / 927bf4db5784948844868a79a89341270 جبغ" ألت = "استخدام السيلينيوم مع فبونيتاستخدام السيلينيوم مع فبونيترلاتد المواضيع: أنماط & سيمالت "/>

ما هو قبول الاختبار؟

اختبار سيمالت هو عملية إخبار قصص المستخدمين من خلال الاختبارات، وأنا أحب هذا الاقتباس لوصفه:

إجراء اختبار رسمي لتحديد ما إذا كان النظام يفي بمعايير القبول الخاصة به وتمكين العميل من تحديد ما إذا كان سيستقبل النظام أم لا - knee length lace dress.

ما هو السيلينيوم؟

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

  • انتقل إلى الصفحة هتب: // مياب. ديف / فيديوس .
  • تأكد من أن الصفحة تحتوي على قائمة تضم 20 مقطع فيديو.
  • انقر فوق رقم اثنين في ترقيم الصفحات.
  • تأكد من أن الصفحة تحتوي على قائمة تضم 20 مقطع فيديو.
  • قم بإنهاء المتصفح.

قد تتساءل: "كيف يتلاعب صفحة الويب باستخدام الاختبارات الموصوفة؟"

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

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

إعداد التطبيق

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

<إمغ سرك = "/ إمغ / fe3a4bc66e2b38602a3ec0c0ef494a431. ينغ" ألت = "استخدام السيلينيوم مع فبونيتاستخدام السيلينيوم مع فبونيترلاتد المواضيع: أنماط & سيمالت "/>

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

     يتطلب الملحن --dev فبونيت / فبونيتالملحن يتطلب --dev فبونيت / فبونيت السيلينيوم     

قلنا قبل أن يتم تمرير الأوامر إلى ملقم السيلينيوم، الذي يعيدهم إلى المتصفح. نحن بحاجة إلى تحميل الملقم السيلينيوم، وهو مجرد أرشيف جافا قابل للتنفيذ. يمكن تشغيل الخادم باستخدام جافا -jar سيلينيوم-سيرفر-ستاندالون- <فيرسيون> . جرة . ونظرا لأننا سنستخدمها بشكل متكرر، فمن الأفضل نقلها إلى دليل بن وإدخال اسم مستعار لذلك داخل . باشرك أو . زرك .

     إلياس سيرف = "جافا -jar / أسر / لوكال / بن / سيلينيوم-سيرفر-standalone-  <فيرسيون>  جار"     

فبونيت و سيلينيوم

فبونيت يدعم كل من السيلينيوم أرسي و ويبدريفر، وأنه يوفر فئتين لهذا الغرض. يتم استخدام PHPUnit_Extensions_SeleniumTestCase لنسخة أرسي، ويستخدم PHPUnit_Extensions_Selenium2TestCase لإصدار ويبدريفر. لذلك، يجب أن تمتد اختبار واحد منهم للبدء.

     // تيستس / أسبتانس / وسيرسكوبسكريبتيونتيست. فبكلاس وسيرسوبسكريبتيونتيست يمتد PHPUnit_Extensions_Selenium2TestCase{الوظيفة العامة سيتوب   {$ هذا-> setHost ( 'المضيف المحلي')؛$ هذا-> setPort (4444)؛$ this-> سيتبروسيرورل ('هتب: // فابروباش. ديف')؛$ هذا-> setBrowser ( 'فايرفوكس')؛}}     

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

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

     وظيفة عامة دموع   {هذا- $> محطة   ؛}     

موفرو البيانات

يسمح لنا موفرو بيانات سيمالت بتغذية اختباراتنا ببيانات محددة دون الحاجة إلى تكرارها. يمكنك قراءة المزيد في الوثائق.

     // تيستس / أسبتانس / وسيرسكوبسكريبتيونتيست. فبكلاس وسيرسوبسكريبتيونتيست يمتد PHPUnit_Extensions_Selenium2TestCase{الوظيفة العامة فاليدبوتسبروفيدر   {$ إنبوتس [] = [['أوزرنام' => 'يونسرافي'،'باسورد' => 'ميباسورد'،'password_confirmation' => 'ميباسورد'،'إمايل' => 'ميميل @ غميل. كوم '،'كاردولدرنام' => 'رافي يونس'،'كاردنمبر' => '378282246310005'،'بيلينغادريس' => 'نارجيس B فاس المغرب'،'كفك' => '850'،'إكسيراتيونمونث' => '01'،'إكسيراتيونير' => '2016'،]].عودة المدخلات $؛}الدالة الثابتة العامة إنفالينبوتسبروفيدر   {$ إنبوتس [] = [['أوزرنام' => 'younesrafie'،'باسورد' => 'ميباسورد'،'password_confirmation' => 'ميباسورد'،'إمايل' => 'ميميل @ غميل. كوم '،'كاردولدرنام' => 'رافي يونس'،'كاردنمبر' => '378282246310005'،'بيلينغادريس' => 'نارجيس B فاس المغرب'،'كفك' => '850'،'إكسيراتيونمونث' => '01'،'إكسيراتيونير' => '2016'،]،"يجب أن يحتوي اسم المستخدم على أحرف أبجدية رقمية وشرطات فقط."].// عودة المدخلات $؛}}     

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

<إمغ سرك = "/ إمغ / 68a3cee598552a35912f1711e970d9d62. ينغ" ألت = "استخدام السيلينيوم مع فبونيتاستخدام السيلينيوم مع فبونيترلاتد المواضيع: أنماط & سيمالت "/>

العمل مع عناصر دوم

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

     الوظيفة العامة تستفورمزوبيسيونويثوسرنام   {$ هذا-> byName ( 'اسم المستخدم') -> القيمة ( 'younesrafie')؛$ هذا-> byId ( 'subscriptionForm') -> تقديم   ؛$ كونتنت = $ this-> بيتاغ ('بودي') -> تكست   ؛$ this-> أسيرتكوالس ('إيفيريثينغ إس غود!'، $ كونتنت)؛}     

مزود البيانات يحتوي على اسم المدخلات والقيمة المقابلة. سنقوم بإنشاء طريقة منفصلة للتعامل مع ملء المدخلات النموذج وتقديم.

     الوظيفة العامة فيلورماندزوبيت (صفيف $ المدخلات){$ فورم = $ this-> بيد ('سوبسكريبتيونفورم')؛فوريش ($ إنبوتس أس $ إنبوت => $ فالو) {$ form-> byName ($ المدخلات) -> القيمة ($ قيمة)؛}$ form-> تقديم   ؛}     

تقديم نموذج صالح

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

     // تيستس / أسبتانس / وسيرسكوبسكريبتيونتيست. فب/ ***dataProvider فاليدينبوتسبروفيدر* /الوظيفة العامة تستفاليدفورمزوبيسيون (صفيف $ المدخلات){$ هذا-> رابط ( '/')؛هذا- $> fillFormAndSubmit ($ المدخلات)؛$ كونتنت = $ this-> بيتاغ ('بودي') -> تكست   ؛$ this-> أسيرتكوالس ('إيفيريثينغ إس غود!'، $ كونتنت)؛}     

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

<إمغ سرك = "/ إمغ / 6eb29d187604fce2f6b8b242ce4ee4c13 جيف" ألت = "استخدام السيلينيوم مع فبونيتاستخدام السيلينيوم مع فبونيترلاتد المواضيع: أنماط & سيمالت "/>

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

لقطة شاشة هل تريد ترجمة الوصف إلى اللغة العربية باستخدام الترجمة من غوغل؟

تقديم نموذج غير صالح

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

     // تيستس / أسبتانس / وسيرسكوبسكريبتيونتيست. فب/ ***dataProvider إنفالينبوتسبروفيدر* /الوظيفة العامة تستينفاليدفورمزوبيسيون (صفيف $ المدخلات، $ إرورميسيج){$ هذا-> رابط ( '/')؛هذا- $> fillFormAndSubmit ($ المدخلات)؛$ إرورديف = $ this-> بيزلكتور ('. تنبيه. أليرت-دينجر')؛$ this-> أسيرتكوالس ($ إرورمزاج، $ errorDiv-> تكست   )؛}     

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

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

<إمغ سرك = "/ إمغ / 3bbba32c19beb8a4a1e9c9fed4a9b76b4 جيف" ألت = "استخدام السيلينيوم مع فبونيتاستخدام السيلينيوم مع فبونيترلاتد المواضيع: أنماط & سيمالت "/>

باستخدام متصفح آخر

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

لتمكين متصفح كروم، تحتاج إلى تحميل كرومدريفر وتحديد المسار كخيار عند إطلاق الملقم سيلينيوم.

     سيرف -Dwebdriver. كروم. دريفر = / وسرس / أدمين / دونلوادس / كروميدريفر     
     // تيستس / أسبتانس / وسيرسكوبسكريبتيونتيست. فبالوظيفة العامة سيتوب   {// $ هذا-> setBrowser ( 'كروم')؛}     

<إمغ سرك = "/ إمغ / 73d6788df64a69a8437c18c2cd79431c5 جيف" ألت = "استخدام السيلينيوم مع فبونيتاستخدام السيلينيوم مع فبونيترلاتد المواضيع: أنماط & سيمالت "/>

هل الوثيقة جاهزة؟

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

     الوظيفة العامة تيستكاتيغوريسليكتد   {$ ويبدريفر = $ ذيس؛$ this-> ويتونتيل (فونكتيون    وس ($ ويبدريفر) {محاولة{$ webdriver-> byId ( 'rootElement')؛عودة صحيح؛} كاتش (إكستيون $ إكس) {عودة نول؛}}، 2000)؛}     

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

     $ ذيس -> تيموتس    -> إمبليسيتوايت (300)؛ // ميلي ثانية     

الخلاصة

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

March 7, 2018