기존 프록시를 확장하여 모든 도메인에 맞는 새 프록시를
개발하는 경우 올바른 프록시를 확장하도록 기존 프록시와 계층 구조를
이해하는 일이 중요합니다.
프록시 클래스의 메소드 및 특성에 대한 자세한 정보는
프록시 API 참조를 확인하십시오.
테스트할 제어 식별
기능 테스팅
도구의 첫 타스크는 테스트할 제어를 식별하고 이를 테스트할
응용프로그램(AUT)에서 표시하는 것입니다.
Functional Tester는 제어에서
인식 특성 및 계층 구조를 사용 중인지 식별하여 이를 TestObject 맵에
표시합니다. 인식 특성 및 계층 구조는 서로 다른 제어에 따라
다를 수 있습니다. 제어에 맞게 개발된 프록시에서는 이 정보를
Functional Tester에 제공합니다. 새 프록시를
개발하는 동안 사용자는 각 도메인에서 기본 프록시를 상속받게 됩니다. 기본
프록시에서 메소드가 이미 구현되어 있으므로 사용자는 일반적으로 이들 메소드를
대체하지 않습니다.
- 인식 특성
- 표 1에 나열되어 있는 메소드를 사용하여
인식 특성 및 제어의 중량을 지정할 수 있습니다.
주: 오브젝트 라이브러리를
사용하여 인식 특성 및 중량을 지정할 수도 있습니다.
표 1. 인식 특성 지정에 사용할 확장 가능 메소드Java |
.Net |
Hashtable getRecognitionProperties() |
Hashtable GetRecognitionProperties() |
int getRecognitionPropertyWeight(String propertyName) |
int GetRecognitionPropertyWeight(String propertyName) |
- 계층 구조
- 표 2에 나열되어 있는 메소드를 사용하여
제어의 계층 구조를 지정할 수 있습니다.
주: 일반적으로 이러한 메소드는 기본 프록시
클래스에서 구현되며 확장할 필요가 없습니다.
표 2. 계층 구조 지정에 사용할 확장 가능 메소드Java |
.Net |
getParent() |
GetParent() |
getTopParent() |
GetTopParent() |
getChildren() |
GetChildren() |
Object getChildAtPoint(Point pt) |
Object GetChildAtPoint(Point pt) |
getOwner() |
GetOwner() |
getOwnedObjects() |
GetOwnedObjects() |
정의
표 3에 나열되어 있는 메소드를 사용하여 아이콘
또는 기술적 이름과 같은 제어의 관리 특성을 변경할 수 있습니다.
표 3. 관리 특성 변경에 사용할 확장 가능 메소드Java |
.Net |
String getTestObjectClassName() |
String GetTestObjectClassName() |
String getDescriptiveName() |
String GetDescriptiveName() |
String getUniqueId() |
String GetUniqueId() |
boolean shouldBeMapped() |
bool ShouldBeMapped() |
String getRole() |
String GetRole() |
String getObjectClassName() |
String GetObjectClassName() |
레코딩
Functional Tester는 레코더가
설정되면 제어에서 수행된 사용자 조치를 레코드합니다. 마우스 상호작용
및 키보드 상호작용으로 해당 사용자 조치를 그룹화할 수 있습니다. 레코딩을
위해
표 4에 나열되어 있는 메소드를
사용할 수 있습니다.
표 4. 레코딩에 사용할 확장 가능 메소드Java |
.Net |
void processMouseEvent(IMouseActionInfo action) |
void ProcessMouseEvent(IMouseActionInfo action) |
void processPreDownMouseEvent(IMouseActionInfo action) |
void ProcessPreDownMouseEvent(IMouseActionInfo action) |
void processPreUpMouseEvent(IMouseActionInfo action) |
void ProcessPreUpMouseEvent(IMouseActionInfo action) |
void processPostUpMouseEvent(IMouseActionInfo action) |
void ProcessPostUpMouseEvent(IMouseActionInfo action) |
void processHoverMouseEvent(IMouseActionInfo action) |
void ProcessHoverMouseEvent(IMouseActionInfo action) |
getScriptCommandFlags() |
GetScriptCommandFlags() |
Vector getSubItems() |
ArrayList GetActionArgs(Point pt) |
Rectangle getRectangle(SubItem) |
SubItem FindSubItem(Point pt) |
재생
표 5에 나열되어 있는 메소드를 사용하여 화면 직사각형
또는 부속 항목의 위치를 찾을 수 있습니다.
주: 일반적으로 새 부속 항목을 소개하는 경우가 아니면
해당 메소드를 확장할 필요가 없습니다.
표 5. 재생에 사용할 확장 가능 메소드Java |
.Net |
Rectangle getScreenRectangle(SubItem) |
Point GetPointForSubItem(SubItem) |
검증 포인트
제어에 더 많은 데이터 유형 및 특성을
추가할 수 있습니다.
- 데이터 검증
- 표 6에 나열되어 있는 메소드를 사용하여
더 많은 데이터 유형을 제어에 추가할 수 있습니다.
표 6. 데이터 유형 추가에 사용할
확장 가능 메소드Java |
.Net |
Hashtable getTestDataTypes() |
Hashtable GetTestDataTypes() |
ITestData getTestData(String) |
ITestData GetTestData(string testDataType) |
- 특성 검증
- 표 7에 나열되어 있는 메소드를 사용하여
제어에 더 많은 특성을 추가할 수 있습니다.
표 7. 특성 추가에 사용할
확장 가능 메소드Java |
.Net |
Hashtable gerProperties() |
Hashtable GerProperties() |
object getProperty(String) |
object GetProperty(string) |
데이터 구동
표 8에
나열되어 있는 메소드를 사용하여 데이터 구동에 사용할
메소드를 지정할 수 있습니다.
표 8. 데이터 구동에 사용할
확장 가능 메소드Java |
.Net |
MethodSpecification getDataDrivableCommand |
MethodSpecification GetDataDrivableCommand |
리플렉션 지원
테스트 스크립트에서
Java™ 및
.Net이 제공하는 리플렉션 지원을 사용할 수 있습니다. getMethods() 및 Invoke()와 같은 API를 사용하여
원격 호출에서 사용할 기본 오브젝트의 메소드에 대한 정보에
액세스할 수 있습니다. 이 정보는 메소드 이름 및 서명을 포함합니다. 리플렉션
지원을 위해
표 9에 나열되어 있는
메소드를 사용할 수 있습니다.
표 9. 리플렉션 지원에 사용할
확장 가능 메소드Java |
.Net |
getMethods() |
GetMethods() |
invoke() |
Invoke() |
getNonValueProperties() |
|
해당 값이 프로세스 경계에서 직렬화할 수 없는
오브젝트의 참조이기 때문에 getNonValueProperties() 메소드는
지원되지 않는 특성을 리턴합니다. getProperty() 메소드를 사용하여 이러한
특성에 여전히 액세스할 수 있습니다. 테스트 스크립트에 이러한 특성이 리턴되는
경우 해당 특성은 AUT에서 오브젝트의 참조를 포함하는 TestObject로
리턴됩니다. 오브젝트를 해제하려면 테스트 스크립트가 TestObject 메소드 unregister()를
호출해야 합니다.