تم تصميم المقالة لتعريف نفسك بالاختبار الذاتي ونشر البيئة في Windows 10 وهي مخصصة لأولئك الذين يعرفون القليل عن
Cucumber + Capybara + Selenium-webdriver . جاءت فكرة المقالة بسبب الاختلافات في بيئة النشر على نظامي التشغيل Windows 10 و Linux.
بضع كلمات حول Cucumber + Capybara + Selenium-webdriver gem (المكتبات) اللازمة لتشغيل وملء اختبارات واجهة المستخدم بالاختبارات.
خيار
ucumber هو جوهرة تسمح لك بكتابة الاختبارات بلغة الإنسان. للقيام بذلك ، استخدم تدوين Gherkin ، الذي يحدد بنية وقواعد كتابة النصوص. يمكن قراءة التفاصيل
هناكابيبارا
Capybara هو جوهرة تسمح لك بالبحث / النقر / ... لعناصر المتصفح. على سبيل المثال هذا هو الرابط بين خطوات الخيار للاختبار ومنتج الويب (مثيل المتصفح الذي يسمى).
هنا يمكنك إلقاء نظرة على طرق هذه الأحجار الكريمة.
Selenium-webdriver
Selenium-webdriver هو أداة لأتمتة إجراءات متصفح الويب. في الجوهر ، هذا هو مثيل المتصفح.
الإجراءات الأولية
وصف الإجراءات الأوليةللراحة ، سوف نستخدم RubyMine. يمكنك
تنزيل نسخة تجريبية لمدة 30 يومًا.
قم بتنزيل Firefox و Chrome لتشغيل الاختبارات.
قم بتنزيل Git وتثبيته (نظام التحكم في الإصدار أو VCS مماثل ،
الموقع الرسمي ). لكن Git مطلوب عندما يكون لديك بالفعل مشروع أو ترغب في تخزين التعليمات البرمجية في نظام Git.
لذلك دعونا نبدأ
لدينا بالفعل RubyMine مثبتة.
- تحتاج إلى تثبيت لغة روبي نفسها. للقيام بذلك ، اذهب هنا وقم بتثبيت RubyInstaller. لقد اخترت الإصدار الأحدث (RubyInstaller 2.5.1-2) مع حزمة DevKit. من خلال حزمة التكوين هذه ، يمكنك تشغيل الاختبارات من وحدة التحكم ، كما هو الحال في Linux ، بالإضافة إلى إدارة الأحجار الكريمة بمرونة.
- تم تثبيت حزمة RubyInstaller وننتقل إلى التكوين.
إذا أردنا إنشاء مشروع جديد ، فافتح RubyMine وأنشئ مشروعًا فارغًا ، يشير إلى Ruby المثبت.
- بعد ذلك ، نحتاج إلى إنشاء بنية المجلدات والملفات هذه وفقًا للتعليق التوضيحي
موصوفة بالتفصيل هنا - ملف Gemfile - يحتوي على قائمة الأحجار الكريمة المستخدمة في المشروع
فيما يلي محتويات ملف gemfile ، مع أبسط الأحجار الكريمة لاختبارات واجهة المستخدمsource 'https://rubygems.org' gem 'cucumber' gem 'capybara' gem 'selenium-webdriver' gem 'chromedriver-helper'
يجب تحديد هذه الجواهر الأربعة في Gemfile.
gem "chromedriver-helper" - برنامج تشغيل Chrome الذي يسمح بإجراء الاختبارات على Chrome
مع هذا gemfile تحتاج إلى تثبيت الأحجار الكريمة المختارة. يعد التثبيت على Windows أسهل من واجهة RubyMine: أدوات -> Bundler -> قائمة التثبيت . Bundler هو أيضًا جوهرة ، ولكنه يعمل على التحكم في الأحجار الكريمة. ولكن يمكنك أيضًا القيام بذلك من سطر الأوامر ، الموجود في قائمة البرنامج تحت اسم Start Command Prompt ...
بالمناسبة ، باستخدام سطر الأوامر هذا ، يمكنك تشغيل اختبارات تجاوز RubyMine.
- ملف env.rb هو ملف rb الرئيسي لتشغيل اختبارات واجهة المستخدم. عند تهيئة المتغيرات وملفات الاختبار ، سيكون env.rb هو الأول. هو تسجيل المتصفح الذي سيتم تشغيل الاختبارات عليه. مثال جاهز على env.rb حيث يتم تسجيل Chrome أو Firefox ، أو دعنا نفهم أننا لا نحتاج إلى متصفح على الإطلاق لإجراء الاختبارات.
حالات عندما لا تكون هناك حاجة إلى متصفح - نتحقق من طلبات الراحة واختبار التكامل ، على الرغم من أنه يعتقد أن اختبارات الخيار ليست مناسبة تمامًا لهذا.
الكتابة env.rb require 'capybara/cucumber' require 'selenium-webdriver' Capybara.register_driver :driver do |app| case ENV['DRIVER'] when 'chrome' Capybara::Selenium::Driver.new(app, :browser => :chrome) when 'without_browser' Capybara.default_driver = :mechanize else client = Selenium::WebDriver::Remote::Http::Default.new Capybara::Selenium::Driver.new(app, :browser => :firefox, port: 10000 + Random.rand(1000), http_client: client) end end Capybara.default_driver = :driver Capybara.default_selector = :xpath
أيضا ، هنا مسألة إصدار Firefox.
إذا كنت قد قمت بتثبيت Firefox الإصدار 46 أو أقل ، فلكي تتمكن من تشغيل الاختبارات بشكل صحيح ، فأنت بحاجة إلى الإصدار 2.53.4 من "جوهرة كابيبارا" أو أقل.
إذا كان إصدار Firefox أعلى من 46 ، فإنه يعمل على مبادئ أخرى تعتمد على "geckodriver" وبالتالي ، لتشغيل الاختبارات بشكل صحيح ، تحتاج إلى تثبيت geckodriver .
رحلة في أسباب الحاجة إلى geckodriverقبل الإصدار 47 ، كان برنامج تشغيل الأتمتة في Firefox مجرد امتداد تم تضمينه مع كل عميل. ولكن تمت إزالة هذا التمديد بسبب تغيير في السياسة يتطلب الآن توقيع جميع الإضافات من قبل موزيلا.
Marionette هو برنامج التشغيل الجديد الذي يأتي مع Firefox. برنامج التشغيل هذا له بروتوكول خاص به ، وهو غير متوافق مع بروتوكول Selenium / WebDriver.
Geckodriver هو خادم تطبيق يقوم بتنفيذ بروتوكول Selenium / WebDriver. يترجم أوامر Selenium ويعيد توجيهها إلى سائق Marionette.
فارق بسيط مهم ، بعد تثبيت "geckodriver" ، من الضروري وصف مسارات النظام بحيث يتم العثور على "geckodriver" عند تنفيذ env.rb.
- بعد ذلك ، يبقى فقط كتابة اختبار تجريبي وتشغيله على Chrome و Firefox وبدون متصفح :). على سبيل المثال ، سنكتب بضع خطوات لإدخال بريد mail.ru
وصف الخطوات # encoding: UTF-8 # language: ru Given(/^ "(.*?)"$/) do |page| visit page end Given(/^ "(.*?)" c id "(.*?)"$/) do |text, field_id| find("//input[@id='#{field_id}']").set(text) end Given(/^ "(.*?)" id "(.*?)"$/) do |text, select_id| find("//select[@id='#{select_id}']/option[text()='#{text}']").click end Given(/^ "(.*?)"$/) do |text| find("//input[@value='#{text}']").click end Given(/^ (\d+) (?:|)$/) do |sec| sleep sec.to_i end
- وكذلك اختبار الخيار نفسه
اختبار الميزة # encoding: UTF-8 # language: ru : : "https://mail.ru/" "dorian.grey.2019" c id "mailbox:login" "********" c id "mailbox:password" "@inbox.ru" id "mailbox:domain" "" 5
- يبقى فقط للتحقق من جميع جهودنا والاستمتاع بالتشغيل الناجح لاختبارات واجهة المستخدم (في المثال 1 من الاختبار) :). الإعداد الأخير المتبقي هو إعداد التشغيل التجريبي. اذهب إلى القائمة RubyMine -> Edit Configurations -> Runner Options - هنا نختار فقط برنامج التشغيل :)
ENV ['DRIVER'] من env.rb هذا هو إعداد التشغيل. ونحتاج فقط إلى تحديد "DRIVER = firefox" أو "DRIVER = chrome" في خيارات العداء.
أطلقنا

هذا كل شيء ، اختبارات الخيار الناجحة لك!