qtp tutorial 7 qtp s object identification paradigm how qtp identify objects uniquely
Como o QTP identifica o objeto de maneira exclusiva? - Este é o 7º Tutorial de QTP em nossa série de treinamento de QTP.
Estamos nos equipando com todos os conceitos básicos que nos permitirão escrever testes QTP robustos . Nós cobrimos o QTP Configurações de registro e execução , Trabalho com visualização de palavras-chave e os outros tópicos relacionados.
=> Clique aqui para a série de tutoriais de treinamento QTP
Este é o próximo artigo da série que fala sobre um aspecto crucial do QTP - O mecanismo que ele usa para identificar um objeto exclusivamente . Quando você olha para a tela abaixo:
Existem 3 botões e 2 caixas de texto, juntamente com vários outros elementos nesta caixa de diálogo.
Nos exemplos anteriores, quando inserimos o nome de usuário e a senha, vimos como o QTP registrou as mesmas operações em termos de código programático e também em uma tabela na visualização de palavras-chave. Agora, durante a reprodução, como o QTP sabe que o valor que fornecemos como Nome do agente ou Senha deve ir respectivamente para essas caixas de edição. Ou como ele sabe em qual botão clicar para enviar os valores inseridos?
Vamos tentar encontrar uma resposta para isso.
servidor privado gratuito de world of warcraft
É claro que o QTP de alguma forma lembra em qual objeto agir. Da forma como ele faz isso, ele armazena o objeto no AUT como um objeto de teste. Em seguida, examina suas propriedades e classifica o objeto. Por exemplo, ao encontrar o botão OK, ele examina suas propriedades e, com base nelas, classifica o objeto como um ‘WinButton’.
QTP tem um conjunto predeterminado de propriedades que ele aprende / armazena para cada classe de objeto que identifica. Existem 3 aspectos para isso:
- Propriedades obrigatórias : Esta é a lista de propriedades para uma determinada classe que o QTP sempre armazena. Poderíamos dizer que esta é a descrição do objeto. Ele também verifica isso em conjunto com o objeto pai para ver se a descrição é suficiente para identificar o objeto de forma exclusiva.
- Propriedades assistivas : Caso a descrição das propriedades obrigatórias seja insuficiente para identificar o Objeto, um conjunto de propriedades não obrigatórias será adicionado à descrição, uma após a outra, até que haja dados suficientes para identificar o objeto.
- Identificador Ordinal : Se as propriedades auxiliares também não resultarem em uma identificação única de um objeto, um identificador ordinal especial é adicionado pelo QTP, como a localização do objeto na página ou no código-fonte.
Então, é assim que o QTP forma Objetos de Teste. Ele usa essa descrição do Objeto de Teste para pesquisar os objetos nos quais agir durante uma sessão de execução. Ele escolhe os objetos que correspondem perfeitamente à descrição que contém. Esses objetos são chamados Objetos de tempo de execução.
A menos que seu aplicativo tenha mudado significativamente, a descrição do objeto de teste que o QTP possui é suficiente para localizar um objeto.
Para o objeto WinButton que temos em nosso aplicativo Flight, vamos ver quais propriedades o QTP armazenou. Essas informações estão disponíveis no Repositório de objetos. A opção de menu “Recursos-> Repositório de Objetos” irá lançar o OR para nós. Como alternativa, você pode usar CTRL + R ou clicar no ícone.
Se você notar na janela acima, ele armazenou o 'texto' no WinButton como sua descrição para identificar este botão em tempo de execução.
Para aplicativos mais complicados, o testador pode adicionar ou remover certas propriedades para tornar a descrição robusta o suficiente para identificar o objeto em tempo de execução com mais precisão. Para fazer isso, basta clicar no ícone ‘+’.
Todas as outras propriedades do objeto serão exibidas. O usuário pode optar por adicionar uma ou mais dessas propriedades.
Também existe algo chamado “ Identificador de relação visual ”Na tela OR para as propriedades do WinButton.
Este é um recurso que oferece suporte ao reconhecimento de objetos de acordo com seus objetos vizinhos no AUT. Uma vez definido, isso cria um tipo de link para os componentes menos estáveis em seu AUT com os objetos que são identificáveis de forma mais única. O QTP identificará esses objetos, desde que eles mantenham sua posição relativa a esses objetos únicos.
Para definir uma espécie de link posicional teremos que clicar nesta coluna do OR e aparecerá a seguinte tela:
Nesta tela, selecione o sinal ‘+’ para adicionar um objeto com o qual você deseja que seu objeto de teste tenha um link posicional.
Vou escolher “Nome do Agente” e dizer que este objeto deve estar acima do botão “OK”.
É assim que eu defino:
Agora, caso algumas propriedades do botão OK sejam alteradas no futuro, o QTP irá identificá-lo se “Nome do Agente” estiver acima dele.
Identificação Inteligente
como jogar servidor privado de world of warcraft
Este é o mecanismo empregado pelo QTP em uma dessas duas situações. A descrição de um objeto que o QTP possui:
- Não corresponde a nenhum objeto de tempo de execução
- Combina com vários objetos
Este é um conceito um pouco avançado, por isso vamos abordá-lo posteriormente por meio de alguns exemplos para uma compreensão fácil e elaborada.
Identificador Ordinal
Este é um valor numérico que representa a ordem relativa do objeto com objetos que possuem uma descrição semelhante. Se um objeto 1 e um objeto 2 tiverem as mesmas propriedades obrigatórias e auxiliares, o identificador ordinal será usado para reconhecer o objeto de forma exclusiva.
Este valor está relacionado aos demais objetos da tela, portanto, caso algo mude na tela, este identificador pode não ser útil. Deve-se observar que, se as propriedades obrigatórias e auxiliares forem suficientes, um identificador ordinal não é atribuído ao registro. Pode ser adicionado mais tarde clicando na respectiva coluna do objeto no OU
Existem 3 tipos de identificadores ordinais:
- Índice: isso é baseado na ordem de aparecimento de um objeto no código do aplicativo
- Localização: com base na localização em uma tela ou caixa de diálogo ou página
- Tempo de criação: Isso é usado apenas para objetos de navegador. No caso de existirem 2 navegadores com propriedades semelhantes, então aquele que é criado primeiro e depois é considerado.
Por exemplo, vamos entender como o identificador de 'índice' funciona em nossa tela de login de aplicativos de voo:
Estes são os seguintes componentes:
Como você pode ver, o texto estático e as caixas de edição têm a mesma propriedade 'text'.
Se eu sei que um deles é um texto estático e o outro é um objeto WinEdit, então não há problema algum. Digamos que se todos eles forem tratados como WinObject, terei de especificar em qual objeto agir. Isso só vai acontecer quando a identificação obrigatória, assistiva e inteligente falhar. Então, a fim de dizer ao QTP qual é o quê, vou atribuir um identificador ordinal de ‘Índice’ Eu farei isso no OR.
Vou definir o identificador de texto estático do nome do agente como 0 e, para a caixa de edição, vou defini-lo como 1.
Isto é o que parece:
Portanto, se eu precisar acessar o texto estático, farei o seguinte:
WinObject (“texto: = Nome do agente:”, índice: = 0) - Isso se refere ao texto estático
WinObject (“texto: = Nome do Agente:”, índice: = 1) - Isso se refere à caixa de edição
A mesma teoria se aplica ao identificador de localização, exceto que escolheremos a localização na janela para determinar o valor numérico que é aplicável a um determinado objeto.
Configurando propriedades de identificação de objeto:
As propriedades assistivas obrigatórias e identificadores ordinais a serem considerados para um objeto de uma determinada classe a ser reconhecido podem ser configurados usando “Ferramentas-> Identificador de Objeto”. Também podemos definir as propriedades de identificação inteligente por meio desta janela.
A janela é a seguinte:
Como pode ser visto na imagem acima, o ambiente pode ser escolhido na caixa suspensa. Depois de escolhida, as classes de objetos nos ambientes correspondentes são mostradas na lista. Depois que um objeto é selecionado, as propriedades obrigatórias e auxiliares são exibidas. O usuário pode adicionar / remover propriedades adicionais a esta lista.
Além disso, a identificação inteligente pode ser habilitada / desabilitada para uma determinada classe de objetos quando necessário. Para definir o identificador ordinal, há uma lista suspensa que pode ser escolhida para identificar o objeto usando Localização, Índice ou Hora de criação (apenas para o tipo de navegador).
Resumiremos os conceitos fundamentais antes de passar para programas QTP completos. O próximo artigo QTP terá diferentes modos de gravação, Object Spy, Object Repository, etc. detalhes.
=> Visite aqui para a série de tutoriais de treinamento QTP
Leitura recomendada
- Repositório de objetos em QTP - Tutorial # 22
- QTP Tutorial # 18 - Estruturas baseadas em dados e híbridas explicadas com exemplos de QTP
- Tutorial QTP nº 24 - Usando objetos virtuais e cenários de recuperação em testes QTP
- Tutorial QTP nº 6 - Compreendendo as configurações de registro e execução QTP para nosso primeiro teste
- QTP Tutorial # 23 - QTP Smart Object Identification, Sync Point e Test Result Analysis
- QTP Tutorial # 8 - Aprenda sobre os modos de gravação QTP, Object Spy e Object Repositories
- Parametrização em QTP (Parte 2) - QTP Tutorial # 20
- Tutoriais de QTP - 25+ Tutoriais de treinamento do Micro Focus Quick Test Professional (QTP)