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

Фотография

Организация скриптов


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

#1 Cirrus

Cirrus

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

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

Отправлено 01 ноября 2007 - 11:16

Привет

Создал проект, создался Unit1 test-script...в нем у меня тестируется куча диалогов...т.е. для каждого диалога своя функция. Есть main в которой они все последовательно вызываются. Но когда их запускаешь, то Log формируется один. Как сделать чтобы для каждой фукнции был свой Log. Из документации не смог понять или не туда смотрел.
  • 0

#2 Genka

Genka

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 328 сообщений
  • ФИО:Геннадий Алпаев
  • Город:Украина, Днепр


Отправлено 01 ноября 2007 - 11:23

Запускать все функции по отдельности или организовать их запуск с помощью TestItems.

Хотя мне, например, удобнее делать так, как вы, но при этом в начале каждой функции открывается новая ветка в дереве лога.
Я пришел в ТестКомплит из СилкТеста, и мне привычнее использовать понятие Тесткейс. Вот каждая функция, которая тестирует определенный функционал, у меня называется тесткейс. А лог выглядит вот так примерно

Прикрепленные файлы

  • Прикрепленный файл  my_log.JPG   46,51К   102 Количество загрузок:

  • 0

TestComplete для начинающих (видеозаписи курса)

Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)

Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest


#3 Cirrus

Cirrus

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

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

Отправлено 01 ноября 2007 - 11:34

Запускать все функции по отдельности или организовать их запуск с помощью TestItems.

Хотя мне, например, удобнее делать так, как вы, но при этом в начале каждой функции открывается новая ветка в дереве лога.
Я пришел в ТестКомплит из СилкТеста, и мне привычнее использовать понятие Тесткейс. Вот каждая функция, которая тестирует определенный функционал, у меня называется тесткейс. А лог выглядит вот так примерно


Круто...т.е. у вас один лог файл создается, но просто все разбито на части в нем. А как так сделать ? =)
И вообще можно ли сделать чтобы результаты писались в какой-нить файл типа txt, чтобы его потом посмотреть можно было, ну или в WEB как-нибудь.
  • 0

#4 ArtemRudenko

ArtemRudenko

    Постоянный участник

  • Members
  • PipPipPip
  • 248 сообщений
  • ФИО:Руденко Артем Михайлович
  • Город:Минск


Отправлено 01 ноября 2007 - 11:51

nFolderID = Log["CreateFolder"](Text);
Log["PushLogFolder"](nFolderID);
.... вызов функций
Log["PopLogFolder"]();

Все сообщения, которые будут появляться в ходе выполнения скрипта/функции, будут записываться внутри одного элемента лога, который будет называться в соответствии с 'Text'.
Посмотрите по хелпу более подробно.

Сделать так, чтобы в файл записывалось - просто посмотрите работу с FileSystemObject.
Если вы запустите в TestExecutor свой скрипт тогда у вас на выходе будет файл лога *.mht - просматриваемый в браузере, а вообще, насколько фантазии хватит, можно куда угодно и что угодно.
  • 0
И всё-таки она вертится...

#5 Den_BOLV

Den_BOLV

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

  • Members
  • Pip
  • 32 сообщений
  • ФИО:Васильченко Денис Петрович


Отправлено 01 ноября 2007 - 11:54

hi,

я дебажные записи пишу в свой дебаг-лог (txt).
Не так сложно написать функцию и вызывать ее вместо тесткомплитовской Log.Message.
Если надо, могу запостить код..
  • 0

#6 ArtemRudenko

ArtemRudenko

    Постоянный участник

  • Members
  • PipPipPip
  • 248 сообщений
  • ФИО:Руденко Артем Михайлович
  • Город:Минск


Отправлено 01 ноября 2007 - 11:59

С использованием описанной выше конструкции можно сделать так, чтобы был один глобальный каталог для скрипта, внутри которого находятся каталоги для каждого выполняемого тест кейса, в свою очередь в каждом тест кейсе расположены каталоги выполняемых шагов/функций, которые содержат уже всякого рода простые сообщения. Благодаря такой декомпозиции достаточно легко определить тест-кейс, шаг, набор данных и точную причину падения скрипта - либо ошибки в приложении - всё зависит от задуманного.
  • 0
И всё-таки она вертится...

#7 Cirrus

Cirrus

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

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

Отправлено 01 ноября 2007 - 12:53

Запускать все функции по отдельности или организовать их запуск с помощью TestItems.

Хотя мне, например, удобнее делать так, как вы, но при этом в начале каждой функции открывается новая ветка в дереве лога.
Я пришел в ТестКомплит из СилкТеста, и мне привычнее использовать понятие Тесткейс. Вот каждая функция, которая тестирует определенный функционал, у меня называется тесткейс. А лог выглядит вот так примерно


Расскажешь как ты сделал структуру и лог как в Силке ?
  • 0

#8 Genka

Genka

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 328 сообщений
  • ФИО:Геннадий Алпаев
  • Город:Украина, Днепр


Отправлено 01 ноября 2007 - 13:09

Расскажешь как ты сделал структуру и лог как в Силке ?


а я и не говорил, что я так сделал. Я сказал, что мне ближе понятие Тесткейс. Поэтому у меня функции-тесткейсы начинаются с префикса TC_ , и в логах написано "Starting testcase", хъотя в понятиях ТестКомплита нет такого понятия. Есть функции, есть Test Item'ы, а тесткейсов нету.

Есть функции StartTestcase/EndTestcase, Step/EndStep и т.п., каждая из которых соответственно открывает/закрывает новую ноду в логе. Поэтому все, чтол происходит, скажем, в шаге номер 3, будет попадать в соответствую ноду. Потом открываешь результаты и видишь, ага, первые три шага прошли успешно, а в третьем ошибка. Тут же видим описание этого шага (типа нажать кнопку ОК - окно закроется). Открываем этот шаг и видим, что у нас после нажатия кнопки ОК появилось неизвестное окно. Ну и так далее.

А делать лог как в силке - это бред. Если что есть плохого в СилкТесте, так это формат и вид лога. ТестКомплит в этом плане гораздо красивее, продуманнее, навороченнее, удобнее.
  • 0

TestComplete для начинающих (видеозаписи курса)

Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)

Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest


#9 Cirrus

Cirrus

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

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

Отправлено 01 ноября 2007 - 13:36

Расскажешь как ты сделал структуру и лог как в Силке ?


Есть функции StartTestcase/EndTestcase, Step/EndStep и т.п., каждая из которых соответственно открывает/закрывает новую ноду в логе. Поэтому все, чтол происходит, скажем, в шаге номер 3, будет попадать в соответствую ноду. Потом открываешь результаты и видишь, ага, первые три шага прошли успешно, а в третьем ошибка. Тут же видим описание этого шага (типа нажать кнопку ОК - окно закроется). Открываем этот шаг и видим, что у нас после нажатия кнопки ОК появилось неизвестное окно. Ну и так далее.


Так а как Ноды создать в логе ? Это программно делать надо ? Чтобы отдельная фукнция писалась в свою ветку? Чтобы в output каши не было и сразу все было понятно что произошло. У тебя вроде очень продуманно все сделано.
  • 0

#10 clock

clock

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

  • Members
  • Pip
  • 8 сообщений
  • ФИО:Andrey

Отправлено 01 ноября 2007 - 13:40

Я отказался от использования тесткомплитовского лога очень давно, после того, как обнаружил очень неприятную особенность: если TestComplete по какой-то причине зависнет (а такое у меня бывает периодически во время длительных тестов) то лог полностью пропадает. Я начинал с версии 4.31, сейчас работаю в 5.14, но лог по-прежнему пропадает при нестандартных ситуациях.
Поэтому я написал собственную функцию, которая пишет лог во нешний txt-файл, причем файл закрывается после каждой записи, поэтому зависание не грозит потерей информации.
Кроме того, во-первых, собственная функция позволяет настроить форматы вывода более гибко, во-вторых, из этой функции можно параллельно писать те же сообщения и в стандартный лог (на всякий случай), в-третьих, txt-файл можно без проблем прочитать на любом другом компьютере, на котором нет среды TestComplete.
Если хочется структурировать лог, можно аналогично создавать папки и файлы с любыми именами, писать туда отдельные записи для каждого тест-кейса и т.д.
  • 0

#11 ArtemRudenko

ArtemRudenko

    Постоянный участник

  • Members
  • PipPipPip
  • 248 сообщений
  • ФИО:Руденко Артем Михайлович
  • Город:Минск


Отправлено 01 ноября 2007 - 13:56

Не выдержал :clapping:
  • 0
И всё-таки она вертится...

#12 AlexP

AlexP

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

  • Members
  • PipPipPipPip
  • 406 сообщений
  • Город:Санкт-Петербург

Отправлено 01 ноября 2007 - 14:00

в-третьих, txt-файл можно без проблем прочитать на любом другом компьютере, на котором нет среды TestComplete.


Для прочтения лога, TestComplete не нужен, достаточно иметь Internet Explorer (с предварительным export'ом лога) ;)
  • 0

#13 Genka

Genka

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 328 сообщений
  • ФИО:Геннадий Алпаев
  • Город:Украина, Днепр


Отправлено 01 ноября 2007 - 14:10

Так а как Ноды создать в логе ? Это программно делать надо ? Чтобы отдельная фукнция писалась в свою ветку? Чтобы в output каши не было и сразу все было понятно что произошло. У тебя вроде очень продуманно все сделано.


ArtemRudenko в своем первом ответе привел же пример на C#Script

Посмотрите в справке Log Object , там все подробно описано
  • 0

TestComplete для начинающих (видеозаписи курса)

Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)

Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest


#14 Genka

Genka

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 328 сообщений
  • ФИО:Геннадий Алпаев
  • Город:Украина, Днепр


Отправлено 01 ноября 2007 - 14:14

Я отказался от использования тесткомплитовского лога очень давно, после того, как обнаружил очень неприятную особенность: если TestComplete по какой-то причине зависнет (а такое у меня бывает периодически во время длительных тестов) то лог полностью пропадает. Я начинал с версии 4.31, сейчас работаю в 5.14, но лог по-прежнему пропадает при нестандартных ситуациях.


я решил эту проблему иначе: запускаю из командной строки не сразу все скрипты, а частями. После каждой части перегружаю ТК.
Вывод в собственный файл приходилось делать лишь во время работы с версией 4.28. Там была бага, при которой ТК просто умирал. Тихонько так, по-английски. Вот он есть, работает с инфраджистик гридом, потом хлоп - и нету его. Вообще :) После выхода версии 4.29 эта проблема не воспроизводится
  • 0

TestComplete для начинающих (видеозаписи курса)

Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)

Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest


#15 Genka

Genka

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 328 сообщений
  • ФИО:Геннадий Алпаев
  • Город:Украина, Днепр


Отправлено 01 ноября 2007 - 14:16

Для прочтения лога, TestComplete не нужен, достаточно иметь Internet Explorer (с предварительным export'ом лога) ;)


необязательно :)
есть еще LogViewer, написанный каким-то Motoo Yasui в недалеком 2005 году. Очень хорош, очень. Найти его можно в ньюсгруппе AQA. Но он требует .NET 1.1 или выше
  • 0

TestComplete для начинающих (видеозаписи курса)

Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)

Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest


#16 AlexP

AlexP

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

  • Members
  • PipPipPipPip
  • 406 сообщений
  • Город:Санкт-Петербург

Отправлено 01 ноября 2007 - 14:31

необязательно :)
есть еще LogViewer, написанный каким-то Motoo Yasui в недалеком 2005 году. Очень хорош, очень. Найти его можно в ньюсгруппе AQA. Но он требует .NET 1.1 или выше


Здесь Пошёл "ковыряться" :)
  • 0

#17 clock

clock

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

  • Members
  • Pip
  • 8 сообщений
  • ФИО:Andrey

Отправлено 01 ноября 2007 - 14:42

Для прочтения лога, TestComplete не нужен, достаточно иметь Internet Explorer (с предварительным export'ом лога) ;)


Прочитав ваш пост, я решил проверить, как работает экспорт (никогда этого не делал).
Взял для примера лог от длительного ночного теста: файл RootLog.tcLog весит порядка 150мб, тогда как этот же лог в txt-файле - 5-6мб (примерно 60 000 строк).
При попытке экспорта такого файла TestComplete напрочь повис, по крайней мере через полчаса ожидания он отожрал 1,5Гб оперативной памяти и не реагировал на внешние воздействия, пришлось убивать процесс.
Ну и при этом лог, который я пытался экспортировать, безвозвратно погиб, о чем мне сообщил TestComplete при следующем запуске.

Я может быть чего-то неправильно делаю, поэтому у меня такие огромные тесткомплитовские логи получаются?
Записи событий стараюсь где возможно отключать при помощи Log.LockEvents();
  • 0

#18 Dmitry N

Dmitry N

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 742 сообщений
  • ФИО:Николаев Дмитрий
  • Город:Где-то в России

Отправлено 01 ноября 2007 - 15:01

Здравствуйте.

Потерялся в рассуждениях, но хочу кратко описать как работает лог в TestComplete 6.

Прежде всего, в настройках лога можно включить автосохранение каждые n минут. Это, кстати, во всех версиях TestComplete'а есть.

Другая важная особенность связана именно со структурой лога. Панель лога состоит из 4х внутренних панелей, а именно: дерево лога (слева), текущий лог (Test Log), Remarks и Picture. Последние две панели показывают дополнительную информацию по элементу, который выбран в панели Test Log. Сама панель Test Log отображает тот лог, который в данный момент выбран в дереве логов в левой панели (безимянной).

Так вот, до TestComplete 6 все логи из дерева логов хранились в одном файле, что создавало некоторые проблемы, когда лог становился большим или когда TestComplete "убивался". Начиная с TestComplete 6, для каждого узла дерева логов создаётся свой файл, что решает эти проблемы.

Возникает вопрос: как заставить TestComplete создавать для каждого отдельного теста узел в дереве логов? Ответ: организовать структуру тестов с помощью Test Items. Подробнее об этом в разделе справки 'Specifying Execution Order for Tests'.

Как говорят за бугром: "this is my two cents". :)
  • 0
С уважением,
Дмитрий

#19 AlexP

AlexP

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

  • Members
  • PipPipPipPip
  • 406 сообщений
  • Город:Санкт-Петербург

Отправлено 01 ноября 2007 - 15:18

Прочитав ваш пост, я решил проверить, как работает экспорт (никогда этого не делал).
Взял для примера лог от длительного ночного теста: файл RootLog.tcLog весит порядка 150мб, тогда как этот же лог в txt-файле - 5-6мб (примерно 60 000 строк).
При попытке экспорта такого файла TestComplete напрочь повис, по крайней мере через полчаса ожидания он отожрал 1,5Гб оперативной памяти и не реагировал на внешние воздействия, пришлось убивать процесс.
Ну и при этом лог, который я пытался экспортировать, безвозвратно погиб, о чем мне сообщил TestComplete при следующем запуске.

Я может быть чего-то неправильно делаю, поэтому у меня такие огромные тесткомплитовские логи получаются?
Записи событий стараюсь где возможно отключать при помощи Log.LockEvents();


Признаюсь, таких размеров мои логи не достигают. Я, как и Genka, запускаю скрипиты частями (у меня на каждый test-case свой script unit), только не через command line, а либо непосредственно из TestComplete, либо через специальный сервис (посредством COM). После выполнения каждого test-case'а, заинтересованным людям приходит нотификация с логом. Следовательно, у меня лог в принципе не должен быть таких размеров (иначе, админы будут ругаться). Так что, Вашими проблемами пока не проникся, но на будущее буду иметь ввиду ;)

P.S. А как дела обстоят со снятием скриншотов во время теста? Логично предположить, что в txt документе хранятся "отсылки" к файлам, а сами images в отдельной папке. В таком случае, чтение такого лога затрудняется.
  • 0

#20 Cirrus

Cirrus

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

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

Отправлено 01 ноября 2007 - 15:43


Признаюсь, таких размеров мои логи не достигают. Я, как и Genka, запускаю скрипиты частями (у меня на каждый test-case свой script unit), только не через command line, а либо непосредственно из TestComplete, либо через специальный сервис (посредством COM). После выполнения каждого test-case'а, заинтересованным людям приходит нотификация с логом.


А чего это за сервис специальный ? =) мне тоже хотелось бы чтобы тесты можно было инициировать не через командную строку, а как-нить по другому. Расскажите поподробнее...мне к конечно итоге надо будет переносить мой environment на отдельную машину и, например, по какому-нибудь Scheduler'u запускать выполнение тестов =)
  • 0


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

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