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

Фотография

Свойства multitestcase


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

#1 VegaX

VegaX

    Активный участник

  • Members
  • PipPip
  • 85 сообщений

Отправлено 06 апреля 2006 - 14:04

Я тут столкнулся с одной проблемкой.

Есть набор тестов, которы должны быть выполнены последовательно. Все данные для них загружаются с внешнего файла для одно прохода и соответсвенно с нескольких для нескольких проходов. Нужно сделать для них первоначальную инициализацию и подключить к тест плану.

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

А теперь проблема. При запуске multitestcase не установлен агент (это логично) и чтобы запустить его надо инициализировать. Все хорошо инициализуруется и выполняется, правда почемуто уходит файл результатов. Он по непонятной мне причине записуестя в некоректном формате и не может быть в последствии открыт Силк Тест 6.5 (соответственно нельзя просмотреть логи). И как я заметитл после выполнения теста создается открытый файл Тест.jou. как решить эту проблему?
Заранее благодарен.
  • 0

#2 KaNoN

KaNoN

    АЦЦКИЙ СОТОНА

  • Members
  • PipPipPipPipPipPip
  • 1 260 сообщений
  • ФИО:Колесник Николай
  • Город:Днепропетровск > Киев > Лондон

Отправлено 06 апреля 2006 - 15:41

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

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

Вообще, такую проблему можно решить некоторой управляющей функцией (например main), которая может сделать нужную инициализацию и запустить тесткейсы в нужной последовательности (testcase - это такая же функция, но она не может быть запущена из testcase-а или multitestcase-а).

P.S. А можно ли тестовые данные загнать в одну таблицу и прогнать скрипты используя Data-Driven механизм? Может это может помочь?
  • 0

#3 VegaX

VegaX

    Активный участник

  • Members
  • PipPip
  • 85 сообщений

Отправлено 06 апреля 2006 - 16:13

Использование функции было бы прекрасно. Но насколько я знаю ее нельзя присоединить к тест плану. Относительно main - то она не совсем подходит, т.к. ей нельзя передавать параметры извне (та же проблема и с тест сьютом).

Я конечно понимаю, что multitestcase предназначен для не совсем этих целей. Но по крайней мере она позволяет вызвать несколько обычных testcase. Да и проблема не в этом, а в том что Силк при таком подходе сохраняет в некоректом формате результирующий файл. Есть подозрение, что он просто его не закрывает и не формирует, а оставляет промежуточный результат.

Вот я и интересуюсь, может кто стыкался с такой проблемой. Меня интересует именно файл результата. Может ему еще какие установки надо сделать?

Если это не поможет - то прийдется пойти другим путем... - переделать все тест кейзы что будут использоватся в функции, и сделать дополнительный набор тесткейзов, что будут просто перенаправлять к этим функциям (правда прийдется еще поигратся с appstate). И тогда можно будет не использовать multitestcase. Этот выход не очень нравится, т.к. удвоится количество глобальных названий.
  • 0

#4 KaNoN

KaNoN

    АЦЦКИЙ СОТОНА

  • Members
  • PipPipPipPipPipPip
  • 1 260 сообщений
  • ФИО:Колесник Николай
  • Город:Днепропетровск > Киев > Лондон

Отправлено 06 апреля 2006 - 16:30

В тесткейс можно передать параметры извне. Вот например:
[-] testcase tc_Params( STRING sValue) appstate none
	[ ] Print(sValue)
[ ] 
[-] main()
	[ ] tc_Params("Hello")

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

Если не трудно, то выдай каркасс, то есть тот участок кода, который определяет конструкцию multitestcase-a и его подсоединение к тестплану, чтоб глянуть, как ты это реализовал. А то так не совсем понятно
  • 0

#5 VegaX

VegaX

    Активный участник

  • Members
  • PipPip
  • 85 сообщений

Отправлено 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)

  • 0

#6 VegaX

VegaX

    Активный участник

  • Members
  • PipPip
  • 85 сообщений

Отправлено 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)


Весело, но работает! :smile:
Причем т.к. multitest не является мулти тест кейзом - то локальный хост подключен. т.е. не надо производить Connect("(local)")! :dirol:

Завтра буду проверять стабильность. Правда с дебагом с тест плана немного сложно будет - функция multitest среди списка тест кейзов на запуск не числится.
  • 0

#7 KaNoN

KaNoN

    АЦЦКИЙ СОТОНА

  • Members
  • PipPipPipPipPipPip
  • 1 260 сообщений
  • ФИО:Колесник Николай
  • Город:Днепропетровск > Киев > Лондон

Отправлено 06 апреля 2006 - 17:22

Судя по всему подобные управляемые конструкции все-таки следует организовать внутри некоторой функции. То есть тестпланы не трогать вообще.

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

#8 KaNoN

KaNoN

    АЦЦКИЙ СОТОНА

  • Members
  • PipPipPipPipPipPip
  • 1 260 сообщений
  • ФИО:Колесник Николай
  • Город:Днепропетровск > Киев > Лондон

Отправлено 06 апреля 2006 - 17:27

Весело, но работает! 
Причем т.к. multitest не является мулти тест кейзом - то локальный хост подключен. т.е. не надо производить Connect("(local)")! 

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

#9 VegaX

VegaX

    Активный участник

  • Members
  • PipPip
  • 85 сообщений

Отправлено 07 апреля 2006 - 10:10

KaNoN спасибо за дельные советы :dirol:
  • 0

#10 KaNoN

KaNoN

    АЦЦКИЙ СОТОНА

  • Members
  • PipPipPipPipPipPip
  • 1 260 сообщений
  • ФИО:Колесник Николай
  • Город:Днепропетровск > Киев > Лондон

Отправлено 07 апреля 2006 - 11:14

KaNoN спасибо за дельные советы

Не за что. :dirol: Я сам сейчас мультитесткейсы колупаю и группирую тесткейсы для последовательного и програмно управляемого запуска. Так что нам немного даже по пути
  • 0


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

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