ProxyObject 계층 구조

기존 프록시를 확장하여 모든 도메인에 맞는 새 프록시를 개발하는 경우 올바른 프록시를 확장하도록 기존 프록시와 계층 구조를 이해하는 일이 중요합니다.

프록시 클래스의 메소드 및 특성에 대한 자세한 정보는 프록시 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()를 호출해야 합니다.

피드백