Статьи

Тестирование в облаке с использованием SauceLabs

Любой разработчик, знакомый с процессом тестирования, согласится, что это чистое зло. В традиционной настройке тестирование требует настройки новых сред на каждом шагу, который в лучшем случае используется спорадически. Не только большая часть ваших ресурсов по большей части простаивает, но и занимает много времени. Для большинства из нас тестирование является некритическим видом деятельности. Но это абсолютно необходимо, если только вы не хотите встретить своих клиентов красными.

Сегодня мир разработки программного обеспечения вступил в популярную облачную среду, и все воспринимается как услуга. К сожалению, эти преимущества редко передаются на сторону тестирования. Ну, не больше. В этой статье я собираюсь показать вам, как настроить инфраструктуру тестирования в облаке с помощью SauceLabs .

Что такое инфраструктура тестирования?

Давайте предположим, что вы строите следующую Амазонку. Вы наняли несколько замечательных разработчиков, и перед тем, как перейти к мейнстриму, вы можете проверить, как он работает в разных операционных системах, браузерах и разрешениях. Нам также необходимо проверить, сколько параллельных транзакций может обработать ваше приложение, прежде чем оно превратится в следующий IRCTC и утонет. Очевидно, вам понадобится какая-то инфраструктура для поддержки вашей команды. Это называется инфраструктурой тестирования.

Обычно вам необходимо закупать несколько систем в зависимости от ваших потребностей и настраивать каждую из них в соответствии с выбранными вами условиями работы. Для нагрузочного тестирования вам даже понадобится установить еще более мощную и дорогую систему, которая эффективно имитирует ваш главный сервер. Очевидно, что это будет стоить, что не представляется возможным для небольшой организации.

Другая проблема заключается в том, что тестирование не является задачей с полной занятостью. Требуется только в случае каких-либо изменений в производстве или условиях эксплуатации. В других случаях ваша столица просто сидит в комнате с кондиционером. Затраты растут, и даже до того, как вы поймете, у вас не будет денег, чтобы сосредоточиться на других важных задачах.

Когда появились облачные вычисления, началось много дискуссий о переносе инфраструктуры тестирования в облако. Идея состоит в том, чтобы достичь эффективности, отделив вашу команду тестирования от инфраструктуры тестирования. Когда вы настраиваете свою инфраструктуру тестирования в облаке, это делает две вещи — это устраняет необходимость в предварительной версии Cap-Ex и позволяет вам гибко масштабировать / сокращать ваши операции по требованию, эффективно используя ваши ресурсы. , Это также эффективно устраняет головную боль от необходимости индивидуальной настройки каждой системы. К сожалению, это еще не все розы. Есть много сомнений в целостности данных и безопасности в облаке, которые могут легко отвлечь любого от перехода.

SauceLabs

SauceLabs — это кросс-браузерный инструмент автоматизации, созданный на основе известного веб-драйвера Selenium. Для тех из нас, кто не знает, что такое Selenium: «Это технология, которая позволяет программистам отправлять команды в веб-браузеры, чтобы они выполняли задачи как хотя они были использованы человеком. В этом смысле это похоже на робота для просмотра веб-страниц », — цитирует их сайт. По сути, Selenium дает вам возможность автоматически тестировать свои страницы в браузерах с помощью тестовых сценариев. Затем сервер Selenium (установленный локально) дает указание вашим браузерам (с включенными расширениями Selenium) протестировать ваше приложение. Однако установить и управлять полным пакетом Selenium очень сложно, особенно если вы поддерживаете кросс-браузерную поддержку. Вам также придется столкнуться с основными сбоями оборудования и кошмарами обслуживания.

SauceLabs был разработан теми же парнями из Selenium, что и решение этой проблемы. SauceLabs заботится о настройке среды тестирования, только на этот раз установка находится на их облачных серверах. Затем мы можем подключиться к этим машинам практически из любого места, используя любой браузер. Думайте о SauceLabs как о контейнере с вашей средой тестирования, к которой вы можете получить доступ через Интернет. Теперь мы свободны от всех проблем, связанных с конфигурацией, и мы можем сосредоточиться на том, что действительно имеет значение. Конечно, как и в любой облачной установке, вы можете запускать дополнительные экземпляры по требованию и даже запускать параллельные тесты.

Начиная

После того, как вы зарегистрируетесь в SauceLabs, вы получите 200 бесплатных минут тестирования, после чего вам придется заплатить небольшую плату, чтобы продолжить пользоваться сервисом. Зайдя на панель администратора, вы можете настроить тестовую среду, просто щелкнув по маленькому значку указателя.

После настройки SauceLabs на вашем компьютере вы можете подключиться к веб-приложению для дальнейшего тестирования. Стоит отметить одну интересную вещь: все браузеры поставляются с предустановленными инструментами разработчика, которые помогут вам отладить проблемы на лету. Вы можете перемещаться по своему приложению и проверять его на функциональные и нефункциональные проблемы. SauceLabs позволяет немедленно выявлять ошибки прямо из инструмента. Он автоматически загружает скриншот страницы с ошибкой и видео, показывающее, как добраться до страницы. Это должно устранить любую двусмысленность, если таковая имеется во время устранения проблемы. Он также генерирует журнал в стиле Selenium, который позже пригодится. Панель инструментов также предоставляет вам красочный, всесторонний обзор того, что происходит с вашими сценариями тестирования, чтобы ваши менеджеры были довольны.

Автоматизируйте свой путь в

Ручное тестирование является излишним, трудоемким и скучным. Selenium предлагает мощный набор тестов для автоматизации вашего тестирования. Самое приятное, что вам не нужно ограничивать себя языком, на котором разрабатывается приложение. Фактически вы можете написать свои тестовые сценарии на любом языке программирования, на котором вам удобно. В этом уроке мы будем использовать Ruby. В этом руководстве предполагается, что на вашем компьютере установлена ​​рабочая копия Ruby.

Давайте сначала уберем зависимости с нашего пути

gem install selenium-webdriver

Теперь мы напишем базовый фрагмент, чтобы проверить, работает ли поиск в CloudSpring.com. Имейте под рукой ключ доступа.

 require 'rubygems'
 require 'selenium-webdriver'</code>

caps = Selenium::WebDriver::Remote::Capabilities.firefox

caps[:name] = "Learning SauceLabs- CloudSpring"

driver=Selenium::WebDriver.for(
 :remote,
 :url => "http://saucelabs_username:[email protected]:80/wd/hub",
 :desired_capabilities => caps)

driver.navigate.to "http://CloudSpring.com"

element = driver.find_element(:xpath, "(//input[@name='s'])")
 element.send_keys "A newbie's guide to Amazon EC2"
 element.submit

puts "Yay! Search works."
 puts driver.title

driver.quit

Сохраните этот файл как test.rb и выполните его

 ruby test.rb

Ваш результат должен напоминать это

Пройдите к приборной панели, и вы найдете журнал испытаний. В нем перечислены шаги, которые следует выполнить, и даже показано видео о том, как выполнялся скрипт.

Код, который мы написали, не требует пояснений (и совершенно бесполезен, заметьте), но для краткости позвольте нам сделать небольшой обход.

 caps = Selenium::WebDriver::Remote::Capabilities.firefox
 caps[:name] = "Learning SauceLabs- CloudSpring"

driver=Selenium::WebDriver.for(
 :remote,
 :url => "http://saucelabs_username:[email protected]:80/wd/hub",
 :desired_capabilities => caps)

Возможность — это то, что определяет область действия вашего сценария. Здесь вы определяете свою исполняющую среду, такую ​​как операционная система, браузер и даже версия. SauceLabs настраивает вашу виртуальную машину на основе этого. WebDriver отделяет, где выполняются тесты, от того, где находится TI, или в этом случае браузер. Он подключается к вашей виртуальной машине и начинает выполнение в установленной вами среде. Это где SauceLabs делает нашу жизнь намного проще. Мы просто указываем, какой браузер должен работать над сценарием, и он заботится об установке и прочем. Нам не нужно поднимать другой палец без необходимости.

 driver.navigate.to "http://CloudSpring.com"

Теперь мы даем указание браузеру перейти к URL-адресу, по которому вы хотите провести тестирование. Ваш объект драйвера теперь будет иметь всю страницу.

 element = driver.find_element(:xpath, "(//input[@name='s'])")
 element.send_keys "A newbie's guide to Amazon EC2"
 element.submit

Find_element () пересекает DOM на основе параметров, которые мы передаем. Я прошу браузер найти поле ввода с именем ‘s’ и передать ему строку поиска.

Примечание автора. По сути, мы пишем те же самые старые сценарии Selenium и используем SauceLabs в качестве платформы для его выполнения. Если вы уже написали какие-либо сценарии селена, они должны работать так же. Для тех из нас, кто не знаком с Selenium или не может понять, как работает WebDriver, загрузите расширение Selenium IDE для Firefox, и вы сможете создавать свои тестовые сценарии непосредственно из самого браузера.

В сценариях реального времени мы будем использовать методы verify .. () или assert .. () для проверки сценариев. Но так как эта статья посвящена тому, как перенести ваши тестовые сценарии в облако, я рисую линию здесь.

Проблемы безопасности

Многие люди избегают Облака только потому, что считают его небезопасным. Это просто миф, но это обсуждение другого дня. Чтобы развеять такие сомнения, что у вас может быть команда в SauceLabs, используется новый подход — безопасность через чистоту. Они заверяют вас, что однажды использованная облачная виртуальная машина полностью уничтожена со всеми данными и не перераспределена никому другому. Иметь пул конфиденциальных данных для тестирования. Ладно, нет. Они предлагают безопасный сервис под названием SauceConnect, чтобы предотвратить любую утечку данных. Преодолев первый барьер, я настоятельно рекомендую вам воспользоваться этой замечательной технологией.

Завершение

Тестирование в облаке, особенно для стартапов, предлагает огромный выбор вещей. Вам не нужно платить пенни авансом, и вы платите за то, что используете, а не тратите ресурсы. А с SauceLabs все ваши тестовые сценарии автоматически регистрируются, что устраняет необходимость ручного вмешательства. Конечно, мы только что поцарапали поверхность сегодня, и нам предстоит пройти долгий путь, прежде чем ваше приложение может быть полностью протестировано в облаке. Мы надеемся исправить это в будущих статьях.

Что бы вы хотели, чтобы мы осветили здесь в будущем? Не стесняйтесь присоединиться к нам в обсуждении и сообщить нам о своих мыслях. Спасибо за чтение и следите за обновлениями.