На самом деле Ruby так же используют не только в веб-разработке, но и в тестировании веб-приложений/софта.
На Хабр-Карьера за минуту можно найти такие вакансии:
Собственно сподвигло меня написать данную серию статей нехватка материала на русском языке по этому направлению.
Мне нравится использовать Ruby в целом, кроме того, я просто хочу иметь ссылку для себя в будущем и чтобы поделиться с другими.
Темы всей серии статей
Ruby
Selenium
RSpec
Capybara
Авторская pdf-шпаргалка по HTML
CSS
Основные понятия QA-Тестирования
Docker
Git
Начинать мы будем только со знанием синтаксиса и самого языка Ruby. Постепенно набирая скиллы в свое "резюме". В конце каждой части, эти самые скиллы будут скапливаться в конце, в спойлере "Коробка скиллов по завершению данной части.".
Ruby.
Основы синтаксиса даются легко, дальше будет сложнее, но более понятно, так как язык является высокоуровневым и его девиз: "Лучший друг программиста!". Что под собой несет некоторые выводы:
Многие известные инструменты распространяются на Ruby.
Синтаксис приближен к простому языку.
Разработка на Ruby доставляет удовольствие и не съедает много времени на решение обычных-стандартных задач.
Как по-мне синтаксис и основы языка можно изучить за 0.5-1 месяц, используя бесплатные ресурсы в Интернете.
Примеры таковых:
RubyRush - изучение языка на практике с нуля, бесплатно.
YouTube - так как коммьюнити в России небольшое, курсов на ютубе немного, но все же они есть и среди них достаточно качественного материала.
Selenium.
Начало работы с Selenium.
Почему?
Selenium-WebDriver - по моему мнению один из самых мощных инструментов, которые я использовал для тестирования веб-серверов через браузер и автоматизации любых повторяющихся задач в веб-приложениях
Selenium и Ruby - отличный способ автоматизации тестирования веб-приложений. Отладка также упрощается, потому что вы можете видеть, как скрипт запускается в браузере шаг за шагом.
Как использовать Selenium с Ruby?
Я объясню, как запустить Selenium с помощью базового скрипта Ruby. Эта настройка будет независима от какой-либо платформы. Все, что требуется, это:
Веб-браузер, который может подключаться к Selenium. (Мой выбор Firefox)
Ruby Gem для Selenium.
Ruby на ПК.
Я хочу иметь простой скрипт, который можно было бы использовать практически в любой среде(Mac/Linux/Windows), в которой могут работать Ruby, Selenium и Firefox.
Стартуем?
Убедитесь, что у вас установлена последняя версия Ruby.
rvm install ruby-3.1.0
Устанавливаем Selenium-Webdriver gem.
gem install selenium-webdriver
Веб-браузер FireFox
Большинство версий Firefox будут поддерживать Selenium. Версия Firefox, используемая в этих статьях: 46.0.1 (она может меняться, взависимости от части)
Первый шаг: проверка соединения
Я всегда хочу провести простой тест, чтобы убедиться, что каждый компонент может связываться друг с другом. Здесь мы хотим убедиться, что скрипт Ruby может загрузить библиотеку Selenium и запустить Firefox.
4.1.0 :001 > require 'selenium-webdriver'
=> true
4.1.0 :002 > browser = Selenium::WebDriver.for :firefox
=> #<Selenium::WebDriver::Driver:0x..f96ee1c90b443ac24 browser=:firefox>
Советы по решению проблем, если Firefox не запускается:
Проверьте список проблем в Github-репозитории Selenium.
Уточните не стоит ли у вас Selenium WebDriver 4.0.1 (у меня с ним возникали проблемы). Обновитесь до последней версии (4.1.0).
Попробуйте использовать более старую версию Firefox, если приведенный выше скрипт не работает.
Заметка. если Firefox не установлен, будет выдано:
browser = Selenium::WebDriver.for :firefox
Selenium::WebDriver::Error::WebDriverError: Could not find Firefox
binary (os=macosx).
Make sure Firefox is installed or set the path manually with
Selenium::WebDriver::Firefox::Binary.path=
Второй шаг: загружаем веб-страницу посредствам Selenium
Следующий наиболее важный шаг - сообщить браузеру (программно), как загрузить веб-адрес, чтобы он мог перейти на сайт. Есть много способов сделать это, но обычно я делаю это так: после запуска браузера выполните следующие команды.
4.1.0 :004 > browser
=> #<Selenium::WebDriver::Driver:0xf0cec284e895d64 browser=:firefox>
4.1.0 :005 > browser.navigate.to 'http://https://habr.com/ru/publication/new'
=> ""
Советы по решению проблем, если адрес не загрузился:
Убедитесь, что браузер запущен. Если окно браузера было закрыто случайно, перезапустите его, инициализировав другой экземпляр:
4.1.0 :006 > browser2 = Selenium::WebDriver.for :firefox
=> #<Selenium::WebDriver::Driver:0xe0ced172e885e32 browser=:firefox>
4.1.0 :007 > browser2.navigate.to 'http://https://rubyrush.ru/'
Чтобы статья не была перегруженной, я разделил материал на несколько статей с погружением в QA Ruby.
Сейчас весь текстовый материал готов, подготавливается красивое оформление статей и пару интересных вставок в них.
Что стоит ждать во второй статье:
Больше советов по решению проблем, если адрес не загрузился.
Как выбрать элементы на сайте.
Выбор элементов, которые связанны при помощи тэга ID.
Дополнение: Советы по решению проблем, если выбор по идентификатору не работаетВыбор элементов по их классу.
Выбор элементов по "Xpath".
Моя красивая pdf-шпаргалка по HTML, для быстрого ориентирования по элементам.
Продолжение следует...
Коробка скиллов по завершению данного этапа.
Ruby - Youtube/RubyRush
Git - YouTube
SQLite - RubyRush
Данила Кравченко
Ruby-разработчик / Ведущий RubyDigest на habr.com