среда, 19 августа 2009 г.

Example. QTP connection to Oracle by ADO DB provider.

Доступ к базе данных из QTP на примере Oracle


Как известно при записи скрипта QTP предоставляет возможность создания checkpoint с привязкой данных к значениям из бд.





И просто выводить значение из БД через Output Value.

Но в силу того, что в проекте, в котором я сейчас участвую, я создаю тестовые скрипты основываясь не на записи, а на создании их в ExpertView через так называемое programmatic description (программируемое описание).
Данные возможности я не использую. Кстати в данном случае запись я не использую т.к. почему то при записи в IE начинаются глюки, не раскрываются менюшки (Написанные с использованием htc и css). При этом если отключить запись и перезайти в приложение, то все ок.



Недавно мне понадобилась брать значения для запроса из таблицы БД Oracle.
Пошуршив документацию по VB я наткнулся на Microsoft ActiveX Data Objects (ADO). Вот сразу ссылочка на API .

Итак вот пример использования данного объекта для обращения к БД Oracle из QTP и получение значения из таблицы БД.






ConnectionString="Password=pass;User ID=user;Data Source=sid2; Provider=OraOLEDB.Oracle;" ' задается строка соединения к Oracle

' Строка запроса, который будет выполнен в БД
sSql = " select word from ole_search_index where field_name='Comment' "


Set oConn = CreateObject ("ADODB.Connection") ' Создаем объект

' открываем соединение к БД с заданными в строке соединения параметрами
oConn.Open ConnectionString

' Задаем объект ADODB.Recordset, который возвращает метод
set rs=oConn.Execute (sSql)

'rs.fields(0).value fields свойство объекта Recordset возвращающает коллекцию
' объектов field, которые являются по сути столбцами таблицы


Do Until checkfield( rs.fields(0).value )' Исполнения цикла до тех пор пока не true
' также можно сделать условие привязанное к свойству EOF объекта Recordset
' свойство EOF возвращает булево значение. В кратце суть EOF это, что пройденны все
' записи полученные объектом recordset

rs.MoveNext() ' переход к следующей строчке таблицы
' по умолчанию чтение из таблицы БД начинается с первой строчки

Loop



oConn.Close ' закрытие соединения к БД

Комментариев нет: