Hierarquia de ProxyObject

Ao desenvolver novos proxies estendendo proxies existentes para qualquer domínio, é importante entender os proxies e as hierarquias existentes para estender o proxy correto.

Para obter mais informações sobre os métodos e as propriedades das classes do proxy, consulte Referência de API do Proxy.

Identificando o Controle em Teste

A primeira tarefa para uma ferramenta de teste funcional é identificar o controle em teste e representá-lo no AUT (aplicativo em teste). O Functional Tester identifica que um controle está usando propriedades de reconhecimento e hierarquia e o representa no Mapa de TestObject. As propriedades de reconhecimento e a hierarquia podem variar para controles diferentes. O proxy desenvolvido para um controle fornece estas informações para o Functional Tester. Ao desenvolver novos proxies, você herda os proxies base em cada domínio. Geralmente você não substitui esses métodos, porque eles já foram implementados nos proxies base.
Propriedades de Reconhecimento
Você pode usar os métodos que estão listados no Tabela 1 para especificar os pesos e as propriedades de reconhecimento para um controle.
Nota: Você também pode especificar o peso e as propriedades de reconhecimento usando a Biblioteca de Objetos.
Tabela 1. Métodos Extensíveis para Especificar Propriedades de Reconhecimento
Java .Net
Hashtable getRecognitionProperties() Hashtable GetRecognitionProperties()
int getRecognitionPropertyWeight(String propertyName) int GetRecognitionPropertyWeight(String propertyName)
Hierarquia
Você pode usar os métodos que estão listados em Tabela 2 para especificar a hierarquia de um controle.
Nota: Geralmente, esses métodos são implementados nas classes do proxy base e você não pode estender.
Tabela 2. Métodos Extensíveis para Especificar Hierarquia
Java .Net
getParent() GetParent()
getTopParent() GetTopParent()
getChildren() GetChildren()
Object getChildAtPoint(Point pt) Object GetChildAtPoint(Point pt)
getOwner() GetOwner()
getOwnedObjects() GetOwnedObjects()

Definindo

Você pode usar os métodos listados emTabela 3 para alterar as características administrativas de um controle, por exemplo, ícones ou nomes descritivos.
Tabela 3. Métodos Extensíveis para Alterar Características Administrativas
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()

Gravando

O Functional Tester grava as ações do usuário desempenhadas em um controle quando o gravador está ligado. Essas ações podem ser agrupadas como interações do mouse e do teclado. Você pode usar os métodos listados em Tabela 4 para gravar.
Tabela 4. Métodos Extensíveis para Gravação
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)

Reprodução

Você pode usar os métodos listados em Tabela 5 para localizar o retângulo ou ponto da tela para Subitens.
Nota: Geralmente, você não precisa estender esses métodos, a menos que apresente novos Subitens.
Tabela 5. Métodos Extensíveis para Reprodução
Java .Net
Rectangle getScreenRectangle(SubItem) Point GetPointForSubItem(SubItem)

Pontos de Verificação

Você pode incluir mais tipos de dados e propriedades para um controle.
Verificação de Dados
Você pode usar os métodos listados em Tabela 6 para incluir mais tipos de dados para um controle.
Tabela 6. Métodos Extensíveis para Incluir Tipos de Dados
Java .Net
Hashtable getTestDataTypes() Hashtable GetTestDataTypes()
ITestData getTestData(String) ITestData GetTestData(string testDataType)
Verificação de Propriedade
Você pode usar os métodos listados em Tabela 7 para incluir mais propriedades para um controle.
Tabela 7. Métodos Extensíveis para Incluir Propriedades
Java .Net
Hashtable gerProperties() Hashtable GerProperties()
object getProperty(String) object GetProperty(string)

Transporte de Dados

Você pode usar os métodos que estão listados em Tabela 8 para especificar o método que deve ser usado para o transporte de dados.
Tabela 8. Métodos Extensíveis para o Transporte de Dados
Java .Net
MethodSpecification getDataDrivableCommand MethodSpecification GetDataDrivableCommand

Suporte ao Reflexo

Você pode usar o suporte ao reflexo que o Java e o .Net fornecem a partir do script de teste. Com APIs como getMethods() e Invoke(), você pode acessar informações sobre métodos no objeto subjacente para usar em chamadas remotas. Estas informações incluem nome e assinatura de métodos. Você pode usar os métodos listados em Tabela 9 para o suporte ao reflexo.
Tabela 9. Métodos Extensíveis para o Suporte ao Reflexo
Java .Net
getMethods() GetMethods()
invoke() Invoke()
getNonValueProperties()  
O método getNonValueProperties() retorna as propriedades que não são suportadas porque o valor é uma referência a um objeto que pode não ser serializado entre os limites do processo. Essas propriedades ainda podem ser acessadas usando os métodos getProperty(). Se esse tipo de propriedade for retornado para o script de teste, será retornado como um TestObject que contém uma referência ao objeto no AUT. O script de teste deve chamar o método unregister() do TestObject para liberar o objeto.

Feedback