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

Фотография

Тестирование Delphi приложения с помощью QTP


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

#1 kimplin

kimplin

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

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Vadim

Отправлено 01 декабря 2011 - 08:24

Добрый день.
Столкнулись со следующей проблемой при организации тестирования стороннего приложения на Delphi с помощью QTP.
Поставщик согласился перекомпилировать код с add-in для QTP.
Доступа к исходным кодам нету, соответственно верим поставщику на слово.
Далее создаю обычный проект:
1. Прописываю стартовый скрипт, который запускает приложение так чтобы появилась форма ошибки пароля.
2. Нажимаю запись скрипта и кликаю на кнопке этой формы.
3. Получаю событие DelphiWindow("DelphiWindow").DelphiButton("ОК").Click
4. Теперь пытаюсь проиграть полученный скрипт, получаю ошибку
Unspecified error
Line (1): "DelphiWindow("DelphiWindow").DelphiButton("ОК").Click".

Что не так? Как определить, распознался объект или нет?

PS: Альтернативу QTP не рассматриваем. Знаю, что TC нормально работает с Delphi без перекомпиляции, даже пробовал с тем же приложением - все нормально. Но нужна интеграция с QC, кроме того QTP куплен на компанию, а добиться покупки TC - нереально.
  • 0

#2 Zenturio

Zenturio

    Опытный участник

  • Members
  • PipPipPipPip
  • 386 сообщений
  • ФИО:Дмитрий
  • Город:Смоленск - Москва


Отправлено 01 декабря 2011 - 11:28

Распознался или нет объект можно определить, найдя его в репозитории и нажав кнопочку подсветить. Если объект подстветится, то нашла, иначе нет...
Кстати нужно добавить активате для окна перед клик
  • 0

#3 kimplin

kimplin

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

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Vadim

Отправлено 01 декабря 2011 - 12:48

Activate добавлял - не помогает, падает тогда на Activate.
Из репозитария подсвечивается, т.е. видимо распознается.
  • 0

#4 ch_ip

ch_ip

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

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


Отправлено 01 декабря 2011 - 12:56

Версия QTP, OS?
Вполне возможно, нужен какой-нибудь патч, который решает эту проблему.
Само окно он находит?
"DelphiWindow("DelphiWindow").Exist(0)
что вернет?
  • 0

#5 kimplin

kimplin

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

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Vadim

Отправлено 01 декабря 2011 - 13:31

Microsoft Windows XP [Version 5.1.2600]
QTP Version 11.00.0.0 Build 1018

Версия QTP, OS?
Вполне возможно, нужен какой-нибудь патч, который решает эту проблему.
Само окно он находит?

"DelphiWindow("DelphiWindow").Exist(0)
что вернет?


Object doesn't support this property or method: 'DelphiWindow(...).Exist'
Line (1): "DelphiWindow("DelphiWindow").Exist(0)".

На всякий случай приложение - Диасофт.
  • 0

#6 Zenturio

Zenturio

    Опытный участник

  • Members
  • PipPipPipPip
  • 386 сообщений
  • ФИО:Дмитрий
  • Город:Смоленск - Москва


Отправлено 01 декабря 2011 - 14:00

Диас это жесть. Там полно кастомных контролов
Пришлите картинку с OBJECTsPY - свойства вашего окна
Какие свойства у вашего окна и определяется ли оно вообще как окно.
Какой объект ваше окно - окно или диалог...
  • 0

#7 kimplin

kimplin

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

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Vadim

Отправлено 01 декабря 2011 - 14:11

Собственно пока тренируюсь на этом окошке.
Проблемы наблюдаются со всеми контроллами.

"Class Name:=DelphiWindow",
"abs_x:=271",
"abs_y:=199",
"delphi_name:=",
"enabled:=True",
"focused:=False",
"foreground:=True",
"hasborder:=True",
"hascaption:=True",
"hashscroll:=False",
"hassizebox:=False",
"hassystemmenu:=True",
"hasvscroll:=False",
"height:=112",
"hscrollpagesize:=",
"hscrollposition:=",
"hwnd:=3213966",
"is child window:=False",
"is owned window:=True",
"ismdichildwindow:=False",
"ispopupwindow:=True",
"istoolwindow:=False",
"leftscrollbar:=False",
"maxhscrollpos:=",
"maximizable:=False",
"maximized:=False",
"maxvscrollpos:=",
"minhscrollpos:=",
"minimizable:=False",
"minimized:=False",
"minvscrollpos:=",
"nativeclass:=TForm",
"regexpwndclass:=TForm",
"regexpwndtitle:=Ошибка",
"rightaligned:=False",
"righttoleftlayout:=False",
"righttoleftreading:=False",
"testobjgentype:=window",
"text:=Ошибка",
"topmost:=False",
"visible:=True",
"vscrollpagesize:=",
"vscrollposition:=",
"width:=383",
"window id:=0",
"windowextendedstyle:=65793",
"windowstyle:=-1765277696",
"x:=271",
"y:=199"

Прикрепленные файлы

  • Прикрепленный файл  error.png   4,66К   13 Количество загрузок:

  • 0

#8 Zenturio

Zenturio

    Опытный участник

  • Members
  • PipPipPipPip
  • 386 сообщений
  • ФИО:Дмитрий
  • Город:Смоленск - Москва


Отправлено 01 декабря 2011 - 15:57

Собственно пока тренируюсь на этом окошке.
Проблемы наблюдаются со всеми контроллами.

"Class Name:=DelphiWindow",
"text:=Ошибка",

Что даст команда window("text:=Ошибка").exist, для данного окна можно работать без делфи

Сообщение отредактировал ch_ip: 01 декабря 2011 - 22:05
Оверквотинг! Дмитрий, повторно прошу избегать чрезмерного цитирования. Это сильно затрудняет просмотр темы

  • 0

#9 kimplin

kimplin

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

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Vadim

Отправлено 02 декабря 2011 - 06:59

Что даст команда window("text:=Ошибка").exist, для данного окна можно работать без делфи


MsgBox window("text:=Ошибка").Exist

выдает True,

DelphiWindow("DelphiWindow").Exist
кстати тоже True, я просто видимо не понял как команду в скрипт засунуть, поставил MsgBox для вывода результата и получил нормальное значение.
Но DelphiWindow("DelphiWindow").Activate по прежнему падает с ошибкой.
  • 0

#10 Zenturio

Zenturio

    Опытный участник

  • Members
  • PipPipPipPip
  • 386 сообщений
  • ФИО:Дмитрий
  • Город:Смоленск - Москва


Отправлено 02 декабря 2011 - 11:46


Что даст команда window("text:=Ошибка").exist, для данного окна можно работать без делфи


MsgBox window("text:=Ошибка").Exist

выдает True,

DelphiWindow("DelphiWindow").Exist
кстати тоже True, я просто видимо не понял как команду в скрипт засунуть, поставил MsgBox для вывода результата и получил нормальное значение.
Но DelphiWindow("DelphiWindow").Activate по прежнему падает с ошибкой.

window("text:=Ошибка").Activate работает?
  • 0

#11 kimplin

kimplin

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

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Vadim

Отправлено 02 декабря 2011 - 14:31

window("text:=Ошибка").Activate работает?


Да, работает. Не сообразил сразу проверить.
  • 0

#12 Zenturio

Zenturio

    Опытный участник

  • Members
  • PipPipPipPip
  • 386 сообщений
  • ФИО:Дмитрий
  • Город:Смоленск - Москва


Отправлено 03 декабря 2011 - 17:12


window("text:=Ошибка").Activate работает?


Да, работает. Не сообразил сразу проверить.

Ну значит так и обращайтесь. Дело в том, что в Диасе много кастомных контролов. Не всегда нужно обращаться к свойствам
  • 0

#13 kimplin

kimplin

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

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Vadim

Отправлено 05 декабря 2011 - 11:17

Ну значит так и обращайтесь. Дело в том, что в Диасе много кастомных контролов. Не всегда нужно обращаться к свойствам


Хм, это совсем не вариант. Теряется весь смысл использования тула. Т.е. резюмируя, QTP не заставить распозновать Delphi объекты от Диасофта. Либо Delphi не такой, либо QTP.
  • 0

#14 Zenturio

Zenturio

    Опытный участник

  • Members
  • PipPipPipPip
  • 386 сообщений
  • ФИО:Дмитрий
  • Город:Смоленск - Москва


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

Вы начните с меню диасофта. Распознает ли элементы меню, запишется ли скрипт, который потом выберет соотв. пункт меню. Если нет, то смысла нету...
  • 0


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

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