서수 식별자 QTP/UFT객체 식별 예시
⚡ 스마트 요약
서수 식별자 QTP/UFT 동점일 경우 승패를 가르는 기준이 됩니다. UFT 필수 속성과 보조 속성이 여전히 둘 이상의 객체와 일치하는 경우, 인덱스, 위치 또는 생성 시간 값을 사용하여 고유한 단일 객체를 선택합니다.

서수 식별자란 무엇인가요? QTP/UFT?
An 서수 식별자 숫자 속성입니다 UFT (전에 QTP이 기능은 기록 세션 중에 캡처된 필수 속성과 보조 속성만으로는 객체를 고유하게 식별하기에 충분하지 않을 때 객체 설명에 추가 속성을 더합니다. 이 경우 도구는 실패하는 대신, "이 클래스의 세 번째 객체를 사용하세요"라고 말하는 것과 같은 카운터를 활용합니다.
기본적으로 모든 테스트 객체 클래스에는 순서 식별자 유형이 있습니다. WebEdit는 WinButton과 다른 번호로 지정되고, Browser는 또 다른 번호로 지정됩니다. 객체 식별 창에서 클래스의 기본 순서 식별자를 확인하거나 수정할 수 있습니다.
위 스크린샷에서 볼 수 있듯이, 서수 식별자 드롭다운 메뉴는 객체 식별 대화 상자의 맨 아래, 필수 및 보조 속성 목록 아래에 있습니다. 이러한 위치는 우연이 아닙니다. 이는 객체 식별 대화 상자의 순서를 반영한 것입니다. UFT 실제로 세 그룹과 협의합니다.
서수 식별자에는 세 가지 유형이 있습니다. UFT:
- 인덱스 기반
- 위치 기반
- 생성 시간
UFT 서수 식별자는 최후의 수단으로만 사용합니다.
객체 식별 UFT 이 과정은 순차적으로 진행됩니다. 필수 속성이 먼저 학습되고, 일치하는 속성이 하나도 없으면 보조 속성이 하나씩 추가되어 설명이 고유해질 때까지 계속됩니다. 두 그룹의 속성이 모두 소진된 후에야 다음 단계가 진행됩니다. UFT 순서 식별자를 첨부하면 런타임 시 스마트 식별 메커니즘을 참조하여 순서 값을 신뢰합니다.
그 순위의 이유는 안정성 때문입니다. 필수 및 보조 속성은 다음과 같습니다. 뭐 객체는 이름, HTML 태그, 유형, 레이블로 구성됩니다. 서수 식별자는 객체에 대한 설명만 제공합니다. 어디에 그 물체는 녹화 당시 마침 그 자리에 있었습니다. 페이지가 바뀌면 번호도 바뀝니다.
- 개발자가 자동화된 필드 위에 숨겨진 필드를 삽입합니다.
- 홍보 배너는 헤더에 두 개의 추가 링크를 추가합니다.
- 반응형 레이아웃은 폼을 두 열에서 한 열로 재배치합니다.
- 팝업 브라우저가 녹화된 실행 당시보다 더 일찍 열립니다.
이러한 변경 사항들은 이름이나 ID를 기반으로 구축된 설명을 손상시키지는 않지만, 각각의 변경 사항은 페이지의 모든 인덱스와 위치 값을 조용히 변경합니다. 이것이 바로 숙련된 엔지니어들이 순서 식별자를 객체 설명에 수정이 필요하다는 신호로 간주하고, 완성된 해결책으로 여기지 않는 이유입니다. 동일한 원칙이 모든 경우에 적용됩니다. 자동화 테스트 일반적으로 프레임워크에는 위치 지정 전략이 포함됩니다. Selenium.
💡 팁: 서수 식별자를 사용하기 전에 Object Spy에서 해당 객체를 열고 안정적인 사용자 지정 속성이 있는지 확인하십시오. 해당 속성을 클래스의 보조 속성 목록에 추가하면 해당 유형의 모든 향후 객체에 서수를 지정할 필요가 없어지는 경우가 많습니다.
서수 식별자의 유형 UFT/QTP
인덱스 기반
- 인덱스 기반 순서 식별자를 사용하는 경우, UFT 값을 할당합니다 색인 녹화 중 객체의 속성입니다.
- 해당 값은 화면에 표시되는 순서가 아니라 소스 코드 내에서 객체가 나타나는 순서를 기준으로 합니다.
- 첫 번째 발생 값은 0입니다.
- 인덱스 속성 값은 객체별로 다르므로 각 테스트 객체 클래스는 별도로 계산됩니다.
- 따라서 WebEdit 테스트 객체를 설명할 때 index:=3을 사용하면, UFT 페이지에서 네 번째 WebEdit 객체를 검색합니다.
- 마찬가지로, WebButton 테스트 객체를 설명하기 위해 index:=1을 사용하는 경우에도 마찬가지입니다. UFT 페이지에서 두 번째 WebButton 객체를 찾습니다.
위치 기반
- 위치 기반 서수 식별자가 사용되는 경우, UFT 값을 할당합니다 위치 객체를 고유하게 식별하는 객체의 속성.
- 값은 동일한 속성을 가진 다른 개체와 관련하여 창, 프레임 또는 대화 상자 내에 개체가 나타나는 순서를 기반으로 합니다.
- 객체의 첫 번째 발생은 0입니다.
- 값은 위에서 아래로, 그리고 왼쪽에서 오른쪽으로 열별로 할당됩니다.
- 위치는 대부분의 표준에서 기본 순서 식별자입니다. Windows 테스트 객체 클래스는 마크업 순서보다 시각적 레이아웃이 더 안정적입니다.
생성 시간
- 생성 시간 순서 식별자가 사용되는 경우, UFT 값을 할당합니다 생성 시간 브라우저 객체의 속성입니다.
- 이 식별자는 웹 환경에서만, 그리고 브라우저 테스트 객체에 대해서만 사용할 수 있습니다.
- 이 값은 열려 있는 다른 브라우저들에 대한 상대적인 브라우저 열림 순서를 나타냅니다.
- 실행 중에 처음 열리는 브라우저는 creationtime:=0을 받고, 그 뒤를 잇는 브라우저들은 1, 2, 3 등을 받습니다.
- 브라우저가 닫히면 나머지 브라우저는 번호가 다시 매겨지지 않고 원래 값을 유지합니다.
인덱스, 위치, 생성 시간 비교표
세 가지 식별자는 각각 다른 세 가지 질문에 대한 답을 제공하며, 잘못된 식별자를 선택하는 것이 간헐적인 오류의 주요 원인입니다.
| 아래 | 색인 | 오시는 길 | 생성시간 |
|---|---|---|---|
| 속성 이름 | 색인 | 위치 | 생성 시간 |
| 주문 기준 | 소스 코드/객체 계층 구조의 순서 | 창, 프레임 또는 대화 상자 내의 화면 위치 | 브라우저 인스턴스가 열린 순서 |
| 계산 규칙 | 테스트 객체 클래스별로 순차적으로 진행됩니다. | 세로 열은 위에서 아래로, 그 다음 왼쪽에서 오른쪽으로 나열됩니다. | 브라우저 인스턴스별로 순차적으로 처리됩니다. |
| 첫 번째 값 | 0 | 0 | 0 |
| 적용 대상 | 웹 및 Windows 수업 | 주로 표준 Windows 수업 | 브라우저 객체만 해당 |
| 고장 시 | 마크업 순서 변경 | 레이아웃의 위치가 변경되거나 크기가 조정되었습니다. | Windows 다른 순서로 열기 |
| 최고의 용도 | 반복되는 그리드 또는 테이블 컨트롤 | 고정 레이아웃을 사용하는 기존 데스크톱 양식 | 결제 팝업과 같은 다중 창 웹 흐름 |
객체 저장소에서 서수 식별자를 설정하는 방법
순서 식별자는 테스트 객체 클래스별로 구성되며, 해당 클래스의 모든 객체에 자동으로 적용됩니다. UFT 나중에 학습합니다. 저장소에 이미 있는 기존 객체는 소급하여 업데이트되지 않습니다.
- 엽니다 UFT 선택 도구 > 객체 식별.
- 웹 또는 표준과 같은 환경을 선택하세요. Windows환경 드롭다운 메뉴에서 선택하세요.
- WebEdit 또는 WinButton과 같이 변경하려는 테스트 객체 클래스를 선택하십시오.
- . 서수 식별자 해당 섹션에서 인덱스, 위치, 생성 시간 또는 없음 중에서 선택하십시오.
- OK 그리고 새로운 순서값을 캡처할 수 있도록 객체를 다시 학습합니다.
- 객체 저장소를 열고 해당 객체를 선택한 다음, 순서 속성이 설명 목록에 나타나는지 확인합니다.
선택 없음 해당 클래스에 대한 대체 기능을 완전히 비활성화합니다. UFT 그러면 추측이 아닌 식별 오류를 발생시키게 되는데, 이는 조용한 오식별이 깔끔한 실패보다 더 큰 피해를 줄 수 있는 테스트 스위트에서 원하는 동작인 경우가 많습니다. 기대치를 잘 작성된 문서에 기록해 두세요. 테스트 사례 그러한 상충 관계를 팀 전체에 명확히 보여줍니다.
⚠️ 경고: 클래스의 순서 식별자를 변경하는 것은 테스트 레벨 설정이 아니라 시스템 레벨 설정입니다. 해당 설정이 내보내지고 공유되지 않으면, 사용자의 컴퓨터에서는 통과하는 스크립트가 동료의 컴퓨터나 빌드 에이전트에서는 실패할 수 있습니다.
서수 식별자를 사용하는 방법 Descript라이브 프로그래밍
기술 기반 프로그래밍에서는 객체 식별 대화 상자가 없습니다. 서수는 다른 속성 이름과 마찬가지로 설명 문자열에 직접 기록되며 항상 0부터 시작합니다.
' Ordinals are zero based: index:=3 is the FOURTH WebEdit on the page Set objPage = Browser("Guru99 Bank").Page("Guru99 Bank") objPage.WebEdit("index:=3").Set "9999999999" Print "Filled WebEdit occurrence #" & (3 + 1) ' Location is counted top to bottom, then left to right objPage.WebButton("location:=1").Click Print "Clicked WebButton occurrence #" & (1 + 1) ' CreationTime works only on Browser objects Print "Switching to browser opened at position #" & (1 + 1) Browser("creationtime:=1").Sync
출력:
Filled WebEdit occurrence #4 Clicked WebButton occurrence #2 Switching to browser opened at position #2
더 안전한 방법은 실물 자산과 결합하는 것입니다. ChildObjects 따라서 서수는 사용 전에 유효성 검사를 거칩니다. 아래 예시는 일치하는 WebEdit 객체가 5개 있고 인덱스가 9인 페이지를 가정합니다.
Dim oDesc, oChildren, intIndex Set oDesc = Description.Create() oDesc("micclass").Value = "WebEdit" oDesc("html tag").Value = "INPUT" Set oChildren = objPage.ChildObjects(oDesc) intIndex = 9 If intIndex < oChildren.Count Then oChildren(intIndex).Set "Guru99" Else Print "Index " & intIndex & " is out of range; only " & oChildren.Count & " objects match" End If
출력:
Index 9 is out of range; only 5 objects match
이 가드는 "객체를 식별할 수 없습니다"라는 도움이 되지 않는 런타임 오류를 읽기 쉬운 메시지로 변환해 줍니다. 이는 결함 보고 시 결과를 발표할 때 중요한 요소입니다. trac케르 또는 에게 HP ALM과 통합됨 UFT.
서수 식별자를 사용할 때 흔히 저지르는 실수
대부분의 서수 관련 결함 trac다시 몇 가지 반복되는 오류로 돌아가 보겠습니다.
- 1부터 세어 봅시다. 모든 순서 식별자는 0부터 시작합니다. 첫 번째 필드에 index:=1을 쓰는 것은 가장 흔한 실수이며, 이로 인해 타이밍 문제처럼 보이는 오프셋 오류가 발생합니다.
- 인덱스와 위치를 혼동하고 있습니다. 인덱스는 소스 코드 뒤에 오고, 위치는 화면 뒤에 옵니다. CSS로 요소의 순서가 바뀌는 페이지에서는 두 값이 서로 달라지고, 서로 바뀝니다.ping 그들은 조용히 잘못된 제어 장치를 목표로 삼습니다.
- 웹 환경 외부에서 CreationTime을 사용하는 방법. 이 속성은 브라우저 객체에만 존재합니다. 페이지, 프레임 또는 창 객체에 적용하면 지원되지 않는 속성이라는 오류가 발생합니다.
- 공유 함수에 서수를 하드코딩하는 것. 인덱스가 2라고 가정하는 재사용 가능한 함수는 레이아웃이 다른 두 번째 화면에서 호출되는 순간 더 이상 사용할 수 없게 됩니다.
- 애플리케이션이 안정화된 후 저장소에 서수 값을 남겨둡니다. 개발자가 안정적인 ID를 추가하면 해당 객체를 다시 살펴보고 순서를 새 속성으로 바꿉니다.
- 그리드에 대한 루프 내에서 서수에 의존합니다. 취하다
ChildObjects이는 실시간 컬렉션을 반환하므로, 카운트는 기록된 페이지가 아닌 현재 페이지를 반영합니다.
리소스
위 튜토리얼에서 사용된 웹페이지를 다운로드하여 스스로 연습해 보세요.
순서 식별자는 객체 식별 모델의 작은 부분일 뿐입니다. 순서 식별자가 더 넓은 워크플로에 어떻게 통합되는지 알아보려면 전체 내용을 계속 읽어보세요. QTP/UFT 훈련 시리즈기본 사항을 복습하세요 소프트웨어 테스팅결과가 어떻게 관리되는지 알아보세요. HP ALM 튜토리얼그리고 위치 추적 전략을 다음과 비교합니다. Selenium 지도 시간.
자주 묻는 질문
여기에서 확인하세요 비디오에 접근할 수 없는 경우

