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

Фотография

HP QTP и подключение библиотек


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

#1 pevman

pevman

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

  • Members
  • Pip
  • 2 сообщений
  • ФИО:Новичек

Отправлено 15 июля 2011 - 05:41

Добрый день.
На HP QTP 10 написаны сценарии тестирования web приложений.
Сценарий тестирования переносил несколько раз с ПК на ПК (с одной ОС на другую winxpx86 -> win 7x64 -> winxpx86) - все работало.
Сейчас скопировал на win 2003 r2 sp2 x86
В тесте указано подключение 2 библиотек (qfl).
При старте теста на первом же вызове функции из библиотек тест завершается с ошибкой
General run error.
Function file: C:\Program Files (x86)\HP\QuickTest Professional\Tests\commonLib.qfl
Line (1): "(null)".

Почему он ищет библиотеку по такому пути? В свойствах теста путь указывал явный и относительный - не помогло.
Создал новый тест и новую библиотеку, в новом тесте все подключилось без ошибок.

Если создать путь и положить библиотеку туда, где он ее пытается найти, то останавливается с ошибкой о двойном описании и библиотека по данному пути уже открывается в режиме "read-only".
Error in library file.
File: C:\Program Files (x86)\HP\QuickTest Professional\Tests\commonLib.qfl
line (1): "Dim wellName, wellType".
Description: Name redefined

Google результатов не выдал.
  • 0

#2 pevman

pevman

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

  • Members
  • Pip
  • 2 сообщений
  • ФИО:Новичек

Отправлено 15 июля 2011 - 10:12

Добрый день.
Проблема в описании действий recovery scenario
Там жестко прописаны пути до библиотеки.
Как можно указать библиотеку без пути?
Еще если в сценариях использовать туже библиотеку, что и в тесте, то при срабатывании сценария тест останавливается с ошибкой двойного декларирования.
Это так и должно быть?
Для сценариев надо писать свои библиотеки?
  • 0

#3 iFomin

iFomin

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

  • Members
  • Pip
  • 51 сообщений
  • ФИО:4min Il
  • Город:мск


Отправлено 18 июля 2011 - 21:44

Добрый день.
Проблема в описании действий recovery scenario
Там жестко прописаны пути до библиотеки.
Как можно указать библиотеку без пути?
Еще если в сценариях использовать туже библиотеку, что и в тесте, то при срабатывании сценария тест останавливается с ошибкой двойного декларирования.
Это так и должно быть?
Для сценариев надо писать свои библиотеки?

С областями видимости в QTP ничего не понятно, поэтому лучше с этим поаккуратнее. С приведенной проблемой Dim можно бороться несколькими способами:
1) Не использовать Dim вообще. Если нужно расширить область видимости - использовать вместо 'Dim strVar' что-то вроде 'strVar=""'. Это просто, но опасно.
2) Оборачивать исполняющийся код библиотек в инклюд-гарды. У нас это глобальный, всегда определенный массив со списком уже заинклюженных библиотек, определенная в каждой библиотеке уникальная константа, которая добавляется в этот массив в самом начале исполнения библиотеки, и функция SafeInclude, которая не исполняет запрошенную библиотеку, если ее константа присутствует в массиве или если эта библиотека присутствует в списке подключенных библиотек в свойствах текущего теста.
3) В библиотеках определять классы, а непосредственно в коде уже создавать экземпляры объектов. Опционально с этим использовать singleton, чтобы всегда иметь не больше одного объекта нужного класса. В таком случае можно будет безопасно инклюдить любую библиотеку сколько угодно раз (кроме бесконечного числа).
4) Писать для сценариев отдельную библиотеку, использующую только гарантированно уже подключенные библиотеки.

У нас используется комбинация этого всего, особых проблем не имеем.
Рекомендую написать-таки менеджер библиотек, чтобы упростить себе жизнь при разростании фреймворка.
  • 0


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

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