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

Strike

Регистрация: 20 дек 2009
Offline Активность: 12 мар 2010 07:55
-----

Мои темы

[QTP 10] Медленное выполнение скрипта

06 января 2010 - 16:08

Еще раз привет :)

Я не мог не заметить что когда мне нужно получить какую то информацию со страницы, то этот процесс занимает
достаточно долго времени (около секунды), с учетом того что таких обращений к браузеру/странице необходимо
делать не мало (в связи с ТЗ), то процесс занимает колоссальных ~25 суток (по предварительным подсчетам).
Вообще задача не маленькая, необходимо проверить около ~17000 страниц и такие проверки как
If Browser(myBrowser).Page(myBrowser).Link(myLink).Exist = False Then
Reporter.ReportEvent micFail, "А", "Б"
End If

или поменять значение в ListBox
Browser(myBrowser).Page(myBrowser).WebList(myList).Select(i)

или получить с него значения
ListValue = Browser(myBrowser).Page(myBrowser).WebList(myList).Object.Value
ListName = Browser(myBrowser).Page(myBrowser).WebList(myList).GetROProperty("value")

все это делается долго.

Вопрос в том как можно ускорить обращения к элементам на странице?

Спасибо за помощь!

[QTP 10] Работа с браузером когда он открыт в скрытом режиме

06 января 2010 - 15:52

Привет,

У меня есть тест который выполняется достаточно долго и я хочу чтобы скрипт выполнялся в скрытом режиме.
Я делаю так:
SystemUtil.Run "iexplore", URL, "", "", 0

Где "0" как известно откроет браузер в скрытом режиме. Но когда я пытаюсь сделать так:

Set myBrowser = Description.Create
   myBrowser("url").Value = ".*" & URLPart & ".*"
   Browser(myBrowser).Sync

Выдается ошибка что такого браузера нет. Если запускать браузер не в скрытом режиме то все ОК.

Вопрос собственно в том как запустить браузер в скрытом режиме, но чтобы QTP его видел?

Спасибо!

[QTP 9.0] выборка из Excel по нескольким параметрам

29 декабря 2009 - 17:41

Привет!

Есть следующая задача:

есть Excel c 6 параметрами (столбцами).

Информация примерно такого вида:
"A" = Name{Ваня, Петя, Федя, Рома, Ваня}
"B" = 2nd name{Иванов, Иванов, Петров, Сидоров, Сидоров}
"C" = Hair Color{Black, Green, White, Black, Brown}
"D" = Eye Color{Brown, White, Black, Black, Green}
"E" = Height{1.6, 1.7, 1.8, 1.7, 1.6}
"F" = Сharacter{Good, Bad, Bad, Good, Good}

необходимо сделать следующее, будет n-ое количество запросов, с разными параметрами, причем обязательный только параметр "A",
остальные могут как быть так и нет.

Пример запроса, выбрать строки где Name=Ваня и Height=1.6 и Сharacter=Good
необходимо, чтобы результатом данного запроса был массив, где будут все строки, которые удовлетворяют требованиям в запросе,
при чем со всеми параметрами. Например результатом запроса выше будет такой массив:


Arr{0,0} - Name$Ваня
Arr{0,1} - 2nd name$Иванов
Arr{0,2} - Hair Color$Black
Arr{0,3} - Eye Color$Brown
Arr{0,4} - Height$1.6
Arr{0,5} - Сharacter$Good

Arr{1,0} - Name$Ваня
Arr{1,1} - 2nd name$Сидоров
Arr{1,2} - Hair Color$Brown
Arr{1,3} - Eye Color$Green
Arr{1,4} - Height$1.6
Arr{1,5} - Сharacter$Good


Собственно я покапался какэто можно реализовать и наткнулся на такой пример:
onst adLockOptimistic = 3
Const adCmdText = &H0001

Set objConnection = CreateObject("ADODB.Connection")
Set objRecordSet = CreateObject("ADODB.Recordset")

'below just remember to give the location of your xls file
'HDR=Yes indicates that our spreadsheet has a header row and 
'the provider will not include the first row of the cell range (which may 
'be a header row) in the RecordSet. 

objConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
   "Data Source=C:\sac.xls;" & _
	   "Extended Properties=""Excel 8.0;HDR=Yes;"";"

objRecordset.Open "Select * FROM [Sheet1$] where Result = 'Fail'", _
objConnection, adOpenStatic, adLockOptimistic, adCmdText

Do Until objRecordset.EOF
		a= objRecordset.Fields.Item("Scenario No")
		b=objRecordset.Fields.Item("Scenario Text")
		c=objRecordset.Fields.Item("Result")
		msgbox (a &" "&b&" "& c)
		objRecordset.MoveNext
Loop

Ну я не совсем понял что такое ADODB, что за Provider Microsoft.Jet.OLEDB.4.0.

При попытке использовать код под свои нужды наткнулся на General run error. Произошло это на строке
objRecordset.Open "Select * FROM [Sheet1$] where Result = 'Fail'"
я попытался указать несколько параметров через AND.

Собственно просьба направить на путь истинный по поводу ADODB и Microsoft.Jet.OLEDB.4.0.
И советы как можно решить мою задачу.

Заранее спасибо.

Рекурсивная проверка сайта

20 декабря 2009 - 15:16

Привет!

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

Я себе представляю это так:
При выполнении теста
1. Получение первой ссылки из некого массива
2. Открытие страницы
3. Занесение ее в OR
4. Создание чекпоинтов
5. Проверка по чекпоинтам
6. Сбор всех (уникальных) ссылок со страницы и занесение их в массив
7. Переход по следующей ссылке из массива
8. переход к пункту 2

Первый вопрос который возникает реально ли это в QTP?
Второй вопрос, как динамически создавать объекты в Object repository и необходимо ли мне это делать в моей задаче?

Я очень надеюсь на Вашу помощь и любую информацию для разрешения данной задачи.

Заранее огромное спасибо за уделенное мне время.