GetRoProperty, GetToProperty в QTP/UFT с примером

⚡ Умное резюме

Object Spy раскрывает свойства и методы любого элемента управления в тестируемом приложении, а GetROProperty, GetTOProperty и SetTOProperty считывают и записывают значения этих свойств из объекта Object Spy. QTP or UFT За один раз выполняется один скрипт.

  • 🔎 Сначала Object Spy: Наведите курсор на элемент управления, чтобы увидеть свойства тестового объекта, свойства во время выполнения, методы и полную иерархию.
  • ☑️ Два мира объектов: Объектом тестирования является сохраненное описание; объектом времени выполнения является элемент управления в реальном времени в приложении.
  • GetROProperty: Считывает текущее значение из элемента управления в реальном времени, поэтому приложение должно быть открыто, а объект должен существовать.
  • 🧪 GetTOProperty: Вместо этого считывается сохраненное описание, поэтому эти два метода могут возвращать разные значения.
  • 🇧🇷 SetTOProperty: Изменение описания применяется только к данному запуску; репозиторий остается неизменным, и изменение отменяется в конце.
  • 📌 Нет свойства SetROProperty: Скрипт может читать приложение, но не может записывать в него свойства.

Объектный шпион и методы GetROProperty, GetTOProperty и SetTOProperty в QTP  и  UFT Одна

Этот учебник демонстрирует Объект шпион.

Object Spy может помочь определить полезные свойства и методы, связанные с объектом в вашей среде.

HP/Микро Фокус UFT учебные пособия также описывает GetROProperty, GetTOProperty и SetTOProperty.

⚠️ Примечание к версии: Описанный здесь инструмент поставлялся под названием HP QuickTest Professional, затем стал продуктом Micro Focus Unified Functional Testing, а сегодня продается под другим названием. OpenText Функциональное тестирование (UFT Один)Object Spy и все три метода по-прежнему работают точно так, как описано ниже.

Нажмите здесь если видео недоступно

Объект шпион

  • Функция Object Spy присутствует в QTP С помощью этого инструмента можно просмотреть свойства и методы как тестовых, так и исполняемых объектов.
  • Он также дает синтаксис выбранного метода.
  • Object Spy отображает полную иерархию выбранного объекта.

Эта иерархия имеет значение, поскольку имя свойства, скопированное из Object Spy, представляет собой точную строку, которую ожидают три описанных ниже метода. Поэтому отслеживание объекта является первым шагом практически в любой задаче получения свойств.

GetROProperty

  • GetROProperty — это встроенный метод, используемый для получения значения свойства объекта во время выполнения.

Использование функции GetROProperty включает в себя 4 шага:

  1. Запишите объект, для которого вы хотите использовать GetROProperty, в Репозиторий объектов.
  2. Для записанного объекта определите свойство времени выполнения, которое можно использовать. Вы можете использовать Object Spy.
  3. Используйте метод GetROProperty для получения идентифицированного свойства времени выполнения и сохраните его значение в переменной.
  4. Используйте это значение для дальнейших вычетов.

Поскольку значение считывается из элемента управления в реальном времени, приложение должно быть открыто, и объект должен фактически существовать на экране во время выполнения строки кода.

SetTOProperty & GetTOProperty

  • Рассмотрим веб-кнопку, хранящуюся в репозитории объектов.
  • Когда запускается тест QTP Создает копию этого объекта под названием Test Object и сравнивает ее с объектом Run Time Object.
  • С помощью функции GetTOProperty можно получить значение свойства объекта Test.
  • С помощью функции SetTOProperty можно изменить значение свойства тестового объекта.
  • После завершения теста этот тестовый объект удаляется, как и любые изменения, внесенные вами в свойства объекта с помощью метода SetTOProperty.
  • При повторном запуске теста создается новая копия тестового объекта с исходными значениями свойств, хранящимися в репозитории объектов.
  • Использование функций GetTOProperty и SetTOProperty может быть полезно, если ваш тестовый скрипт содержит много строк кода, а среда выполнения работает нестабильно.
  • Обратите внимание, что свойства SetROProperty не существует.

Синтаксис и примеры

Все три метода вызываются для тестового объекта в конце его иерархии, и все три принимают имя свойства описания в виде строки. В таблице приведена сигнатура каждого из них.

Способ доставки Синтаксис Читает или пишет
GetROProperty object.GetROProperty(Property) Считывает данные с элементов управления в реальном времени в приложении.
GetTOProperty object.GetTOProperty(Property) Считывает сохраненное описание тестового объекта.
SetTOProperty object.SetTOProperty Свойство, Значение Выводит описание тестового объекта только для этого запуска.

Чтение значения, полученного во время выполнения, осуществляется одним оператором. Этот пример взят из... официальный справочник по получению и установке значенийЭта функция извлекает целевой адрес ссылки во время выполнения программы.

link_href = Browser("Technologies").Page("Technologies").Link("Jobs").GetROProperty("href")

Запись, а затем чтение свойства тестового объекта выполняется так же быстро. Приведенная ниже пара операций устанавливает имя кнопки «Отправить» на мою кнопку и считывает то же значение обратно.

Browser("QA Home Page").Page("QA Home Page").WebButton("Submit").SetTOProperty "Name", "my button"
ButtonName = Browser("QA Home Page").Page("QA Home Page").WebButton("Submit").GetTOProperty("Name")

Типичная проверка объединяет две идеи: считывает значение, полученное во время выполнения, с помощью GetROProperty, а затем сравнивает его с тем, что ожидает тест.

strValue = Browser("Welcome").Page("Find a Flight").WebList("fromPort").GetROProperty("selection")
If strValue = "Acapulco" Then
    Reporter.ReportEvent micPass, "Default city", "Default city is correct"
Else
    Reporter.ReportEvent micFail, "Default city", "Unexpected value: " & strValue
End If

Разница между GetROProperty и GetTOProperty

Эти два имени отличаются всего одной буквой и являются наиболее запутанной парой в инструменте. RO означает объект времени выполнения, TO — тестовый объект, и каждое из них считывает данные из разного места.

Точка сравнения GetROProperty GetTOProperty
Источник ценности Управление в реальном времени в запущенном приложении Описание, хранящееся для тестового объекта.
Приём заявок должен быть открытым. Да Нет
Обнаруживает изменение свойства SetTOProperty Нет Да, для текущего запуска
Типичное использование Проверка того, что на самом деле видит пользователь. Проверка или отладка способа идентификации объекта.
Сеттер Нет — свойства SetROProperty не существует. SetTOProperty

Проведенное сравнение делает это различие очевидным. Задайте HTML-идентификатор для списка, в котором его нет, а затем прочитайте его в обоих направлениях: GetROProperty возвращает пустую строку, поскольку приложение так и не изменилось, в то время как GetTOProperty возвращает значение, которое только что было записано в описание.

Распространенные ошибки и способы их исправления

Сбой при извлечении свойств происходит по ряду предсказуемых причин. В таблице перечислены те причины, с которыми тестировщики сталкиваются чаще всего.

Симптом Вызывать фиксированный
Вызов возвращает пустую строку. Название свойства указано неверно, или объект его не предоставляет. Снова отследите объект и скопируйте имя свойства точно так, как оно указано.
Объект не найден в строке GetROProperty Элемент управления еще не был обработан. Добавьте этап синхронизации перед чтением.
Функция GetROProperty игнорирует изменение, выполненное функцией SetTOProperty. Эти два метода предназначены для работы с разными объектами. Вместо этого считайте изменения обратно с помощью GetTOProperty.
Изменение, выполненное с помощью SetTOProperty, исчезает. Изменения тестовых объектов сохраняются только в течение текущего запуска. Отредактируйте объект в репозитории или используйте описательное программирование
Метод SetROProperty вызывает синтаксическую ошибку. Такого метода не существует. Проведите приложение через стандартный этап, например, установку или клик.

Большинство таких ошибок предотвращается двумя привычками: сначала проверьте элемент управления, а затем угадывайте имя свойства, и сохраняйте VBScript Запросы на получение данных выполняются непосредственно на этапе, когда требуется значение, поэтому объект остается на экране во время чтения.

Часто задаваемые вопросы (FAQ)

Object Spy отображает идентификационные свойства, которыми обладает инструмент для данного класса, а также собственные свойства, предоставляемые браузером. Значения атрибутов и стилей получаются с помощью префиксов атрибутов и стилей внутри строки свойства.

Объект времени выполнения принадлежит приложению, а не тесту, поэтому инструмент не будет в него записывать данные. Чтобы изменить содержимое приложения, управляйте элементом управления с помощью обычного шага, такого как «Установить», «Выбрать» или «Кликнуть».

Нет. Временный тестовый объект удаляется по завершении выполнения, и в следующий раз из репозитория создается новая копия. Постоянные изменения должны храниться в самом репозитории объектов.

Да. Объект, описанный непосредственно в коде, принимает те же вызовы, поэтому GetROProperty работает с ним. описательное программирование Также. В этом случае метод GetTOProperty возвращает значение из встроенного описания, а не из сохраненной записи.

Инструменты поиска с поддержкой ИИ ранжируют несколько потенциальных свойств для одного и того же элемента управления и исправляют некорректное описание при изменении одного из атрибутов. Это сокращает цикл ручного поиска, хотя предлагаемое свойство все еще требует проверки человеком.

Copilot завершает обработку иерархии и вызов метода, как только обнаружит несколько похожих строк в файле. Он не может знать реальные имена ваших объектов или какие свойства предоставляет элемент управления, поэтому проверяйте каждую сгенерированную строку в Object Spy.

Object Spy — это инструмент проверки, который отображает значения во время создания скрипта. Контрольная точка — это шаг, который выполняется внутри теста и сообщает о прохождении или непрохождении теста по отношению к сохраненному ожидаемому значению.

Только если объект все еще существует в приложении. Элемент управления, который не был отображен или удален со страницы, вызовет ошибку «объект не найден», а не вернет пустое значение.

Подведем итог этой публикации следующим образом: