Добрый день.
На 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 результатов не выдал.

HP QTP и подключение библиотек
Автор pevman, 15 июл 2011 05:41
Сообщений в теме: 2
#1
Отправлено 15 июля 2011 - 05:41
#2
Отправлено 15 июля 2011 - 10:12
Добрый день.
Проблема в описании действий recovery scenario
Там жестко прописаны пути до библиотеки.
Как можно указать библиотеку без пути?
Еще если в сценариях использовать туже библиотеку, что и в тесте, то при срабатывании сценария тест останавливается с ошибкой двойного декларирования.
Это так и должно быть?
Для сценариев надо писать свои библиотеки?
Проблема в описании действий recovery scenario
Там жестко прописаны пути до библиотеки.
Как можно указать библиотеку без пути?
Еще если в сценариях использовать туже библиотеку, что и в тесте, то при срабатывании сценария тест останавливается с ошибкой двойного декларирования.
Это так и должно быть?
Для сценариев надо писать свои библиотеки?
#3
Отправлено 18 июля 2011 - 21:44
С областями видимости в QTP ничего не понятно, поэтому лучше с этим поаккуратнее. С приведенной проблемой Dim можно бороться несколькими способами:Добрый день.
Проблема в описании действий recovery scenario
Там жестко прописаны пути до библиотеки.
Как можно указать библиотеку без пути?
Еще если в сценариях использовать туже библиотеку, что и в тесте, то при срабатывании сценария тест останавливается с ошибкой двойного декларирования.
Это так и должно быть?
Для сценариев надо писать свои библиотеки?
1) Не использовать Dim вообще. Если нужно расширить область видимости - использовать вместо 'Dim strVar' что-то вроде 'strVar=""'. Это просто, но опасно.
2) Оборачивать исполняющийся код библиотек в инклюд-гарды. У нас это глобальный, всегда определенный массив со списком уже заинклюженных библиотек, определенная в каждой библиотеке уникальная константа, которая добавляется в этот массив в самом начале исполнения библиотеки, и функция SafeInclude, которая не исполняет запрошенную библиотеку, если ее константа присутствует в массиве или если эта библиотека присутствует в списке подключенных библиотек в свойствах текущего теста.
3) В библиотеках определять классы, а непосредственно в коде уже создавать экземпляры объектов. Опционально с этим использовать singleton, чтобы всегда иметь не больше одного объекта нужного класса. В таком случае можно будет безопасно инклюдить любую библиотеку сколько угодно раз (кроме бесконечного числа).
4) Писать для сценариев отдельную библиотеку, использующую только гарантированно уже подключенные библиотеки.
У нас используется комбинация этого всего, особых проблем не имеем.
Рекомендую написать-таки менеджер библиотек, чтобы упростить себе жизнь при разростании фреймворка.
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных