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

Фотография

Изменение результатов тестирования


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

#1 filipok

filipok

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

  • Members
  • Pip
  • 40 сообщений

Отправлено 07 декабря 2010 - 13:16

Здравствуйте люди.

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

Как это можно сделать?
Пользуюсь Selenium + testNG + Java

Как вывести данную информацию в HTML отчёт я вроде как разобрался (по крайней мере я так думаю) но как добавить нужную информацию к результатам пока что не знаю (но я в процессе)
  • 0

#2 stmark

stmark

    Опытный участник

  • Members
  • PipPipPipPip
  • 404 сообщений
  • ФИО:Докучаев Сергей
  • Город:Ярославль


Отправлено 07 декабря 2010 - 13:32

1. Какую именно информацию хотите добавить?
2. Каким образом сейчас выводите информацию в отчет?
3. Какие именно сложности в выводе дополнительной информации?
4. Что такое log4j и как им пользоваться Вам известно?
  • 0

#3 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 07 декабря 2010 - 13:45

Как вывести данную информацию в HTML отчёт я вроде как разобрался (по крайней мере я так думаю) но как добавить нужную информацию к результатам пока что не знаю (но я в процессе)

Не очень понятно, что значит "добавить к результатам", уточните, где именно Вы хотите видеть эту дополнительную информацию.
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#4 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 07 декабря 2010 - 13:47

4. Что такое log4j и как им пользоваться Вам известно?

Это сложный путь, чтобы эта информация попала в отчёты, надо делать собственный генератор.
Канонический для TestNG способ -- использование org.testng.Reporter:
Reporter.log("Дополнительная информация");

  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#5 filipok

filipok

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

  • Members
  • Pip
  • 40 сообщений

Отправлено 07 декабря 2010 - 14:41

Ух как быстро наотвечали, я надеялся максимум к завтрашнему.
Ок
Дополняю свой вопрос.

Имеем тестовые классы с тестовым методом. Тестовые данные хранятся в XLS документе в виде таблиц с данными. Для каждого тестового сценария там выделена отдельная вкладка.
Каждый тестовый класс обладает информацией к какой вкладке обратиться.

Необходимо информацию об этой вкладке отобразить в отчёте. В нашем случае это "emailable-report.html".
Нужно это для удобства, что бы оператор при использовании тестов в случае ошибки сразу наглядно видел к какой вкладке стоит обратиться. Ещё необходимо напротив каждой строки с данными в отчёте отображать номер этой строки из файла с тестовыми данными - грубо говоря номер тестового случая.

Пока что понял что для модернизации отчёта надо переопределить метод
private void resultDetail(IResultMap tests, final String style)
в классе "EmailableReporter"

Но вот как добавить эти данные в отчёт я не знаю. Пока что ковыряюсь с "TestListenerAdapter" но как то мне не очень нравиться этот способ (чем дальше в лес тем больше дров)
  • 0

#6 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 07 декабря 2010 - 14:48

Каждый тестовый класс обладает информацией к какой вкладке обратиться.

Вот это ключевой момент -- как именно эта информация представлена?
Кто обладает информацией, которую Вы хотите добавить к результатам (названия вкладок, номера строк)?
Хочется понять механизм того, как данные из Excel-файла попадают в тесты.
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#7 filipok

filipok

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

  • Members
  • Pip
  • 40 сообщений

Отправлено 07 декабря 2010 - 15:15


Каждый тестовый класс обладает информацией к какой вкладке обратиться.

Вот это ключевой момент -- как именно эта информация представлена?
Кто обладает информацией, которую Вы хотите добавить к результатам (названия вкладок, номера строк)?
Хочется понять механизм того, как данные из Excel-файла попадают в тесты.

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

#8 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 07 декабря 2010 - 15:32

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

Отлично! Именно это я и хотел услышать. Добавьте в сигнатуру тестовых методов ещё пару служебных параметров -- название вкладки и номер строки, и передавайте их вместе со всеми остальными данными из провайдера, так они тоже станут "тестовыми данными".
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#9 filipok

filipok

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

  • Members
  • Pip
  • 40 сообщений

Отправлено 07 декабря 2010 - 16:16


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

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

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

#10 OVA

OVA

    Опытный участник

  • Members
  • PipPipPipPip
  • 405 сообщений
  • ФИО:Высоцкий Сергей Павлович
  • Город:Новосибирск

Отправлено 07 декабря 2010 - 16:47

Прекрасный класс Reporter (TestNG) никак не подходит?
  • 0

#11 filipok

filipok

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

  • Members
  • Pip
  • 40 сообщений

Отправлено 07 декабря 2010 - 17:03

Прекрасный класс Reporter (TestNG) никак не подходит?

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

Если есть кому что добавить буду рад помощи.
  • 0

#12 OVA

OVA

    Опытный участник

  • Members
  • PipPipPipPip
  • 405 сообщений
  • ФИО:Высоцкий Сергей Павлович
  • Город:Новосибирск

Отправлено 07 декабря 2010 - 17:15

Так класс репортер и используется для того чтобы запихивать левые сообщения в отчет от TestNG.
Вот в этом отчете поковыряйтесь, там есть примеры таких выводов в отчет сгенеренный TestNG: http://reportng.unco...mple/index.html

То есть в общем-то мысль тут уже озвучена вами была - переписать маму всех тестов так чтобы она получала нужные данные и складывала в лог. То есть вы же написали что тестовый класс информацией о вкладке обладает. Дальше вопрос насколько в вашем случае возможно дергать нужные нам методы в конструкторе.
  • 0

#13 filipok

filipok

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

  • Members
  • Pip
  • 40 сообщений

Отправлено 07 декабря 2010 - 21:11

Так класс репортер и используется для того чтобы запихивать левые сообщения в отчет от TestNG.
Вот в этом отчете поковыряйтесь, там есть примеры таких выводов в отчет сгенеренный TestNG: http://reportng.unco...mple/index.html

То есть в общем-то мысль тут уже озвучена вами была - переписать маму всех тестов так чтобы она получала нужные данные и складывала в лог. То есть вы же написали что тестовый класс информацией о вкладке обладает. Дальше вопрос насколько в вашем случае возможно дергать нужные нам методы в конструкторе.

если честно то не совсем уловил мысль вашу, за ссылку спасибо, поковыряюсь.

Просто на сколько я понял репортер только генерирует отчёт, нужно только переписать нужную нам реализацию интерфейса IReporter. Но он берёт данные из контекста, опять же как я понял, но что бы их оттудова взять их туда надо положить во время выполнения тестовых сценариев. Вот этот момент меня и интересует. Складыванием данных вроде занимается ITestListenerAdapter, но я в этом не уверен, да и как правильно сделать не знаю, так что бы по фентшую (тяготы выбора правильного решения изложил в посте 11)


Кажется понял про какой репортер речь. Но он же вроде просто для логгирования а мне надо отчёт формировать на основе моих данных - отчёт который отображается в файле "emailable-report.html". А логгирование это отдельная тема, оно у меня тоже используется для вывода дополнительной информации к отчёту - чаще нужно для отладки тестов. Я же не могу записать в отчёт какие то определённые данные в переменную с определённым именем при помощи него. Или я вас всё-таки не правильно понял?
  • 0

#14 OVA

OVA

    Опытный участник

  • Members
  • PipPipPipPip
  • 405 сообщений
  • ФИО:Высоцкий Сергей Павлович
  • Город:Новосибирск

Отправлено 08 декабря 2010 - 03:04

Ну можно записать данные с HTML разметкой, например, а потом CSS'ками сделать красиво. Или парсить. Тут в общем-то мысль простая - на входе пихаем нужные данные в отчет под видом логов, а на выходе делаем с этими данными красиво. Лог-то с репортера в отчет и так и так попадет.
  • 0

#15 filipok

filipok

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

  • Members
  • Pip
  • 40 сообщений

Отправлено 08 декабря 2010 - 06:27

Ну можно записать данные с HTML разметкой, например, а потом CSS'ками сделать красиво. Или парсить. Тут в общем-то мысль простая - на входе пихаем нужные данные в отчет под видом логов, а на выходе делаем с этими данными красиво. Лог-то с репортера в отчет и так и так попадет.

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

#16 OVA

OVA

    Опытный участник

  • Members
  • PipPipPipPip
  • 405 сообщений
  • ФИО:Высоцкий Сергей Павлович
  • Город:Новосибирск

Отправлено 08 декабря 2010 - 07:24

Ну я как бы просто предлагаю брать IReporter, например, и править правила генерации отчетов так, чтобы сообщения из логов правильно маркированные не попадали в лог, а складывались куда нам нужно в отчете.
Листенеры они скорее для отображения прогресса в реальном времени.
  • 0

#17 filipok

filipok

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

  • Members
  • Pip
  • 40 сообщений

Отправлено 08 декабря 2010 - 07:51

Ну я как бы просто предлагаю брать IReporter, например, и править правила генерации отчетов так, чтобы сообщения из логов правильно маркированные не попадали в лог, а складывались куда нам нужно в отчете.
Листенеры они скорее для отображения прогресса в реальном времени.

да понятное дело, спасибо, но если честно такой подход мне напоминает какой то костыль, мне всё таки импонирует вариант заморочиться с контекстом, тока как туда добраться пока что не могу понять
  • 0

#18 OVA

OVA

    Опытный участник

  • Members
  • PipPipPipPip
  • 405 сообщений
  • ФИО:Высоцкий Сергей Павлович
  • Город:Новосибирск

Отправлено 08 декабря 2010 - 08:06

Ну он простой и дешевый.
Просто пока получается что в сигнатуру никак, да и вообще до запуска тестов мы данные которые нам нужны получить не можем (ну кроме названий тестовых методов). В принципе можно попробовать проапдейтить ITestResult чтобы он нам в результатах помимо Success/Failure/Skip выдавал бы еще и информацию о вкладке. Но пока мне такие способы видятся несколько трудоемкими - одно значение надо корректно протащить через все практически.

ЗЫ: Можно еще в IAttributes поковыряться.
  • 0

#19 filipok

filipok

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

  • Members
  • Pip
  • 40 сообщений

Отправлено 08 декабря 2010 - 08:44

ЗЫ: Можно еще в IAttributes поковыряться.


ды вот к нему и склоняюся, но если честно ума не дам как всё это провернуть. Вроде как всё там есть что надо, можно завести нужную переменную, но как достучаться не знаю 8(
  • 0

#20 OVA

OVA

    Опытный участник

  • Members
  • PipPipPipPip
  • 405 сообщений
  • ФИО:Высоцкий Сергей Павлович
  • Город:Новосибирск

Отправлено 08 декабря 2010 - 08:54

Откуда до него достучаться?
  • 0


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

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