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

Фотография

Определение Web-приложения как Win:Window вместо Html:Browser


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

#1 Gaiver

Gaiver

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

  • Members
  • Pip
  • 10 сообщений
  • ФИО:Петров Сергей

Отправлено 22 апреля 2010 - 13:20

Добрый день.

Столкнулся с проблемой неправильного определения типа приложения (а также объектов).

Что было: проект по тестированию Web-приложения на Functional Tester работал без запинок.
Web-приложение в ObjectMap определялось как HTML: Browser.
Все объекты, соответственно, валидные, определись и использовались тестером.

Что стало: объекты не определяются во всём проекте => не используются => тест падает.

Ошибка из консоли:
Exception occurred during playback of script [RP_FEE.Another_Objects] [CRFCN0019E: RationalTestScriptException on line 81 of script RP_FEE.Another_Objects - java.awt.HeadlessException: null.].
Ошибка из лога:
*** FAIL 22 апреля 2010 г. 15:51:25 GMT+04:00   RP_FEE.Another_Objects.testMain had an unhandled exception.
	exception_context = click() called on GuiTestObject(Name: button_userPng, Map: userPng).
	exception_name = java.awt.HeadlessException
	exception_message = null
	script_name = RP_FEE.Another_Objects
	script_id = RP_FEE.Another_Objects.java
	line_number = 81
	exception_stack = 	at sun.awt.HeadlessToolkit.getScreenSize(HeadlessToolkit.java:285)
	at com.rational.test.ft.domain.html.HtmlGuiProxy.getClippingParentRectangle(HtmlGuiProxy.java:1006)
	at com.rational.test.ft.domain.html.HtmlGuiProxy.isInView(HtmlGuiProxy.java:1216)
	at com.rational.test.ft.domain.html.HtmlGuiProxy.click(HtmlGuiProxy.java:158)
	at com.rational.test.ft.domain.html.HtmlGuiProxy.click(HtmlGuiProxy.java:147)
	------------------------------
	------------------------------
	at com.rational.test.ft.object.interfaces.GuiTestObject.click(GuiTestObject.java:418)
	at RP_FEE.Another_Objects.testMain(Another_Objects.java:81)
	at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:78)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)
	at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336)
	at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
	at org.eclipse.core.launcher.Main.run(Main.java:996)
	at org.eclipse.core.launcher.Main.main(Main.java:971)
Скрипт с момента его работоспособного состояния не менял, ObjectMap у этого скрипта не трогал.

Что делал в промежутке между "работает - не работает":

Записал другой скрипт для тестирования страницы на AJAXe. Скрипт не выполнялся при дефолтных настройках
(просто не находились объекты).
В хелпе прочитал, что для этого надо сделать:

Open the functional test script that needs to be modified for enabling the AJAX support.
Click Script > Open Test Object Map. Select the Document control from the list and click Administrative tab.
Replace the Test Object Class Name value from GuiTestObject to DocumentTestObject. Save and close the Test Object Map.
Click Script > Update Script Helper

Сделал. Объекты не начали находиться. Причём заметил, что в ObjectMap приложение стало определяться как
"Win: Window:"
в то время как до этого приложение определялось верно:
"Html: Browser: "

Ещё изменения, которые возникли "вдруг":
1) Все объекты во всех скриптах стали определяться как
_ДругиеОбъектыlink().click(atName(" Другие объекты"), atPoint(22,7));
и при этом не обнаруживаются в приложении.
Раньше этот же объект в этом же скрипте определялся так:
link_ctl00_A1().click();
и обнаруживался в приложении. P.S. сейчас и он не обнаруживается.
2) добавление нового объекта в любом ранее рабочем скрипте добавляет его в новый тип приложения "Win: Window:" в ObjectMap

По поводу "неопределения объектов" делал поиск на этом форуме и нашёл только одну похожую тему: RFT и кириллица
Но от проблемы, к сожалению, не избавился.

Подскажите, пожалуйста, в чём я напортачил, и как хотя бы вернуть в рабочее состояние всё, что работало.
Или хотя бы в какую сторону рыть, чтобы вернуть всё, как было.

P.S. Если дал недостаточно информации или в не совсем удобоваримом виде, извините, это мой первый вопрос здесь. HOWTO читал.
  • 0

#2 Pryanik

Pryanik

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

  • Members
  • PipPipPip
  • 214 сообщений
  • Город:МОСКВА

Отправлено 27 апреля 2010 - 06:54

Попробуйте вернуть настройку (текст из Help):
1.Open the ivory.properties file available at: <Functional Tester install directory>\Functional Tester\bin\.
2.Set the rational.test.ft.html.ajax.autotrace option to false. For example: rational.test.ft.html.ajax.autotrace = false
  • 0

#3 Gaiver

Gaiver

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

  • Members
  • Pip
  • 10 сообщений
  • ФИО:Петров Сергей

Отправлено 27 апреля 2010 - 06:59

Попробуйте вернуть настройку (текст из Help):
1.Open the ivory.properties file available at: <Functional Tester install directory>\Functional Tester\bin\.
2.Set the rational.test.ft.html.ajax.autotrace option to false. For example: rational.test.ft.html.ajax.autotrace = false


Извините, не упомянул об этом в своём топике: я уже возвращал эту настройку. А также вновь апдейтил ScriptHelper. (т.е. вернул назад изменения).
  • 0

#4 Pryanik

Pryanik

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

  • Members
  • PipPipPip
  • 214 сообщений
  • Город:МОСКВА

Отправлено 27 апреля 2010 - 08:08

Попробуйте вернуть настройку (текст из Help):
1.Open the ivory.properties file available at: <Functional Tester install directory>\Functional Tester\bin\.
2.Set the rational.test.ft.html.ajax.autotrace option to false. For example: rational.test.ft.html.ajax.autotrace = false


Извините, не упомянул об этом в своём топике: я уже возвращал эту настройку. А также вновь апдейтил ScriptHelper. (т.е. вернул назад изменения).


Та ошибка из лога и из консоли, что вы описали до "возврата" или "после"?
  • 0

#5 Gaiver

Gaiver

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

  • Members
  • Pip
  • 10 сообщений
  • ФИО:Петров Сергей

Отправлено 27 апреля 2010 - 08:24

Попробуйте вернуть настройку (текст из Help):
1.Open the ivory.properties file available at: <Functional Tester install directory>\Functional Tester\bin\.
2.Set the rational.test.ft.html.ajax.autotrace option to false. For example: rational.test.ft.html.ajax.autotrace = false


Извините, не упомянул об этом в своём топике: я уже возвращал эту настройку. А также вновь апдейтил ScriptHelper. (т.е. вернул назад изменения).


Та ошибка из лога и из консоли, что вы описали до "возврата" или "после"?

После. Ошибка из лога сделана непосредственно перед обращением за помощью.
Пробовал, кстати, и из-под другой учётной записи - результат тот же :(
  • 0

#6 Pryanik

Pryanik

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

  • Members
  • PipPipPip
  • 214 сообщений
  • Город:МОСКВА

Отправлено 27 апреля 2010 - 08:33

На форуме Rational была описана подобная проблема, но там объекты "не были видны".
http://www.ibm.com/d...sageID=14235173

Судя по вашим логам они все же видны.
  • 0

#7 Gaiver

Gaiver

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

  • Members
  • Pip
  • 10 сообщений
  • ФИО:Петров Сергей

Отправлено 27 апреля 2010 - 08:47

На форуме Rational была описана подобная проблема, но там объекты "не были видны".
http://www.ibm.com/d...sageID=14235173

Судя по вашим логам они все же видны.

Ух! Здорово!
Похоже, всё-таки, у них была моя проблема.

1) Симптомы похожие: при попытке подсветить объект из objectMap RFT сначала говорил, что "объект отсутствует", потом стал говорить, что "невидим". Я приравнял "невидимость" и "отсутствие объекта". Видимо, зря я без достаточного опыта пытался строить свои догадки.

2) Их решение включает в себя мои изменения, которые я сделал, но не вернул обратно. В промежутке "работает - не работает" я обновил JRE с 1.5 (на котором писались все предыдущие рабочие скрипты) до 1.7. Кто ж мог подумать, что это может повлиять! :)

Завтра отпишусь о результатах.

Огромное спасибо пользователю "Pryanik" за наводку!
  • 0

#8 Gaiver

Gaiver

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

  • Members
  • Pip
  • 10 сообщений
  • ФИО:Петров Сергей

Отправлено 04 мая 2010 - 07:20

На форуме Rational была описана подобная проблема, но там объекты "не были видны".
http://www.ibm.com/d...sageID=14235173

Судя по вашим логам они все же видны.

В том топике решение было следующее: вернуться к той JRE, в которой тесты писались изначально.

Пошёл в Start - Control Panel - JAVA - Java - View.
Из длинного списка JRE выбрал "1.5.0 C:\Program Files\IBM\SDP70\jdk\bin\javaw.exe" - JRE, которая была поставлена вместе с RFT.

Перегрузился.
Делаю Highlight-поиск объекта => "Test Object may not be visible."

У меня один выход: переустановить и переписать всё, да? :(

Чисто переустановка RFT, я так понимаю, не поможет, ибо юзаться будет та JRE, которая используется на машине в текущий момент. А если тесты написаны под какой-то другой, то они будут продолжать не работать. Да?
  • 0

#9 Pryanik

Pryanik

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

  • Members
  • PipPipPip
  • 214 сообщений
  • Город:МОСКВА

Отправлено 04 мая 2010 - 08:39

У меня один выход: переустановить и переписать всё, да? :(

Чисто переустановка RFT, я так понимаю, не поможет, ибо юзаться будет та JRE, которая используется на машине в текущий момент. А если тесты написаны под какой-то другой, то они будут продолжать не работать. Да?

Сложно так говорить. Попробуйте...
Я бы вообще попробовал удалить JRE выше версии 1.5
  • 0

#10 Gaiver

Gaiver

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

  • Members
  • Pip
  • 10 сообщений
  • ФИО:Петров Сергей

Отправлено 04 мая 2010 - 11:22

У меня один выход: переустановить и переписать всё, да? :(

Чисто переустановка RFT, я так понимаю, не поможет, ибо юзаться будет та JRE, которая используется на машине в текущий момент. А если тесты написаны под какой-то другой, то они будут продолжать не работать. Да?

Сложно так говорить. Попробуйте...
Я бы вообще попробовал удалить JRE выше версии 1.5

К счастью, есть машина (ремоут сервер), на котором стоит RFT с вьюхой из ClearCase. На этой машине RFT с тестами работает идеально. Перешёл на неё. Правда, там немного устаревшие скрипты. Но всё же это лучше, чем полные переустановка + переписывание всего.

Текущую свою машину оставил для экспериментов над RFT + заодно буду продолжать пытаться вернуть в работоспособное состояние.
  • 0

#11 Pryanik

Pryanik

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

  • Members
  • PipPipPip
  • 214 сообщений
  • Город:МОСКВА

Отправлено 04 мая 2010 - 11:44

К счастью, есть машина (ремоут сервер), на котором стоит RFT с вьюхой из ClearCase. На этой машине RFT с тестами работает идеально. Перешёл на неё. Правда, там немного устаревшие скрипты. Но всё же это лучше, чем полные переустановка + переписывание всего.

Актуальные скрипты тоже наверное хранятся в СС?! Что мешает их запускать, а не устаревшие?
  • 0

#12 Gaiver

Gaiver

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

  • Members
  • Pip
  • 10 сообщений
  • ФИО:Петров Сергей

Отправлено 04 мая 2010 - 12:18

К счастью, есть машина (ремоут сервер), на котором стоит RFT с вьюхой из ClearCase. На этой машине RFT с тестами работает идеально. Перешёл на неё. Правда, там немного устаревшие скрипты. Но всё же это лучше, чем полные переустановка + переписывание всего.

Актуальные скрипты тоже наверное хранятся в СС?! Что мешает их запускать, а не устаревшие?

В связи с производственной необходимостью нужны 2 вьюхи на одно и то же (с моей точки зрения - хз зачем). Одна из них динамическая для девелоперов. Вторая - для меня.

Сначала моя вьюха тоже была динамической. Но RFT начал валиться из-за наличия двух вьюх, и пошло ветвление версионных деревьев. Было очень неприятно выковыривать нужные версии. На каком-то форуме я нашёл эту ошибку один-в-один. Там же и было объяснено, что причина в двух вьюхах. Поэтому было решено сделать мне снапшот. А это хранение файлов на локальной машине. То есть никаких версионных пересечений и ветвлений быть не может.

При переходе на remote-сервер я решил не заморачиваться и сразу перенёс с динамической на снапшот (там вьюха была старая). В общем, скрипты новые, но половина объектов не определяется, т.к. отсутствует в ObjectMap. Моё "перелопачивание" скриптов будет заключаться в том, чтобы занести все недостающие объекты в ObjectMap. Муторная работа. Но хотя бы уверен, что объект найдётся и именно так, как он был найден раньше. Плюс это быстрее.

Заодно проверю скрипты на актуальность и, если что, проапгрейжу.

Всё равно спасибо PRYANIK-у за помощь! Узнал много нового. Например, что новая версия JRE может порушить/сделать неработоспособным то, что раньше работало. У меня была уверенность, что новое поддерживает всё старое плюс ещё какие-то возможности. Оказывается, это не так. Впредь буду осмотрительней при апгрейдах.

ТЕМА ЗАКРЫТА.

P.S. Когда решу (если решу) свою проблему, отпишусь здесь для будущих поколений.
  • 0


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

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