Зачем тестировщику-автоматизатору учить теорию? Может быть достаточно освоить какой-нибудь популярный инструмент, например, Selenium или TestComplete? Выучить какой-нибудь язык программирования, например, Java или Python? И никакая теория не нужна.

Но подождите! Раз уж зашла речь о программировании ("выучить какой-нибудь язык") -- давайте посмотрим, как там обстоят дела с теорией.

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

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

Выступление Игоря Хрола на онлайн-конференции Selen ConfeT&QA

UI-автотесты не отличаются высокой надёжностью. Где-то может не хватать синхронизации и тесты будут «падать» время от времени просто так. Или фокус «слетел» и кнопка не нажалась. Эти и другие случаи зачастую делают результаты автотестов непредсказуемыми и не вызвающими доверия.

В докладе хотелось бы поделиться опытом того, как пожертвовав целью 100%-но точной эмуляции действий пользователя, можно добиться надёжных и воспроизводимых результатов от Selenium-тестов. Разговор будет основан на опыте использования данной идеи на одном из проектов, а также будут даны общие рекомендации, применимые для широкой аудитории.

Что такое Selenium? Это программируемый драйвер браузера. Что? Ничего непонятно?

Тогда посмотрите вот этот небольшой ролик, записанный Алексеем Баранцевым в процессе подготовки тренинга "Selenium: стартовый уровень".

Посмотреть информацию о полной линейке тренингов по Selenium

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

На многих наших тренингах с домашними заданиями (программирование для тестировщиков на 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. Процесс установки для других операционных систем может несколько отличаться.

{tortags,133,1}

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

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

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

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

Автор: Игорь Хрол.

Оригинальная публикация

В этой заметке речь пойдёт о новой библиотеке в open-source. Называется она Webium. Сразу дам ссылки:

Когда в Wargaming'e мы переходили с Java на Python выяснилось, что в Python-стэке не хватает хороших PageObject-реализаций. Везде были какие-то нюансы. Поэтому собравшись с духом написали практически порт HtmlElements (http://htmlelements.qatools.ru/), но на Python.

Про принцип работы я уже писал в блоге: http://ru.khroliz.com/2014/06/python-webdriver-webelement.html Сейчас же мы выпилили из нашего общего фреймворка отдельную библиотеку для этих целей и поделились со всеми.

Переписывать документацию не очень бы хотелось в этом посте. Для SeleniumCamp'2015 я нарисовал неплохую презентацию возможностей Webium'a. Код, представленный в презентации, находится на GitHub'e (https://github.com/wgnet/webium/tree/master/examples).

Приятно, что уже поступают отзывы на Webium. Так что пишите в комментариях, или ещё лучше - делайте Pull Request'ы.

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