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 ReconhecimentoJava |
.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 HierarquiaJava |
.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 em
Tabela 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 AdministrativasJava |
.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çãoJava |
.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çãoJava |
.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 DadosJava |
.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 PropriedadesJava |
.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 DadosJava |
.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 ReflexoJava |
.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.