객체 식별은 어떻게 작동할까요? QTP/UFT?

⚡ 스마트 요약

객체 식별 QTP/UFT 테스트 실행 중에 도구가 모든 GUI 요소를 인식하는 방법을 결정하며, 저장된 테스트 객체 속성을 실시간 런타임 객체 속성과 비교하여 화면 레이아웃이 변경되더라도 스크립트가 계속 작동하도록 합니다.

  • 🎯 테스트 객체 모델: UFT 저장된 테스트 객체와 실제 런타임 객체를 매 단계마다 비교하여 화면 위치와 관계없이 컨트롤을 식별합니다.
  • 🗂️ 필수 속성: UFT 객체 저장소 내의 각 객체 클래스에 대한 기본 속성 집합을 항상 기록합니다.
  • 🧩 보조 기능: UFT 필수 속성만으로는 고유한 설명을 구성할 수 없는 경우에만 백업 속성을 한 번에 하나씩 추가합니다.
  • ⚙️ 객체 식별 대화 상자: 도구 > 객체 식별을 통해 테스터는 환경 및 객체 클래스별로 속성을 추가, 제거 또는 재정렬할 수 있습니다.
  • 🕵️ 개체 스파이: 컨트롤 위에 마우스를 올려놓으면 테스트 객체 및 런타임 속성을 검사하여 어떤 속성을 신뢰할지 결정할 수 있습니다.
  • 🔢 서수 식별자: 인덱스, 위치 및 생성 시간은 모든 속성 검사 후에도 동일하게 유지되는 객체 간의 우선순위를 결정합니다.
  • 🧠 스마트 식별: 이 대체 메커니즘은 서수 식별자보다 먼저 실행되며, 학습된 설명이 손상된 객체를 복구하는 경우가 많습니다.

객체 식별이란 무엇인가요? UFT/QTP?

객체 식별은 메커니즘입니다. UFT/QTP 화면상의 GUI 요소를 인식하여 스크립트가 실행될 때마다 안정적으로 해당 요소에 대해 동작할 수 있도록 합니다. 녹화 세션 동안, UFT 마우스 포인터 아래에 있는 객체의 몇 가지 속성을 연구하고 저장합니다. 재생 중에 저장된 값을 현재 화면에 있는 모든 객체의 속성과 비교하여 해당 객체가 화면 어디에 있든 상관없이 고유하게 일치하는 객체를 선택합니다.

저장된 객체는 속성과 함께 표시됩니다. UFT 그것 때문에 기억하는 사람은 ~라고 불립니다. 테스트 개체테스트 실행 중에 화면에 나타나는 해당 요소는 다음과 같습니다. 런타임 개체모든 단계에서 두 가지를 비교하는 것이 마이크로 포커스가 말하는 '비교 전략'의 기본입니다. 테스트 객체 모델그리고 그것이 바로 그 이유입니다. UFT 버튼의 위치가 몇 픽셀 이동하거나 페이지 스타일이 변경되어도 스크립트는 계속 작동합니다.

객체 저장소 및 추가 기능

UFT 학습된 모든 테스트 객체와 저장된 속성을 내부에 유지합니다. 개체 저장소. 추가 기능 이야기 빠른 테스트 화면이 어떤 기술에 속하는지 미리 파악하므로 도구는 어떤 속성 세트가 적용되는지 이미 알고 있어 추측할 필요가 없으므로 객체 학습에 걸리는 시간을 단축할 수 있습니다.

여기에서 확인하세요 비디오에 접근할 수 없는 경우

모든 물건 UFT 레코드는 수십 개의 속성을 가질 수 있습니다. 웹 환경에서만 해도 버튼 하나에 이름, HTML 태그, 유형, 클래스, 인덱스 등 다양한 속성이 노출될 수 있습니다. 모든 객체에 대해 이러한 모든 속성을 기록하는 것은 기술적으로 가능하지만, 다음 이미지에서 일반적인 객체 저장소 항목을 보여주는 것처럼 실제로 유용한 경우는 드뭅니다.

개체 저장소

If UFT 각 객체의 모든 속성을 기억하려고 하면 객체 저장소의 크기가 급격히 커지고 스크립트 실행 속도가 눈에 띄게 느려집니다. 이를 방지하기 위해 QTP 기본적으로 모든 속성을 저장하지는 않습니다. 각 객체 유형에 대해 선택된 소수의 대표적인 속성 집합만 저장합니다. 고유 식별 오버헤드 없이 가능합니다. 각 환경 및 객체 클래스별로 별도로 결정되는 이 속성 목록은 다음에 설명할 객체 식별 설정에서 구성됩니다.

목적 Descript이온: 필수 및 보조 속성

객체의 속성과 값이 합쳐져서 무엇을 이루는가? UFT 전화 목적 Descript이온 — 이 도구가 페이지의 모든 객체 중에서 하나의 요소를 선택하는 데 사용하는 정확한 조합입니다. 예를 들어 웹 버튼의 경우 속성은 다음과 같습니다. name 가치와 함께 로그인 그것 자체만으로도 종종 사용 가능한 객체를 형성하기에 충분합니다. Descript이온.

이 동작을 검토하거나 변경하려면 열기 도구 > 객체 식별 내부 UFT객체 식별 대화 상자에는 현재 로드된 모든 환경이 나열됩니다. 환경을 선택하면 객체 클래스가 자동으로 채워집니다. UFT 해당 클래스에 대한 지원 정보가 표시되고, 오른쪽 패널에는 해당 클래스의 객체에 대해 저장되는 속성이 정확하게 표시됩니다. 목록은 두 그룹으로 나뉩니다.

  1. 필수 속성 해당 클래스의 모든 객체에 대해 기본적으로 해당 정보가 저장되며, 실제로 해당 객체를 이웃 객체와 구별하는 데 필요한지 여부와는 관계없습니다.
  2. 보조 속성 필수 속성만으로는 고유한 설명을 구성할 수 없는 경우에만 저장됩니다. UFT 객체가 고유해질 때까지 이 목록의 속성을 하나씩 차례로 처리합니다.

웹 이미지를 통해 해당 규칙이 실제로 어떻게 적용되는지 더 쉽게 확인할 수 있습니다.

목적 Descript이온, 필수 및 보조 속성

  • UFT 웹 이미지의 경우, 대체 텍스트만으로도 이미 고유한 경우에도 항상 대체 텍스트, HTML 태그 및 이미지 유형을 저장합니다.
  • 필수 속성으로 고유한 설명을 생성할 수 없는 경우, UFT 보조 목록에서 클래스 속성을 추가합니다.
  • 일단 속성이 설명을 고유하게 만들면, UFT 더 이상 추가하지 않습니다. 클래스 정보만으로 충분하면 파일 이름과 높이를 건너뛰고, 파일 이름이 필요하면 높이를 건너뛰는 식입니다.
  • 기록 시점에는 클래스 속성만 기록된다고 가정해 보겠습니다. 실행 시점에는, UFT 더 이상 필수 속성과 보조 속성을 구분하지 않고, 저장된 설명의 모든 속성을 런타임 객체와 비교합니다.
  • 저장된 속성 중 하나라도 일치하지 않으면 해당 단계가 실패합니다. 고유한 설명은 이진 값이며, 최선을 다해 일치시키는 방식이 아닙니다.
아래 필수 속성 보조 속성
저장 시 항상, 해당 클래스의 모든 객체에 대해 필수 속성이 고유한 설명을 구성할 수 없는 경우에만 해당됩니다.
구성됨 객체 식별 대화 상자, 필수 목록 객체 식별 대화 상자, 보조 목록
사용 순서 먼저 무조건적으로 배웠습니다. 객체가 고유해질 때까지 한 번에 하나씩 추가합니다.
실행 시간 처리 보조 속성과 동일하게 비교됨 필수 속성과 비교했을 때 동일합니다.

아래 영상은 필수적 절차와 보조적 절차의 차이를 처음부터 끝까지 보여줍니다.

객체 식별 대화 상자 Box 그리고 오브젝트 스파이

객체 식별 대화 상자는 단순히 보기 기능만 하는 것이 아니라, 테스터가 객체 식별의 적용 강도를 조정하는 곳이기도 합니다. UFT 전체 환경에 대한 객체를 식별합니다. 여기서 속성의 순서를 바꾸거나, 추가하거나, 제거하면 현재 기록 중인 객체뿐만 아니라 해당 시점부터 해당 클래스의 모든 객체에 대해 학습되는 내용이 변경됩니다. 일반적인 워크플로는 다음과 같습니다.

  1. 엽니다 UFT 가서 도구 > 객체 식별.
  2. 환경을 선택하세요 (웹, Windows, Java(등) 드롭다운 메뉴에서 선택하세요.
  3. 왼쪽 목록에서 WebButton 또는 WinEdit와 같은 객체 클래스를 선택하십시오.
  4. 필수 목록과 보조 목록 간의 속성을 이동하거나, 보조 목록의 순서를 변경하여 어떤 속성을 표시할지 제어할 수 있습니다. UFT 먼저 시도해 보세요.
  5. 패널 상단의 확인란을 사용하여 해당 클래스에 대한 스마트 식별 기능을 활성화 또는 비활성화할 수 있습니다.

여기서 변경한 사항은 다음번에 적용됩니다. UFT 해당 클래스의 객체를 학습합니다. 객체 저장소에 이미 저장된 항목은 객체가 다시 기록되거나 수동으로 업데이트될 때까지 원래 설명을 유지합니다.

Object Spy를 사용하여 속성 검사하기

필수 목록이나 보조 목록을 편집하기 전에 대부분의 테스터는 객체의 속성이 실제로 어떻게 생겼는지 확인합니다. 개체 스파이테스트 대상 애플리케이션의 컨트롤에 스파이 커서를 가져다 대면 해당 컨트롤의 테스트 객체 속성과 런타임 속성, 그리고 메서드가 나란히 나열됩니다. UFT 이를 활용할 수 있습니다. 필수 속성이 건물마다 계속 변경되어 보다 안정적인 속성으로 교체해야 할 때 유용합니다.

서수 식별자: 색인, 위치 및 생성 시간

때로는 모든 필수 속성과 보조 속성을 적용하더라도 두 개 이상의 객체가 동일하게 보이는 경우가 있습니다. 예를 들어 이름, 클래스, 레이블이 모두 같은 체크박스가 세 개 있는 경우입니다. 바로 이러한 상황을 위해 이 기능을 개발했습니다. UFT ~에 의존한다 서수 식별자이는 속성이 아닌 위치를 기준으로 동일한 객체의 순위를 매기는 백업 값입니다.

서수 식별자 부동산 주문 배정됨 적용 대상
색인 색인 해당 객체가 기본 소스 코드에 나타나는 순서를 0부터 순서대로 나열합니다. 모든 객체 클래스
오시는 길 오시는 길 화면상의 위치를 ​​위에서 아래로, 그 다음 왼쪽에서 오른쪽으로 순서대로 나열하며, 시작 위치는 0입니다. 모든 객체 클래스
생성 시간 생성시간 브라우저 창이 열린 순서(0부터 시작) 브라우저 객체만 해당

UFT 필수 속성과 보조 속성이 두 개체를 실제로 구분할 수 없을 때만 순서 식별자를 학습합니다. 왜냐하면 해당 값은 상대적이며 개체 자체는 변경되지 않았더라도 페이지 레이아웃이 변경되면 값이 달라질 수 있기 때문입니다. 아래 VBScript 코드 조각은 Index 함수를 사용하여 이름이 같은 두 링크 중 두 번째 링크를 클릭합니다.

Dim objBrowser, objPage
Set objBrowser = Browser("title:=Guru99 Bank")
Set objPage = objBrowser.Page("title:=Guru99 Bank")
' Index:=1 clicks the second Link named "Manage Order" (index starts at 0)
objPage.Link("name:=Manage Order", "index:=1").Click

인덱스 및 위치 값은 문에 지정된 객체 클래스에 따라 다릅니다. 인덱스:=3 WebEdit에서 특정 값을 검색하면 WebEdit 객체만 검색되는 반면, 일반 WebElement에서 동일한 값을 검색하면 유형에 관계없이 페이지의 모든 웹 객체가 계산됩니다.

스마트 식별이 적용되는 분야는 어디일까요?

객체 식별 UFT 학습된 설명에서 멈추지 않습니다. 정확히 일치하는 항목을 찾을 수 없는 경우, UFT 정해진 순서대로 프로세스를 진행합니다. 먼저 학습된 필수 및 보조 속성을 확인하고, 그 다음 시각적 관계 식별자를 확인합니다. 스마트 식별 해당 메커니즘이 해당 클래스에 대해 활성화된 경우에만, 그리고 최후의 수단으로만 서수 식별자를 사용합니다.

스마트 식별은 학습된 설명과 순서 식별자 사이에 의도적으로 위치합니다. 클래스의 핵심 속성을 사용하여 후보 목록을 재구성하고 선택적 속성을 통해 범위를 좁히므로, 학습된 설명이 손상된 객체(예: 이름이 변경된 버튼)를 객체 저장소에 접근하지 않고도 복구할 수 있는 경우가 많습니다. 이러한 추가 검색 단계에 시간이 소요되므로 대부분의 팀은 식별이 취약한 클래스에 대해 스마트 식별을 활성화하고, 위치가 유일한 식별 요소인 경우(예: 레이블이 없는 라디오 버튼 모음)에만 순서 식별자를 사용합니다.

자주 묻는 질문

객체 저장소에는 학습된 각 테스트 객체와 저장된 속성이 저장됩니다. 도구 > 객체 식별에서 열 수 있는 객체 식별 설정은 어떤 속성을 제어할지 결정합니다. UFT 우선 각 객체 클래스에 대한 기록을 해당 저장소에 저장합니다.

UFT 이 과정은 시각적 관계 식별자, 스마트 식별, 그리고 마지막으로 순서 식별자를 통해 진행됩니다. 만약 이 중 어느 것도 일치하는 항목을 찾지 못하면, 모든 저장된 속성을 만족하는 객체가 없기 때문에 런타임 오류가 발생합니다.

사용 가능한 모든 속성을 기록하면 객체 저장소가 너무 커져 스크립트 실행 속도가 느려집니다. UFT 대신 객체 클래스별로 작고 일반적인 속성 세트를 저장하고, 필수 속성만으로는 고유한 설명을 구성할 수 없는 경우에만 보조 속성을 추가합니다.

예. AI 지원 도구는 프로덕션 트래픽이나 DOM 구조를 검토하여 기록하기 전에 더 안정적이고 취약성이 낮은 속성을 제안할 수 있으며, 빌드 간에 필수 속성이 자주 변경되는 객체를 표시할 수 있습니다. 단, 테스터는 여전히 이러한 제안을 검증해야 합니다.

완전히 그렇지는 않습니다. 자체 복구 로케이터는 이름이 변경되거나 이동된 요소로 인한 오류를 줄여주지만, 순서 식별자는 여전히 모든 속성이 완전히 동일한 객체(예: 레이블이 없는 체크박스가 여러 개 나란히 있는 경우)를 식별합니다.

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