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

Фотография

Проблема с вызовом функции


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

#1 Andrei82

Andrei82

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

  • Members
  • Pip
  • 12 сообщений
  • ФИО:Андрей

Отправлено 24 апреля 2007 - 11:18

Для Test1 (отдельный RunAction) написана функция function1 и помещена в файл library1.vbs. Для вызова фунукции function1 в Test1 указываем в File->Settings->Resources путь к файлу library1.vbs. Все работает.
Проблема возникает c вызовом функции , когда создаем Test2 (отдельный RunAction) и из него вызываем Test1. Выдается сообщение: “Type mismatch: "function1"”. Когда я указываю в Test2 в File->Settings->Resources путь к файлу library1.vbs, то функция отробатывает.
Как можно сделать, чтобы не указвать путь к функции для каждого теста (TestXXX), который вызвает Test1?

Используемое ПО:
Quick Test Professional 9.0
  • 0

#2 globe

globe

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

  • Members
  • PipPipPip
  • 216 сообщений
  • ФИО:Богданова Ирина
  • Город:Москва


Отправлено 25 апреля 2007 - 07:30

Там, где Вы добавляете в тест библиотеки функций, есть кнопочка "Set as Default". Если Вы на неё надавите, то следующие тесты на этом комьпютере под этим пользователем будут создаваться уже с этими библиотеками, которые были в тесте на момент нажатия кнопки.
  • 0

#3 Andrei82

Andrei82

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

  • Members
  • Pip
  • 12 сообщений
  • ФИО:Андрей

Отправлено 25 апреля 2007 - 10:22

Там, где Вы добавляете в тест библиотеки функций, есть кнопочка "Set as Default". Если Вы на неё надавите, то следующие тесты на этом комьпютере под этим пользователем будут создаваться уже с этими библиотеками, которые были в тесте на момент нажатия кнопки.

Просмотр сообщения



Спасибо.

Данный способ подходит, когда Test1 не редактируется (нет добавления новых вызовов функций (function2) из новых библиотек (library2.vbs)). Как обеспечить, чтобы Test2 (и выше) не “беспокоился”, что происходит во вложенных тестах?
  • 0

#4 globe

globe

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

  • Members
  • PipPipPip
  • 216 сообщений
  • ФИО:Богданова Ирина
  • Город:Москва


Отправлено 25 апреля 2007 - 10:24

Пишите все функции в одной библиотеки и подключайте её во все тесты :-)
  • 0

#5 Kiso Pushistiy

Kiso Pushistiy

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

  • Members
  • Pip
  • 5 сообщений
  • ФИО:Киселев Александр Борисович

Отправлено 05 сентября 2007 - 12:22

Всем доброго времени суток, продолжу вопрос первоначального оратора.

Есть: n-ое количество тестов с привязанной библиотекой функций library1, m-ое количесто с библиотекой функций library2. Всё хранится в QC.
Надо: не прибегая к стандартой привязке библиотек через resources предоставить доспуп одних к другим.

Помогите кто чем может :clapping:
  • 0

#6 ch_ip

ch_ip

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

  • Members
  • PipPipPipPipPipPip
  • 1 097 сообщений
  • ФИО:Павел Абдюшев
  • Город:Москва


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

Всем доброго времени суток, продолжу вопрос первоначального оратора.

Есть: n-ое количество тестов с привязанной библиотекой функций library1, m-ое количесто с библиотекой функций library2. Всё хранится в QC.
Надо: не прибегая к стандартой привязке библиотек через resources предоставить доспуп одних к другим.

Помогите кто чем может :acute:

Не получится :(
А чем Вам не нравится привязка библиотек через Resources?
  • 0

#7 Kiso Pushistiy

Kiso Pushistiy

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

  • Members
  • Pip
  • 5 сообщений
  • ФИО:Киселев Александр Борисович

Отправлено 11 сентября 2007 - 04:22

Спасибо за ответ, но уже получилось.
А через Resourse слишком много времени надо потратить чтобы добавить в m-ное количество скриптов модифицирующую библиотеку.
  • 0

#8 ch_ip

ch_ip

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

  • Members
  • PipPipPipPipPipPip
  • 1 097 сообщений
  • ФИО:Павел Абдюшев
  • Город:Москва


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

Спасибо за ответ, но уже получилось.
А через Resourse слишком много времени надо потратить чтобы добавить в m-ное количество скриптов модифицирующую библиотеку.

А не могли Вы написать, каким образом разрешили проблему?
Чтобы добавить библиотеки к большому количеству скриптов можно использовать QTP Automation.
  • 0

#9 Kiso Pushistiy

Kiso Pushistiy

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

  • Members
  • Pip
  • 5 сообщений
  • ФИО:Киселев Александр Борисович

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

А не могли Вы написать, каким образом разрешили проблему?
Чтобы добавить библиотеки к большому количеству скриптов можно использовать QTP Automation.


Я напишу, только немного позже, когда функция приобретет законченный вид.
А QTP Automation, вринципе тоже выход, но немножко не то, т.к. хотелось сделать что-то на подобии "include".
  • 0

#10 Luceus

Luceus

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

  • Members
  • PipPip
  • 80 сообщений
  • Город:Украина

Отправлено 11 сентября 2007 - 10:00

ch_ip, я подозреваю, что использовали функцию ExecuteFile.

Но при отладке использовать данный подход не рекомендую. Сколько много времени тратится на нее!
  • 0
Мой блог - Этот сайт закрыт.

#11 Kiso Pushistiy

Kiso Pushistiy

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

  • Members
  • Pip
  • 5 сообщений
  • ФИО:Киселев Александр Борисович

Отправлено 11 сентября 2007 - 10:24

ch_ip, я подозреваю, что использовали функцию ExecuteFile.

Но при отладке использовать данный подход не рекомендую. Сколько много времени тратится на нее!



Именно так.
Помимо ExecuteFile используются объекты QC для получения пути к файлу библиотеки.
  • 0

#12 VitMS

VitMS

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

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

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

У меня тоже проблема с вызовом функции только не из библиотеки, а как это не странно, из текущего Action-а. т.е.:
Есть Action - A1, в нём создал функцию F1, разместил в начале A1, далее она вызывается в теле A1, т.е. такого плана:
[codebox]Sub F1( P1, P2 )
...
End Sub


Call F1( 1, 2)[/codebox]

когда доходит до метса вызова, то тоже ругается, что "Type mismatch: 'F1'
Line (5): "Call F1(1,2)".
Ранее подобная стр-ра на ура, и даже намека не было, потом с какого-то праздника стала ругаться, а после чего не понял - может я что в настройках где-то похерил. Подскажите, плиз, тул для меня новый, пока осваиваю.

P.S. Функции из библиотеки вызываются, работают без проблем.
  • 0

#13 ch_ip

ch_ip

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

  • Members
  • PipPipPipPipPipPip
  • 1 097 сообщений
  • ФИО:Павел Абдюшев
  • Город:Москва


Отправлено 07 декабря 2007 - 10:59

У меня тоже проблема с вызовом функции только не из библиотеки, а как это не странно, из текущего Action-а. т.е.:
Есть Action - A1, в нём создал функцию F1, разместил в начале A1, далее она вызывается в теле A1

А не могли Вы привести именно тот код, который не работает?
Без него тяжело понять, почему не работает и что-то посоветовать, поскольку приведенная структура должна работать неззависимо от настроек.
  • 0

#14 gralex

gralex

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

  • Members
  • Pip
  • 52 сообщений
  • ФИО:Груба Алексей

Отправлено 10 декабря 2007 - 08:37

ch_ip, я подозреваю, что использовали функцию ExecuteFile.

Но при отладке использовать данный подход не рекомендую. Сколько много времени тратится на нее!



Именно так.
Помимо ExecuteFile используются объекты QC для получения пути к файлу библиотеки.


Полностью согласен с Luceus относительно головняка с отладкой функций, подключаемых через ExecuteFile. Цитата из описания функции ExecuteFile в help:
Note: You cannot debug a file that is called using an ExecuteFile statement, or any of the functions contained in the file. In addition, when debugging a test that contains an ExecuteFile statement, the execution marker may not be correctly displayed.

В общем случае отладка невозможна, можно конечно пользоваться вызовом MsgBox, но ... это не отладка, это изврат :)
  • 0

#15 VitMS

VitMS

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

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

Отправлено 12 декабря 2007 - 13:51

У меня тоже проблема с вызовом функции только не из библиотеки, а как это не странно, из текущего Action-а. т.е.:
Есть Action - A1, в нём создал функцию F1, разместил в начале A1, далее она вызывается в теле A1

А не могли Вы привести именно тот код, который не работает?
Без него тяжело понять, почему не работает и что-то посоветовать, поскольку приведенная структура должна работать неззависимо от настроек.


Могу, вот:
...Sub FillFields 	' Fill the field 'From'	Call FillField( 1 ) 	' Fill the field 'To'	Call FillField( 2 )End Sub	Call FillFields...
Причём, что самое интересное: я эту же ф-цию скопировал в другой Action (создавался раньше второго, где есть проблема) и попробовал её там вызвать - всё нормально. Может тулу не нравится, что у меня в каждом Action есть свои локальные функции и с ними надо по-иному работать? Такое поведение омрачает автоматизацию, неадекватная реакция ... :(

--Update message--
P.S. Кое-что нарыл: указанная проблема не проявляется в Action-е, если он стоит перед Action-ом, который тоже содержит свои локальные ф-ции. Т.к. поменяв местами два Action-а, получилось, что ситуация изменилась на прямопротивоположную, - где все было ОК, стала Ж, где была Ж, стало ОК. Не является ли это случайно глюком тула? Может кто подсказать? Сталкивался ли кто с этим? У меня стоит QTP 9.2.
Спасибо.

--Update message--
P.P.S.
Мой косяк - при отладке запускал не весь тест целиком, а только экшн, и при чём после описания функций :). Вот он и ругался, что не знает таких, молагая, что мол простая переменная. В случае, если требовалось дебажить 1-й экшн - запукал тест с начала.
  • 0


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

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