Организация скриптов
#1
Отправлено 01 ноября 2007 - 11:16
Создал проект, создался Unit1 test-script...в нем у меня тестируется куча диалогов...т.е. для каждого диалога своя функция. Есть main в которой они все последовательно вызываются. Но когда их запускаешь, то Log формируется один. Как сделать чтобы для каждой фукнции был свой Log. Из документации не смог понять или не туда смотрел.
#2
Отправлено 01 ноября 2007 - 11:23
Хотя мне, например, удобнее делать так, как вы, но при этом в начале каждой функции открывается новая ветка в дереве лога.
Я пришел в ТестКомплит из СилкТеста, и мне привычнее использовать понятие Тесткейс. Вот каждая функция, которая тестирует определенный функционал, у меня называется тесткейс. А лог выглядит вот так примерно
Прикрепленные файлы
TestComplete для начинающих (видеозаписи курса)
Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)
Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest
#3
Отправлено 01 ноября 2007 - 11:34
Запускать все функции по отдельности или организовать их запуск с помощью TestItems.
Хотя мне, например, удобнее делать так, как вы, но при этом в начале каждой функции открывается новая ветка в дереве лога.
Я пришел в ТестКомплит из СилкТеста, и мне привычнее использовать понятие Тесткейс. Вот каждая функция, которая тестирует определенный функционал, у меня называется тесткейс. А лог выглядит вот так примерно
Круто...т.е. у вас один лог файл создается, но просто все разбито на части в нем. А как так сделать ? =)
И вообще можно ли сделать чтобы результаты писались в какой-нить файл типа txt, чтобы его потом посмотреть можно было, ну или в WEB как-нибудь.
#4
Отправлено 01 ноября 2007 - 11:51
Log["PushLogFolder"](nFolderID);
.... вызов функций
Log["PopLogFolder"]();
Все сообщения, которые будут появляться в ходе выполнения скрипта/функции, будут записываться внутри одного элемента лога, который будет называться в соответствии с 'Text'.
Посмотрите по хелпу более подробно.
Сделать так, чтобы в файл записывалось - просто посмотрите работу с FileSystemObject.
Если вы запустите в TestExecutor свой скрипт тогда у вас на выходе будет файл лога *.mht - просматриваемый в браузере, а вообще, насколько фантазии хватит, можно куда угодно и что угодно.
#5
Отправлено 01 ноября 2007 - 11:54
я дебажные записи пишу в свой дебаг-лог (txt).
Не так сложно написать функцию и вызывать ее вместо тесткомплитовской Log.Message.
Если надо, могу запостить код..
#6
Отправлено 01 ноября 2007 - 11:59
#7
Отправлено 01 ноября 2007 - 12:53
Запускать все функции по отдельности или организовать их запуск с помощью TestItems.
Хотя мне, например, удобнее делать так, как вы, но при этом в начале каждой функции открывается новая ветка в дереве лога.
Я пришел в ТестКомплит из СилкТеста, и мне привычнее использовать понятие Тесткейс. Вот каждая функция, которая тестирует определенный функционал, у меня называется тесткейс. А лог выглядит вот так примерно
Расскажешь как ты сделал структуру и лог как в Силке ?
#8
Отправлено 01 ноября 2007 - 13:09
Расскажешь как ты сделал структуру и лог как в Силке ?
а я и не говорил, что я так сделал. Я сказал, что мне ближе понятие Тесткейс. Поэтому у меня функции-тесткейсы начинаются с префикса TC_ , и в логах написано "Starting testcase", хъотя в понятиях ТестКомплита нет такого понятия. Есть функции, есть Test Item'ы, а тесткейсов нету.
Есть функции StartTestcase/EndTestcase, Step/EndStep и т.п., каждая из которых соответственно открывает/закрывает новую ноду в логе. Поэтому все, чтол происходит, скажем, в шаге номер 3, будет попадать в соответствую ноду. Потом открываешь результаты и видишь, ага, первые три шага прошли успешно, а в третьем ошибка. Тут же видим описание этого шага (типа нажать кнопку ОК - окно закроется). Открываем этот шаг и видим, что у нас после нажатия кнопки ОК появилось неизвестное окно. Ну и так далее.
А делать лог как в силке - это бред. Если что есть плохого в СилкТесте, так это формат и вид лога. ТестКомплит в этом плане гораздо красивее, продуманнее, навороченнее, удобнее.
TestComplete для начинающих (видеозаписи курса)
Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)
Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest
#9
Отправлено 01 ноября 2007 - 13:36
Расскажешь как ты сделал структуру и лог как в Силке ?
Есть функции StartTestcase/EndTestcase, Step/EndStep и т.п., каждая из которых соответственно открывает/закрывает новую ноду в логе. Поэтому все, чтол происходит, скажем, в шаге номер 3, будет попадать в соответствую ноду. Потом открываешь результаты и видишь, ага, первые три шага прошли успешно, а в третьем ошибка. Тут же видим описание этого шага (типа нажать кнопку ОК - окно закроется). Открываем этот шаг и видим, что у нас после нажатия кнопки ОК появилось неизвестное окно. Ну и так далее.
Так а как Ноды создать в логе ? Это программно делать надо ? Чтобы отдельная фукнция писалась в свою ветку? Чтобы в output каши не было и сразу все было понятно что произошло. У тебя вроде очень продуманно все сделано.
#10
Отправлено 01 ноября 2007 - 13:40
Поэтому я написал собственную функцию, которая пишет лог во нешний txt-файл, причем файл закрывается после каждой записи, поэтому зависание не грозит потерей информации.
Кроме того, во-первых, собственная функция позволяет настроить форматы вывода более гибко, во-вторых, из этой функции можно параллельно писать те же сообщения и в стандартный лог (на всякий случай), в-третьих, txt-файл можно без проблем прочитать на любом другом компьютере, на котором нет среды TestComplete.
Если хочется структурировать лог, можно аналогично создавать папки и файлы с любыми именами, писать туда отдельные записи для каждого тест-кейса и т.д.
#11
Отправлено 01 ноября 2007 - 13:56
#12
Отправлено 01 ноября 2007 - 14:00
в-третьих, txt-файл можно без проблем прочитать на любом другом компьютере, на котором нет среды TestComplete.
Для прочтения лога, TestComplete не нужен, достаточно иметь Internet Explorer (с предварительным export'ом лога) ;)
#13
Отправлено 01 ноября 2007 - 14:10
Так а как Ноды создать в логе ? Это программно делать надо ? Чтобы отдельная фукнция писалась в свою ветку? Чтобы в output каши не было и сразу все было понятно что произошло. У тебя вроде очень продуманно все сделано.
ArtemRudenko в своем первом ответе привел же пример на C#Script
Посмотрите в справке Log Object , там все подробно описано
TestComplete для начинающих (видеозаписи курса)
Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)
Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest
#14
Отправлено 01 ноября 2007 - 14:14
Я отказался от использования тесткомплитовского лога очень давно, после того, как обнаружил очень неприятную особенность: если TestComplete по какой-то причине зависнет (а такое у меня бывает периодически во время длительных тестов) то лог полностью пропадает. Я начинал с версии 4.31, сейчас работаю в 5.14, но лог по-прежнему пропадает при нестандартных ситуациях.
я решил эту проблему иначе: запускаю из командной строки не сразу все скрипты, а частями. После каждой части перегружаю ТК.
Вывод в собственный файл приходилось делать лишь во время работы с версией 4.28. Там была бага, при которой ТК просто умирал. Тихонько так, по-английски. Вот он есть, работает с инфраджистик гридом, потом хлоп - и нету его. Вообще :) После выхода версии 4.29 эта проблема не воспроизводится
TestComplete для начинающих (видеозаписи курса)
Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)
Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest
#15
Отправлено 01 ноября 2007 - 14:16
Для прочтения лога, TestComplete не нужен, достаточно иметь Internet Explorer (с предварительным export'ом лога) ;)
необязательно :)
есть еще LogViewer, написанный каким-то Motoo Yasui в недалеком 2005 году. Очень хорош, очень. Найти его можно в ньюсгруппе AQA. Но он требует .NET 1.1 или выше
TestComplete для начинающих (видеозаписи курса)
Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)
Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest
#17
Отправлено 01 ноября 2007 - 14:42
Для прочтения лога, TestComplete не нужен, достаточно иметь Internet Explorer (с предварительным export'ом лога) ;)
Прочитав ваш пост, я решил проверить, как работает экспорт (никогда этого не делал).
Взял для примера лог от длительного ночного теста: файл RootLog.tcLog весит порядка 150мб, тогда как этот же лог в txt-файле - 5-6мб (примерно 60 000 строк).
При попытке экспорта такого файла TestComplete напрочь повис, по крайней мере через полчаса ожидания он отожрал 1,5Гб оперативной памяти и не реагировал на внешние воздействия, пришлось убивать процесс.
Ну и при этом лог, который я пытался экспортировать, безвозвратно погиб, о чем мне сообщил TestComplete при следующем запуске.
Я может быть чего-то неправильно делаю, поэтому у меня такие огромные тесткомплитовские логи получаются?
Записи событий стараюсь где возможно отключать при помощи Log.LockEvents();
#18
Отправлено 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". :)
Дмитрий
#19
Отправлено 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 в отдельной папке. В таком случае, чтение такого лога затрудняется.
#20
Отправлено 01 ноября 2007 - 15:43
Признаюсь, таких размеров мои логи не достигают. Я, как и Genka, запускаю скрипиты частями (у меня на каждый test-case свой script unit), только не через command line, а либо непосредственно из TestComplete, либо через специальный сервис (посредством COM). После выполнения каждого test-case'а, заинтересованным людям приходит нотификация с логом.
А чего это за сервис специальный ? =) мне тоже хотелось бы чтобы тесты можно было инициировать не через командную строку, а как-нить по другому. Расскажите поподробнее...мне к конечно итоге надо будет переносить мой environment на отдельную машину и, например, по какому-нибудь Scheduler'u запускать выполнение тестов =)
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных