Свойства multitestcase
#1
Отправлено 06 апреля 2006 - 14:04
Есть набор тестов, которы должны быть выполнены последовательно. Все данные для них загружаются с внешнего файла для одно прохода и соответсвенно с нескольких для нескольких проходов. Нужно сделать для них первоначальную инициализацию и подключить к тест плану.
Было принято решение использовать multitestcase как функцию которая подключается к плану и может выполнить дополнительную инициализацию, а также имеет возможность работать с параметрами.
А теперь проблема. При запуске multitestcase не установлен агент (это логично) и чтобы запустить его надо инициализировать. Все хорошо инициализуруется и выполняется, правда почемуто уходит файл результатов. Он по непонятной мне причине записуестя в некоректном формате и не может быть в последствии открыт Силк Тест 6.5 (соответственно нельзя просмотреть логи). И как я заметитл после выполнения теста создается открытый файл Тест.jou. как решить эту проблему?
Заранее благодарен.
#2
Отправлено 06 апреля 2006 - 15:41
multitestcase вообще-то предназначена для запуска некоторого сценария на нескольких машинах. То есть целесообразность использования данной функции здесь мне не понятна.Было принято решение использовать multitestcase как функцию которая подключается к плану и может выполнить дополнительную инициализацию, а также имеет возможность работать с параметрами.
Вообще, такую проблему можно решить некоторой управляющей функцией (например main), которая может сделать нужную инициализацию и запустить тесткейсы в нужной последовательности (testcase - это такая же функция, но она не может быть запущена из testcase-а или multitestcase-а).
P.S. А можно ли тестовые данные загнать в одну таблицу и прогнать скрипты используя Data-Driven механизм? Может это может помочь?
#3
Отправлено 06 апреля 2006 - 16:13
Я конечно понимаю, что multitestcase предназначен для не совсем этих целей. Но по крайней мере она позволяет вызвать несколько обычных testcase. Да и проблема не в этом, а в том что Силк при таком подходе сохраняет в некоректом формате результирующий файл. Есть подозрение, что он просто его не закрывает и не формирует, а оставляет промежуточный результат.
Вот я и интересуюсь, может кто стыкался с такой проблемой. Меня интересует именно файл результата. Может ему еще какие установки надо сделать?
Если это не поможет - то прийдется пойти другим путем... - переделать все тест кейзы что будут использоватся в функции, и сделать дополнительный набор тесткейзов, что будут просто перенаправлять к этим функциям (правда прийдется еще поигратся с appstate). И тогда можно будет не использовать multitestcase. Этот выход не очень нравится, т.к. удвоится количество глобальных названий.
#4
Отправлено 06 апреля 2006 - 16:30
[-] testcase tc_Params( STRING sValue) appstate none [ ] Print(sValue) [ ] [-] main() [ ] tc_Params("Hello")
А отчеты могут коряво генерироваться из-за того, что запуск тестплана фактически аналогичен отдельному запуску тесткейсов, которые к этому тестплану подключены. Может в этом кроется вся неприятность.
Если не трудно, то выдай каркасс, то есть тот участок кода, который определяет конструкцию multitestcase-a и его подсоединение к тестплану, чтоб глянуть, как ты это реализовал. А то так не совсем понятно
#5
Отправлено 06 апреля 2006 - 17:06
Предлагаю общую конструкцию.
Тест план
[-] Test [ ] script: script.t [ ] testcase: multitest [ ] testdata: "FileName.fn"
Тест кейз
[-] multitestcase multitest(STRING sDataFile) [ ] //Init default machine [ ] Connect("(local)") [ ] //prepare data for test [ ] RECORD r1 = GetRecordForTest1(sDataFile) [ ] RECORD r2 = GetRecordForTest2(sDataFile) [ ] Testcase1(r1) [ ] Testcase1(r2)
#6
Отправлено 06 апреля 2006 - 17:15
Тест план
[-] Test [ ] script: script.t [ ] testcase: multitest [ ] testdata: "FileName.fn"
Тест кейз
//обьявляем как функцию
[-] VOID multitest(STRING sDataFile)
[ ] //prepare data for test
[ ] RECORD r1 = GetRecordForTest1(sDataFile)
[ ] RECORD r2 = GetRecordForTest2(sDataFile)
[ ] Testcase1(r1)
[ ] Testcase1(r2)
Весело, но работает!
Причем т.к. multitest не является мулти тест кейзом - то локальный хост подключен. т.е. не надо производить Connect("(local)")!
Завтра буду проверять стабильность. Правда с дебагом с тест плана немного сложно будет - функция multitest среди списка тест кейзов на запуск не числится.
#7
Отправлено 06 апреля 2006 - 17:22
Или же, внутренние тесткейсы сделать обычными функциями с параметрами (убрать ключевое слово testcase и добавить параметр либо имя файла с данными либо сами данные). И уже запускать их, запаянными в общий тесткейс. Так реализуются встроенные тесткейсы. В таком случае полезно перехватывать исключения, так как при падении одного тесткейса, может упасть весь тестсьют. Ну это как вариант.
#8
Отправлено 06 апреля 2006 - 17:27
Логично. multitestcase как раз расчитан на то, что запуск будет производиться на тех машинах, к которым будет открыто соединение. При этом участие локальной машины необязательно. Поэтому и разница в поведении такая.Весело, но работает!
Причем т.к. multitest не является мулти тест кейзом - то локальный хост подключен. т.е. не надо производить Connect("(local)")!
#9
Отправлено 07 апреля 2006 - 10:10
#10
Отправлено 07 апреля 2006 - 11:14
Не за что. Я сам сейчас мультитесткейсы колупаю и группирую тесткейсы для последовательного и програмно управляемого запуска. Так что нам немного даже по путиKaNoN спасибо за дельные советы
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных