GetRoProperty, GetToProperty에서 QTP/UFT 예와 함께

⚡ 스마트 요약

Object Spy는 테스트 대상 애플리케이션의 모든 컨트롤의 속성과 메서드를 보여주고, GetROProperty, GetTOProperty 및 SetTOProperty는 해당 속성 값을 읽고 씁니다. QTP or UFT 실행 시 하나의 스크립트만 실행됩니다.

  • 🔎 Object Spy 첫 번째: 컨트롤을 가리키면 테스트 객체의 속성, 런타임 속성, 메서드 및 전체 계층 구조를 볼 수 있습니다.
  • ☑️ 두 개의 객체 세계: 테스트 객체는 저장된 설명이고, 런타임 객체는 애플리케이션에서 실행되는 실제 컨트롤입니다.
  • ROProperty 가져오기: 실시간 컨트롤에서 현재 값을 읽어오므로 애플리케이션이 열려 있어야 하고 해당 객체가 존재해야 합니다.
  • 🧪 GetTOProperty: 저장된 설명을 읽어오기 때문에 두 메서드가 서로 다른 값을 반환할 수 있습니다.
  • 🛠️ SetTOProperty: 이 실행에 대한 설명만 변경합니다. 저장소는 전혀 수정되지 않으며, 변경 사항은 실행이 끝나면 폐기됩니다.
  • 📌 SetROProperty 없음: 스크립트는 애플리케이션을 읽을 수는 있지만 속성을 다시 애플리케이션에 쓸 수는 없습니다.

Object Spy와 GetROProperty, GetTOProperty 및 SetTOProperty 메서드 QTP   UFT 한

이 튜토리얼에서는 개체 스파이.

개체 스파이는 사용자 환경의 개체와 관련된 유용한 속성 및 메서드를 확인하는 데 도움이 될 수 있습니다.

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를 사용하면 테스트 객체의 속성 값을 가져올 수 있습니다.
  • SetTOProperty를 사용하면 테스트 객체의 속성 값을 변경할 수 있습니다.
  • 테스트가 완료되면 이 테스트 객체는 폐기되며, SetTOProperty를 사용하여 객체 속성에 적용한 모든 수정 사항도 함께 삭제됩니다.
  • 테스트가 다시 실행되면 개체 저장소에 저장된 원래 속성 값을 사용하여 테스트 개체의 새 복사본이 생성됩니다.
  • 테스트 스크립트에 여러 줄의 코드가 있고 환경이 불안정한 경우 GetTOProperty 및 SetTOProperty 함수를 사용하는 것을 고려해 볼 수 있습니다.
  • 참고로 SetROProperty는 없습니다.

구문 및 예

이 세 가지 메서드는 모두 테스트 객체의 계층 구조 맨 끝에 있는 객체에서 호출되며, 세 메서드 모두 문자열 형태의 설명 속성 이름을 매개변수로 받습니다. 아래 표는 각 메서드의 시그니처를 보여줍니다.

방법 통사론 읽거나 쓸 수 있다
GetROProperty object.GetROProperty(Property) 애플리케이션에서 실시간 제어 정보를 읽습니다.
GetTOProperty object.GetTOProperty(Property) 저장된 테스트 객체 설명을 읽습니다.
속성에 설정 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는 없습니다. 속성에 설정

대조를 통해 차이점을 명확히 구분할 수 있습니다. HTML ID가 없는 목록에 ID를 설정한 다음, 두 가지 방식으로 읽어보세요. GetROProperty는 애플리케이션이 변경되지 않았기 때문에 빈 문자열을 반환하는 반면, GetTOProperty는 설명에 새로 추가된 값을 반환합니다.

일반적인 오류 및 해결 방법

속성 검색 실패는 몇 가지 예측 가능한 이유로 발생합니다. 아래 표는 테스터들이 가장 자주 접하는 이유들을 나열합니다.

징후 원인 수정
해당 호출은 빈 문자열을 반환합니다. 속성 이름이 잘못되었거나 객체가 해당 속성을 노출하지 않습니다. 해당 객체를 다시 검색하고 나열된 속성 이름을 정확히 복사합니다.
GetROProperty 라인에서 개체를 찾을 수 없습니다. 컨트롤이 아직 렌더링되지 않았습니다. 읽기 작업 전에 동기화 단계를 추가하세요.
GetROProperty는 SetTOProperty 변경 사항을 무시합니다. 두 방법은 설계상 서로 다른 대상을 다룹니다. GetTOProperty를 사용하여 변경 사항을 다시 읽어오세요.
SetTOProperty 변경 사항이 사라집니다. 테스트 객체 편집 내용은 현재 실행 동안에만 유효합니다. 저장소에서 객체를 편집하거나 다음을 사용하세요. 설명 프로그래밍
SetROProperty 함수에서 구문 오류가 발생합니다. 그러한 방법은 존재하지 않습니다. 설정 또는 클릭과 같은 일반적인 단계를 통해 애플리케이션을 실행하세요.

이러한 문제 대부분을 방지하는 두 가지 습관은 다음과 같습니다. 속성 이름을 추측하는 대신 코드를 작성하기 전에 컨트롤을 미리 확인하고, Vbscript 값이 필요한 단계 직전에 값을 가져오는 호출이 이루어지므로, 읽기가 수행될 때 객체가 여전히 화면에 표시됩니다.

자주 묻는 질문

Object Spy는 해당 클래스에 대해 도구가 보유한 식별 속성과 브라우저에서 노출하는 기본 속성을 나열합니다. 속성 및 스타일 값은 속성 문자열 내에서 속성 및 스타일 접두사를 사용하여 접근할 수 있습니다.

런타임 객체는 테스트가 아닌 애플리케이션에 속하므로 툴은 해당 객체에 쓰기 작업을 수행하지 않습니다. 애플리케이션이 보유한 값을 변경하려면 Set, Select 또는 Click과 같은 일반적인 단계를 사용하여 컨트롤을 제어하십시오.

아니요. 임시 테스트 객체는 실행이 끝나면 폐기되고, 다음에 실행할 때 저장소에서 새 복사본이 생성됩니다. 영구적인 변경 사항은 객체 저장소 자체에 저장해야 합니다.

예. 인라인으로 생성된 기술 객체는 동일한 호출을 허용하므로 GetROProperty는 정상적으로 작동합니다. 설명 프로그래밍 또한, GetTOProperty는 저장된 항목이 아닌 인라인 설명에서 값을 반환합니다.

AI 기반 위치 찾기 도구는 동일한 제어 장치에 대해 여러 후보 속성의 순위를 매기고 속성 중 하나가 변경될 때 손상된 설명을 수정합니다. 이를 통해 수동 검색 작업을 줄일 수 있지만, 제안된 속성은 여전히 ​​사람의 검토가 필요합니다.

Copilot은 파일에서 유사한 줄이 몇 개 발견되면 계층 구조와 메서드 호출을 완료합니다. Copilot은 실제 객체 이름이나 컨트롤이 노출하는 속성을 알 수 없으므로 Object Spy에서 생성된 모든 문자열을 검증해야 합니다.

Object Spy는 스크립트를 빌드하는 동안 값을 보여주는 검사 도구입니다. 체크포인트는 테스트 내에서 실행되는 단계로, 저장된 예상 값에 대한 통과 또는 실패 여부를 보고합니다.

해당 객체가 애플리케이션에 여전히 존재하는 경우에만 그렇습니다. 렌더링되지 않았거나 페이지에서 제거된 컨트롤은 빈 값을 반환하는 대신 객체를 찾을 수 없다는 오류를 발생시킵니다.

이 게시물을 요약하면 다음과 같습니다.