Перейти к содержимому

Фотография

Логирование при использовании Selenium WebDriver + NUnit


  • Авторизуйтесь для ответа в теме
В теме одно сообщение

#1 demitra91

demitra91

    Новый участник

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Чугуева Наталья
  • Город:Минск

Отправлено 28 декабря 2012 - 09:15

Добрый день!

И вот написала я свои тесты на c#. Захотелось мне сделать так, чтобы каждый ход проверки логировался. Но как я ни гуглю/яндексю, все же не получается найти методику логирования или хотя бы какой-то намек.
Возникает вопрос, а есть ли в NUnit или Selenium WebDriver что-нибудь такое, что поможет мне осуществить мою мечту?
Или мне нужно использовать какую-то стороннюю библиотеку?

Подскажите, пожалуйста, может кто-то уже задавался подобным вопросом и сможет рассказать адекватный вариант?
  • 0

#2 owasp

owasp

    Активный участник

  • Members
  • PipPip
  • 87 сообщений

Отправлено 30 декабря 2012 - 19:20

BDDfy - хороший вариант.
В этом фреймворке есть три способа привязаться к тестам:
  • Attributes - указав атрибуты у модулей.
  • Method name convention - указав полное описание сути теста в имени метода.
  • Fluent API - самый гибкий вариант, так как позволяет указывать описание во время выполнения (используя его).

Например, тест выполняется с использованием Mozilla Firefox (на данной итерации). Поэтому метод Init сейчас будет инициализировать WebDriver для этого браузера. В истории это можно отразить.
[Test]
public void CardHasBeenDisabled()
{
    foreach(EnumBrowser browser in listTestBrowser)
    {
        this.Given(s => s.Init(browser), String.Format("Имеется браузер {0}", browser))
            .When(s => s.NavigateToStartPage(), "Когда осуществлён переход на стартовую страницу")
            .Then(s => s.StartPageTitleIsOK(), "Тогда заголовок страницы соответствует ожидаемому")
                .And(s => s.LoginFormIsExist(), "И форма аутентификации корректно отображена на странице")
                .And(s => s.ErrorsInLogsNotExist(), "И в логах сайта нет ошибок")
                .And(s => s.ErrorsOnPageNotExist(), "И на странице нет ошибок")
            .BDDfy();
    }
}
Обратите внимание, что текст истории параметризован в данном примере. Имя браузера (элемент перечисления, написание которого близко к оригинальному названию) передаётся в историю, конкретизируя её содержание.
И как понимаете, журнал имееет самый низкий уровень детализации. Конкретную информацию с указанием строки, в которой генерируется исключение можно найти в trx-файле, которое генерируется средой исполнения (visual studio).

Вот тут рекомендуют другой способ: http://software-test...-platform-bddfy
Но о нём узнал недавно и ещё не использовал. Собственно, то, чего нет в используемом сейчас способе - сейчас нет записи видео о прохождении теста. А в остальном, история и скриншоты есть.

Мечтаю сделать такой же способ ведения истории тестирования какой есть в Visual Studio 2012 Ultimate для нагрузочного тестирования - попробовал его на бесплатной beta версии продукта. Где ход ведения теста записывается в базу данных. Такой же подробный сбор информации есть в инструменте нагрузочного тестирования Яндекс Танк. Но это нагрузочное тестирование.
Когда текущего уровня детализации ведения журнала будет нехватать, то использую NLog или библиотеку ведения логов из Microsoft Best Practis (забыл как она называется). И можно будет сохранять историю в БД.
  • 1


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных