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

Фотография

Время загрузки страницы


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

#1 klg17

klg17

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

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

Отправлено 11 мая 2005 - 19:27

Здравствуйте.

Сначала описание:
QT6.5. Тестирую отчет, запускаемый по URL, browser - Internet Explorer 6.0. В строке URL передаются параметры, с которыми должен выполнится отчет. Данные для отчета берутся из БД Oracle.

Теперь вопрос:
Как получить время загрузки страницы отчета в QT?
При вот таком варианте:
Services.StartTransaction "t"
Browser("...").Page("...").Sync
Services.EndTransaction "t"
тест отрабатывает раньше и успешно, чем на экране появятся данные.
  • 0

#2 Dmitry_NJ

Dmitry_NJ

    Консультант

  • Members
  • PipPipPipPipPipPip
  • 3 122 сообщений
  • ФИО:Дмитрий Шевченко
  • Город:New Jersey, USA

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

Поставьте соответствующий checkpoint, который скажет вам когда данные отчета полностью показались на экране. Например, это может быть какой-нибудь текст в status bar или просто bitmap с заголовком отчета.
  • 0
Дмитрий Шевченко

HP Software

#3 Mike

Mike

    Консультант

  • Members
  • PipPipPipPipPipPip
  • 1 079 сообщений
  • Город:Москва

Отправлено 12 мая 2005 - 07:22

У всех TestObject'oв QTP есть метод WaitProperty. Чтобы синхронизироваться по окончанию загрузки страницы:
1) На глаз определите, какой объект прорисовывается последним - он будет использоваться для синхронизации. Если Вы знаете, что на странице не выполняется javascript'ов, можно использовать фрейм или страницу в качестве объекта для синхронизации.
2) Вызовите метод этого объекта WaitProperty c параметрами:"attribute/readyState","complete",<timeout> где <timeout> - таймаут в миллисекундах. Можно попробовать синхронизироваться и по другим свойствам...
  • 0
Best regards,
Майк.

#4 klg17

klg17

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

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

Отправлено 12 мая 2005 - 10:14

WaitProperty и checkpoint мне кажется не подойтут. Есть ещё деталь, которую я пропустила. Отчет выводится не элементами web, а в pdf-формате. Т.е.
Spy отчет видит вот так.
Browser("Browser").Page("Page").ActiveX("Adobe Acrobat").WinObject("AVPageView").
И уже текст на этой странице ясень пень не разобрать.

Вот такой код вроде работает. Может есть ещё варианты получше ?
Services.StartTransaction "time"
result="0"
while result<>"Готово"
if Browser("Browser").WinStatusBar("msctls_statusbar32").Exist(0) then
Browser("Browser").WinStatusBar("msctls_statusbar32").Click 23,10
result=Browser("Browser").WinStatusBar("msctls_statusbar32").GetROProperty ("text")
end if
wend
Services.EndTransaction "time"

  • 0

#5 Badger

Badger

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

  • Members
  • Pip
  • 16 сообщений
  • Город:Ath Cliath

Отправлено 13 мая 2005 - 08:54

Здравствуйте.

Сначала описание:
QT6.5. Тестирую отчет, запускаемый по URL, browser - Internet Explorer 6.0. В строке URL передаются параметры, с которыми должен выполнится отчет. Данные для отчета берутся из БД Oracle.

Теперь вопрос:
Как получить время загрузки страницы отчета в QT?
При вот таком варианте:
Services.StartTransaction "t"
Browser("...").Page("...").Sync
Services.EndTransaction "t"
тест отрабатывает раньше и успешно, чем на экране появятся данные.

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

A chto nel'zya pered kodom vyvesti tekushee vremya i posle tekushee vremy nu i posredstvom neslozhnyh operacij poluchit' iskomoe?
  • 0

#6 klg17

klg17

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

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

Отправлено 13 мая 2005 - 12:08

Badger - нет нельзя. Посколько проблема не в получении времени, а в том что тест отрабатывает раньше, чем загружается страница.


Ладно. Эту проблему худо бедно решили.

Теперь другой вопрос: Как сохранить отчет, если учесть что он создается динамически ?

set IE = CreateObject("InternetExplorer.Application")
IE.Visible = true
IE.Navigate("http://...")
IE.StatusBar=1
result="0"
Services.StartTransaction "time"
while result<>"Готово"
result=IE.StatusText
wend
Services.EndTransaction "time"


Нужно что то типа:
IE.Dialog("Save a Copy").WinEdit("Имя объекта).Set "1.pdf" (Эта комбинация не работает по понятным причинам)
  • 0

#7 Dmitry_NJ

Dmitry_NJ

    Консультант

  • Members
  • PipPipPipPipPipPip
  • 3 122 сообщений
  • ФИО:Дмитрий Шевченко
  • Город:New Jersey, USA

Отправлено 13 мая 2005 - 18:32

Нужно что то типа:
IE.Dialog("Save a Copy").WinEdit("Имя объекта).Set "1.pdf"  (Эта комбинация не работает по понятным причинам)

A QTP ничего не записывает, когда сохраняете отчет? В принципе можно попробовать с клавиатурой поработать, например, shortcut использовать, если он есть у опции "Save", или просто через Alt активировать меню окна отчета.
  • 0
Дмитрий Шевченко

HP Software

#8 klg17

klg17

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

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

Отправлено 14 мая 2005 - 11:37

Уж коли наковыряла, делюсь опытом: как открыть динамически открыть файл Acrobata
Программа открывает и сохранят файл .pdf
set gApp=CreateObject("AcroExch.App")
set gPDDoc = CreateObject("AcroExch.PDDoc")
URL="C:\1.pdf"
gApp.Show
If gPDDoc.Open(URL) Then
Set avDoc = gPDDoc.OpenAVDoc("")
resSave=gPDDoc.Save(1 Or 4 Or 32, "C:\2.pdf")

End If


вот ссылка по Acrobat
http://partners.adob...IACOverview.pdf

Теперь вот думаю, как не просто .pdf открыть, а по URL. В самом Acrobate через меню File>Open web Page. Как это программно сделать пока не знаю.
  • 0


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

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