Интеграционное тестирование — легкая автоматизация тестирования

В моих предыдущих двух постах я рассмотрел 2 инструмента тестирования интеграции — Fitnesse и Selenium . В этой статье я расскажу о новом инструменте веб-тестирования Microsoft — Lightweight Test Automation Framework .

Упрощенная среда автоматизации тестирования похожа на Selenium — она ​​предназначена только для тестирования веб-приложений. В отличие от Selenium, здесь нет IDE для записи тестов — вы добавляете одну ссылку на ваш проект и используете специальную «страницу тестирования» для выполнения ваших тестов.

пример

Я собираюсь использовать тот же пример, что и в моем последнем посте — очень простой веб-сайт, который рассчитывает возраст пользователя на основе его года рождения и текущего года.

Для начала вам необходимо скачать облегченную платформу автоматизации тестирования. Поскольку это все еще бета-версия, вам нужно скомпилировать исходный код и ссылаться на сгенерированную сборку. Вам также необходимо скопировать папку «Test» с примера веб-сайта (входит в исходный код, а также в отдельную загрузку).

Чтобы заставить фреймворк работать с ASP .Net MVC, вам также необходимо добавить следующую строку в вашу маршрутизацию.

routes.IgnoreRoute("Test/{resource}.axd/{*pathInfo}");

Теперь написать актуальный тест. API тестирования довольно хорошо разработан и интуитивно понятен. Есть несколько методов, которые могли бы сделать это немного проще, но об этом позже.

[WebTestClass]
public class AgeCalculatorFixture
{
    [WebTestMethod]
    public void ShouldBeAbleToCalculateAge()
    {
        var page = new HtmlPage("/");

        page.Elements.Find("currentYear").SetText("2010");
        page.Elements.Find("birthYear").SetText("1983");
        page.Elements.Find("calculateButton").Click(WaitFor.Postback);

        var result = page.Elements.Find("result").GetAttributes()["value"];

        Assert.AreEqual("27", result);
    }
}

Мне особенно нравится синтаксис для ожидания обратной передачи. Для запуска теста вам нужно перейти к / Test — среда тестирования выберет любые тесты и отобразит их в сетке, где вы можете выбрать те, которые вы хотите запустить.

К сожалению, интерфейс тестирования довольно громоздок — с древовидной структурой не так легко работать, и по какой-то причине кнопки переключались, когда я выбирал / отменял выбор тестов. Несмотря на это, интерфейс работает и тесты выполняются быстро. При сравнении времени выполнения с Selenium облегченная среда автоматизации тестирования определенно быстрее (1 секунда по сравнению с 7 для Selenium). Однако Selenium запускает браузер перед запуском тестов, поэтому разница во времени, вероятно, очень мала с учетом этого. (Селен, вероятно, будет быстрее в долгосрочной перспективе, поскольку тесты могут выполняться параллельно)

Вещи, которые мне нравятся в Облегченной платформе автоматизации тестирования

  • Поддержка нескольких браузеров . Вы можете использовать практически любой браузер.
  • Обратная связь во время испытаний . Как вы можете видеть на скриншоте выше, экран разделен на 2 панели — тесты слева и веб-сайт справа. Когда тесты выполняются, вы можете видеть значения, установленные в окне браузера справа.
  • API . API выглядит довольно хорошо разработанным и, как правило, интуитивно понятным для работы. Я не пробовал все, но большинство функций, которые вы ожидаете, легко найти. Есть даже поддержка выполнения скриптов и перехода на другие страницы. Единственное , чего не хватает , что я взял это отсутствие « Valueсобственности» на HtmlElementAttributeReader класса.

Что мне не нравится в Облегченной платформе автоматизации тестирования

  • Имя . Написание «Облегченной среды автоматизации тестирования» все время очень быстро раздражает. Пожалуйста, выберите настоящее имя.
  • Отладка . В соответствии с документацией / примечаниями к выпуску, неудачные тесты должны быть отмечены красным цветом, и при нажатии на них вы должны увидеть трассировку стека неудачного теста. Это не работает — проваленные тесты не отмечены красным, и при нажатии на них нет следов стека.
  • Тестовая страница . Сама страница тестирования, безусловно, могла бы быть реализована лучше — добавление кнопки «выбрать все» и создание макета, который бы выглядел так, как будто это заняло более 2 минут, помогло бы.
  • Тестовый вывод . Помимо неработающей функциональности отладки, вывод довольно плохой. Вместо того чтобы сказать « Тестовый запуск завершен с 0 ошибками», вместо этого скажите « Тест пройден ». Кроме того, список выполняемых команд (GetPageDom, Click, FillTextBox ..) не очень полезен, если мы не видим фактические особенности (GetPageDom — currentYear, Click — submitButton…).
  • Хостинг тестов на сайте . Я обычно храню свои тесты в отдельном проекте — ASP .Net MVC даже автоматически создает проект .Testing. С помощью Lightweight Test Automation Framework нам нужно сохранить тестовые страницы на нашем веб-сайте, а примеры включают сами тесты как часть веб-сайта (я переместил свои тесты на другую сборку, но затем вам нужно сослаться на тестовую сборку с вашего веб-сайта). ). Я знаю, что вы можете исключить эти страницы при развертывании, но все равно это выглядит довольно грязно.
  • Нет автоматической поддержки сборки . Это, наверное, самая вопиющая проблема — нет простого способа включить тесты в процесс автоматической сборки.

Как улучшить облегченную платформу автоматизации тестирования

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

  • Получите автоматическую поддержку сборки . СРОЧНО. Я не могу видеть, как это используется, пока мы не сможем по-настоящему автоматизировать весь процесс. Почти каждая среда веб-тестирования поддерживает автоматизированный процесс сборки. Я понимаю, что, возможно, есть какой-то неясный способ добавить это в процесс сборки, но это должна быть встроенная функция.
  • Посмотрите на соревнования . Существует довольно много качественных сред веб-тестирования — Selenium, WatiN, Windmill и т. Д. Чтобы облегченная среда автоматизации тестирования была жизнеспособной альтернативой этим средам, должна быть определенная выгода . Если бы мне пришлось оправдывать переход от Selenium к этой структуре на моего менеджера, как бы я убедил его?
  • Дайте лучшую обратную связь при выполнении тестов . Как я уже упоминал ранее, страница тестирования разделена на 2 панели, что позволяет видеть, что тест выполняется справа. Хотя на первый взгляд это выглядит довольно аккуратно, тесты выполняются так быстро, что, если вы не используете Netscape 1.4, вы не увидите, как это происходит. Единственная выгода, которую может предложить страница тестирования, — это позволить вам пройти тест и увидеть различные шаги, происходящие на странице. Если эта функциональность не реализована, тестирование страницы будет недостатком, а не преимуществом.
  • Поддержка нескольких браузеров . Хотя облегченная среда автоматизации тестирования позволяет вам использовать любой браузер, который вы выберете, нам нужна возможность автоматически выполнять тесты в любом браузере. (Это связано с поддержкой автоматической сборки) Например, разработчики должны иметь возможность указать, что тесты должны выполняться в IE, Firefox, Safari и Chrome, и просмотреть результаты для каждого браузера.

Резюме

Lightweight Test Automation Framework — это бета-проект, направленный на автоматизированное тестирование веб-приложений. Хотя некоторые разработчики могут выбрать это в качестве альтернативы аналогичным платформам, в настоящий момент нет явного преимущества, за исключением достаточно аккуратного API. 

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

Author: admin

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *