Устанавливаем свой маленький локальный веб-сервер

Нередко возникает ситуация, когда вам понадобился свой личный веб-сервер для тестовых целей. Например, вы выбираете баг-трекер, но публичной демо-версии нет -- надо его куда-нибудь установить, чтобы попробовать. Или вы хотите научиться пользоваться каким-нибудь инструментом для нагрузочного тестирования –- не стоит сразу "натравливать" его даже на общедоступный тестовый стенд, не говоря уж о системе, с которой работают реальные пользователи, этим вы создадите им массу проблем.

На многих наших тренингах с домашними заданиями (программирование для тестировщиков на Java, C#, Python, разного уровня сложности курсы по Selenium, курсы по тестированию производительности и защищенности веб-приложений) самым первым заданием для учеников является подготовка учебного тестового стенда, в том числе установка локального веб-сервера, на котором впоследствии разворачиваются учебные приложения.

Типовая инфраструктура для развертывания современных веб-приложений включает в себя как минимум три составных элемента:

  • интерпретатор языка программирования, на котором реализовано веб-приложение (PHP, Python, Ruby, .Net, Java, ...),
  • база данных, в которой приложение хранит данные (MySQL, Postgress, MS SQL Server, Oracle, ...),
  • веб-сервер, который принимает запросы от клиентов и перенаправляет их приложению (Apache, Nginx, IIS, ...)

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

Но есть исторически сложившаяся тройка, пользующаяся особой популярностью -- Apache + MySQL + PHP.

Для неё существуют готовые инсталляционные пакеты "три в одном", которые позволяют устанавливать компоненты не по отдельности, а все разом. Иногда эти пакеты включают также некоторые дополнительные компоненты.

Из множества подобных пакетов мы выбрали XAMPP, потому что он предлагает инсталляторы для трёх основных операционных систем -- Windows, Linux, OS X, в отличие от большинства конкурентов, ориентированных как правило только на какую-нибудь одну из платформ.

В этой инструкции будет описана установка XAMPP на операционную систему Windows. Процесс установки для других операционных систем может несколько отличаться.

Подробнее: Устанавливаем свой маленький локальный веб-сервер

Запуск Selenium-тестов в браузере Opera

Существует две принципиально разные версии браузера Opera, построенные на разных движках:

  • "старая" Opera (версии до 12), использующая оригинальный движок Presto, разработанный компанией Opera Software,
  • "новая" Opera (версии 15 и больше), построенная на основе браузера Chromium, то есть использующая движок Blink.

Соответственно, и для запуска Selenium-тестов в этих разных версиях используются совершенно разные механизмы.

Маловероятно, что кому-то сейчас ещё требуется тестировать веб-приложения в старых версиях браузера Opera, поэтому в этой статье описывается только способ запуска тестов в новых версиях Opera.

Подробнее: Запуск Selenium-тестов в браузере Opera

Быстрое создание Maven-проекта для Selenium-тестов

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

К счастью, такая возможность создания проектов из готовых шаблонов уже есть в Maven. Называются такие заготовки "архетипами", и для создания проекта из архетипа нужно использовать команду 'mvn archetype:generate', подробнее про неё можно почитать на официальной странице плагина maven-archetype-plugin

Но ведь нужен ещё шаблон, в котором уже настроены все нужные зависимости от Selenium и от тестовых фреймворков.

Есть такие шаблоны! Две штуки -- один для создания проектов, в которых используется TestNG , и второй для проектов, где используется JUnit.

Подробнее: Быстрое создание Maven-проекта для Selenium-тестов

И ещё раз о том, как "правильно" запускать браузер

Примерно раз в год я пишу статью про то, «как правильно запускать браузер» :)

Но эта, надеюсь, будет последняя в серии.

Небольшая предыстория. Давным-давно, в 2010 году на конференции SeleniumCamp я рассказывал про оптимизацию скорости выполнения тестов, и одна из первых рекомендаций была «используйте уже запущенный браузер повторно, не перезапускайте его для каждого теста заново». Потому что запуск браузера — весьма длительная и ресурсоёмкая операция. Чуть позже, уже в 2011 году, я написал первую статью, в которой я изложил «теоретические основы науки о запуске браузеров». Через год после этого появилась вторая статья, в которой описывалась конкретная реализация утилиты, управляющей запущенными браузерами. К ней, естественно, прилагался проект с программным кодом этой утилиты. Ещё через год я наконец выложил усовершенствованный вариант этой утилиты на GitHub, и вот теперь пришло время написать сопроводительную документацию.

Итак, встречайте, новая улучшенная реализация WebDriverFactory, теперь на всех экранах страны на GitHub и в центральном репозитории Maven!

Подробнее: И ещё раз о том, как "правильно" запускать браузер

WebDriver и Internet Explorer 11

Если вы уже пробовали запускать в Internet Explorer 11 тесты, разработанные с использованием Selenium WebDriver, возможно, вы столкнулись со «странными» ошибками — то браузер не запускается, то возникают исключения при открытии некоторых страниц или при переходах по ссылкам.

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

Но наконец-то появился способ обойти эту проблему!

Для этого требуется в реестре найти или создать раздел

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE

и в нём создать параметр типа DWORD с именем iexplore.exe и значением 0:

Для 64-битной версии аналогичные действия нужно проделать также с разделом 

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE

Можно также скачать готовые reg-файлы

SWD.Starter: Быстрый старт автоматизации тестирования UI на C# + Selenium WebDriver + PageObjects


Статья расскажет о том, как настроить фреймворк автоматизированного тестирования пользовательского интерфейса на языке C#, вместе с Selenium WebDriver и паттерном PageObjects.

Стартовый набор с открытым исходным кодом – SWD.Starter – поможет написать и запустить ваш первый тест в течении 10 минут. Кроме этого, предлагая архитектуру фреймворка, основанную на хороших практиках автоматизации тестирования.
Весь код SWD.Starter может быть полностью настроен под ваши задачи.

Подробнее: SWD.Starter: Быстрый старт автоматизации тестирования UI на C# + Selenium WebDriver + PageObjects

Дополнительная информация