AT.info ПОСИДЕЛКИ  vKontakte   facebook группа  
Более 400 человек высказали все мнение. Какое твое?
view counter
Все мы разные и все мы имеем разный опыт работы. Какой он?
view counter
Очень хочется узнать его. Форум ждет тебя!
view counter
Dream Test Framework. Log viewer (Часть 1)

Предыдущая часть

Давайте за чем-нибудь следить! :-)

Пора приступить к реализации подсистем "тестового фреймворка моей мечты"!

Можно начать с довольно интересной подсистемы - Log viewer, которая может украсить любой фреймворк, но почему-то не украшает известные мне готовые решения.

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

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

Log viewer нужен для:

  • слежения за:
    • лог файлами тестируемой системы,
    • файлами тестировочного окружения;
  • в случае появления сообщения об ошибке - передать это в test framework (даже если тест прошёл без ошибок, наличие ошибок надо отслеживать);
  • сохранить и выдать в test framework все сообщения, которые появились во время выполнения теста (эта информация может очень помочь во время анализа результатов непрошедшего теста).

Log viewer должен уметь:

  • постоянно следить за лог файлом и оперативно реагировать на сообщения;
  • работать одновременно с более чем одним лог файлом;
  • иметь возможность указать директорию для того, чтобы следить за всеми вложенными лог файлами;
  • обрабатывать ситуацию, когда лог файл изначально не нулевого размера;
  • обрабатывать ситуацию, когда лог отсутствует;
  • обрабатывать ситуацию, когда лог создаётся во время тест кейса;
  • обрабатывать определённые уровни логов (ERROR, WARN, INFO, ...) и иметь возможность гибко настраивать анализатор сообщений;
  • пропускать определённые записи для определённых тест кейсов (иногда проще указать это в конфигурации теста, чем убедить программистов изменить уровень записи в логе).

Как вы помните, мы решили начать делать тестовый фреймворк на Питоне как open source проект.

Вот и его реализация:

Название файлаОписание
logViewerProperties.pyфайл с параметрами и настройками log viewer_а
logViewerManager.pyкласс, который создаёт и управляет потоками, которые непостредственно и следят за лог файлами
logViewer.pyкласс, который непостредственно следит за логами

Диаграмма классов:

logViewerClassDiagram

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

В общем, если это Вам интересно, то:

  • смело используйте идею, реализацию (см. "источники");
  • давайте идеи по улучшению, реализации и использованию;

Продолжение следует!

© 2009-2010 Портал для автоматизаторов тестирования ПО
Автор проекта Поляруш Михаил | При использовании материалов ссылка на www.automated-testing.info обязательна.
Все замечания и пожелания присылайте на webmaster@automated-testing.info.
продажа рабочих перчаток . строительство хамама, обеспечим полный цикл работ.
Яндекс.Метрика