Уважаемые посетители ресурса habrahabr.ru! Мы хотим познакомить Вас со статьей Джереми Суареса (Jeremy Suarez), инженера по автоматизации тестирования. Если Вы планируете организовать автоматизированное тестирование на своем проекте с применением языка Ruby и WATIR – эта статья придется Вам как нельзя кстати. Джереми описывает все простым языком, на элементарных примерах. После прочтения статьи у Вас сформируется четкое понимание процесса – от его начальных шагов, до завершающего этапа.Читать полностью »
Рубрика «ruby» - 22
Автоматизация тестирования с применением Ruby и WATIR
2015-01-19 в 8:23, admin, рубрики: ruby, watir, автоматизация тестирования, Блог компании Luxoft, Тестирование IT-системTriggerable — событийно-ориентированная логика для ActiveRecord моделей
2015-01-15 в 6:34, admin, рубрики: rails, ruby, ruby on rails Одним из главных Rails-трендов в данный момент является переосмысление роли ActiveRecord-классов в приложении: отныне модели должны стать классами, отвечающими за работу с БД, а не солянкой из запросов, ассоциаций, валидаций, методов предметной области и методов представления. Несмотря на огромные модели, часть логики предметной области все равно переезжает в другие части приложения, и это сильно усложняет её понимание. Во многих приложениях много действий совершается при возникновении событий, при этом используются средства ActiveRecord::Callbacks. Данный gem — попытка переосмыслить описание бизнес-правил для ActiveRecord-моделей.
Читать полностью »
Ускоряем написание Selenium-автотестов на Ruby
2015-01-12 в 18:32, admin, рубрики: ruby, selenium-webdriver, Тестирование веб-сервисов, тестирование сайтовОдним из инструментов, позволяющих автоматизировать взаимодействие с браузером, является Selenium Webdriver. В действительности автоматизированные тесты веб-страниц с использованием Selenium Webdriver выглядят довольно громоздко. Вот «небольшой» пример, который параллельно в двух браузерах открывает страницу поисковика Google, заполняет поисковую строку и отправляет форму:
Убиваем внешние запросы во время тестирования rails приложений с помощью VCR
2014-12-21 в 18:24, admin, рубрики: rspec, ruby, ruby on rails, vcr, Веб-разработка, тестирование веб-приложений, Тестирование веб-сервисов
Совсем недавно, у меня возникла проблема заключающаяся в том, что тесты моего приложения довольно долго ходят. Это происходит в виду того, что некоторые части кода любят обращаться к сторонним сервисам вроде iTunes и Facebook.
Обращение к сторонним сервисам во время тестирования это зло по следующим причинам:
- Eсли во время исполнения тестов начинаются проблемы со связью, то они могут либо медленно проходить, либо вовсе падать.
- Как уже и писалось — довольно сильно замедляется скорость прохождения тестов.
- Возможны проблемы с ограничением числа запросов самими сервисами.
Сервис временных зон на Ruby и Postgis
2014-12-17 в 9:39, admin, рубрики: postgis, postgresql, ruby, service, timezone, Геоинформационные сервисы В одном из проектов, в которых я учавствовал, возникла задача определения временной зоны по текущей геолокации пользователя. На backend приходила запись, создаваемая пользователем с помощью смартфона. Время приходило не в UTC, но в параметрах содержались координаты.
Конечно, существуют готовые сервисы (например The Google Time Zone), но все они платные или сильно ограничены по функционалу. Вот я и решил написать собственный сервис.
Читать полностью »
Rails или Sinatra: лучшее из двух миров?
2014-12-16 в 19:36, admin, рубрики: ruby, ruby on rails, sinatra, Веб-разработка Из года в год на мир Ruby снисходило благословление – здесь появилось завидное количество фреймворков для разработки веб-приложений. Однако двое из них недавно стали явными лидерами этой сферы. Большинство читателей этого сайта наслышаны о Ruby on Rails. Он был разработан Дэвидом Хайнемайером Хенссоном в 2004 и представляет собой MVC фреймворк, который помогает повысить продуктивность и сделать при этом разработчиков счастливыми. Sinatra был создан Блейком Мизерани в 2007, является предметно-ориентированным языком (domain-specific language), который выступает обёрткой для уровня легковесных HTTP запросов и ответов поверх Rack. Его минималистичный подход изящен и элегантен. Статистика на RubyGems.org наглядно показывает, насколько популярны оба этих фреймворка: Rails был скачан 7 миллионов раз, а Sinatra – 1.5 миллиона. Именно Rails вовлёк меня в веб-разработку на Ruby, но на протяжении нескольких последних лет я гораздо чаще использовал Sinatra (и вот 7 причин, из за которых я его люблю). На поверку оказалось, что мне для построения приложения нужен лишь Sinatra вместе с несколькими гемами. Это заставило меня поразмыслить над тем, а можно ли с Sinatra осилить любой проект. Когда лучше всего использовать Sinatra, а когда наилучшим выбором будет Rails? Пытаясь найти ответ на этот вопрос, я спросил у знаменитых Ruby разработчиков, что они думают по этому поводу.
Читать полностью »
Самый простой deploy приложения на Ruby on Rails
2014-12-16 в 16:28, admin, рубрики: capistrano, capistrano 3, deploy, deployment, nginx, ruby, ruby on rails, ruby on rails 4, unicorn, Веб-разработка, Настройка Linux
Полгода назад я написал пост Deploy приложения на RoR 4 с помощью Capistrano 3. Прошло время, я получил много положительных отзывов, но были и отрицательные. Из них можно было понять следующее:
- Инструкция слишком сложная для новичка
- Очень много всего приходится делать «руками»
Я подумал и написал gem 'capistrano3-ubuntu-server-config', который полностью настраивает Ваш «чистый» Ubuntu сервер. Всё, что Вам нужно сделать руками — создать нового пользователя и дать ему права visudo (причем давать ему права на passwordless sudo ему не надо). Он может:
- Настроить SSH (Добавить настройки 'PermitRootLogin no', 'UseDNS no', 'AllowUsers username')
- Создать и настроить swap (размер запрашивается)
- Сделать
sudo apt-get update
и
sudo apt-get upgrade
- Установить из исходников и настроить как чистый Nginx, так и с модулем Pagespeed
- Установить PostgreSQL из репозитория, затем создать суперпользователя БД (имя пользователя и пароль запрашиваются)
- Установить из исходников и настроить Redis
- Установить RVM с последней версией Ruby и gem'ами Rails, Bundler
- Скопировать Ваш приватный ssh ключ (например для доступа к приватному git репозиторию) с локальной машины на сервер и добавить его в ~/.ssh/config
- Установить imagemagick из репозитория (Необходим для Paperclip, постоянно его забываю ставить)
- Установить любые дополнительные пакеты из репозитория (Запрашивает какие именно)
Можно запустить конфигурационный wizard, который узнает, что именно из вышеперечисленного необходимо сделать и заранее спросит все настройки, чтобы можно было потом пойти попить кофе, а можно запустить отдельные таски. Данный gem будет полезен не только Rails разработчикам, а всем, кто использует Capistrano для деплоя.
Эта статья раскроет следующие темы:
- Использование gem'a capistrano3-ubuntu-server-config
- Использование gem'а capistrano3-git-push
- Моя текущая миниатюрная конфигурация Capistrano
Из опыта перевода руководства по стилю оформления
2014-12-09 в 15:32, admin, рубрики: ruby, локализация, руби Здравствуйте, уважаемые читатели! Хочется представить вашему вниманию опыт перевода известного в среде разработчиков на Руби руководства по стилю оформления кода. Оригинальный текст данного руководства составляется сообществом программистов на Руби под творческим руководством Божидара Батсова.
Читать полностью »
Как мы Select2 в хелпер заворачивали
2014-12-08 в 7:22, admin, рубрики: gem, ruby, ruby on rails, select2, Веб-разработка Думаю, многие знакомы с Select2. Всё в нём замечательно: и элементы красивые, и кастомизации вагон, и c ajax работает и ещё много много полезного делать умеет. Только проблема одна: инициализация довольно громоздкая (js писать надо, экшн иметь для ajax-овой подгрузки результатов и так далее). Это было не шибко удобно и решили мы сделать свою надстройку для Select2, в которой и js писать не надо, да и за пределы вьюхи уходить почти не придётся. О том как мы это делали и что получилось читайте под катом.
Автоматизация тестирования iOS-приложений с применением Calabash и Cucumber
2014-12-05 в 8:20, admin, рубрики: iOS, ruby, автоматизация тестирования, Блог компании Mail.Ru Group, разработка под iOS, тестирование, Тестирование мобильных приложенийВ процессе разработки любого приложения наступает момент, когда в связи с ростом функциональности трудозатраты на регрессионное тестирование становятся непомерно велики. Другая причина значительной трудоемкости тестирования iOS-приложений (так же как и любых других мобильных приложений) — разнообразие линейки поддерживаемых устройств и версий ОС, необходимость тестирования в альбомном и портретном режимах, а также при различных условиях соединения с интернетом. Стремление оптимизировать процесс тестирования приводит нас к необходимости его полной или частичной автоматизации.
В этой статье я расскажу о том, как мы автоматизируем тестирование наших приложений (ICQ и Агент Mail.Ru), поделюсь нашими наработками в этой области и упомяну о проблемах, с которыми мы сталкиваемся.
Читать полностью »