Programação Descritiva em QTP/UFT: Dinâmica e Estática

O que é programação descritiva?

A programação descritiva é usada para executar operações em um objeto no AUT cuja definição não está armazenada no repositório de objetos. Usando esse mecanismo, você pode ignorar a identificação do Repositório de Objetos e fornecer a Descrição do Objeto na própria instrução.

Um nome de objeto é usado simplesmente para mapear um objeto em um script com sua descrição em um repositório de objetos. Ou seja, se você alterar o nome do objeto em seu script e repositório de objetos, o script deverá ser executado. Assista a seguirwing vídeo sobre este conceito

Clique SUA PARTICIPAÇÃO FAZ A DIFERENÇA se o vídeo não estiver acessível

Destaques Vídeo

  • Exclua a descrição do objeto do nome do agente Win Edit Box do repositório de objetos. Se você executar o teste novamente, ele falhará, pois não consegue reconhecer o objeto. Vamos examinar o motivo pelo qual o script está falhando
  • Durante o tempo de execução, o Micro Focus UFT identifica o operação que é executada no WinEdit box e a Descrição do Objeto no Repositório de Objetos é armazenada como Nome do Agente. Ele usa esse nome para rastrear o objeto em um repositório de objetos. Para um pai, você não pode ter dois objetos filhos com o mesmo nome. Conseqüentemente, o QTP mapeia exclusivamente o objeto no repositório. Em seguida, ele usa a descrição armazenada no Repositório de Objetos e substitui o nome pela descrição. Em seguida, ele usa esta instrução para identificar o objeto no aplicativo em teste
  • Como no nosso caso havíamos excluído completamente a descrição do objeto, o script falha
  • Mas e se, em vez de QTP substituir a descrição do objeto, você, como testador, especificar diretamente as descrições do objeto em seu script. Isso nada mais é do que “Programação Descritiva”

Tipos de programação descritiva

Você pode usar a programação descritiva de duas maneiras

  1. Estático
  2. Dinâmico

Programação Descritiva Estática

No Método Estático, para identificação do objeto, você especifica a propriedade de um objeto no seguintewing formato

property:=values,

Este formato é chamado de par de valores de propriedade e é colocado entre aspas

Se o seu objeto usa múltiplas descrições para identificação, você pode especificá-las usando vírgulas

Portanto, no nosso caso, a descrição do Nome do Agente torna-se

"nativeclass:=Edit", "attached text:=Agent Name:"

Programação Descritiva Dinâmica

O segundo método de fazer a mesma ação é usar programação descritiva dinâmica

Caso seu script use o candidato a objeto de programação descritiva várias vezes, será muito cansativo especificar todos os pares de valores de propriedade para cada instrução

Nesses casos, você pode fazer uso de Descrição Classe fornecido pela QTP

A sintaxe para criar um objeto de descrição é

Set MyDescription = Description.Create();
MyDescription("property").Value = "property-value";

Este é o Método Dinâmico

Por que usar programação descritiva?

Transcrição de vídeo

  • A questão de um milhão de dólares é por que usar DP quando o processo de identificação de objetos é tratado pelo QTP
  • Suponha que você seja designado para testar um portal de empregos. Você insere uma consulta de pesquisa no portal e
  • seu teste espera que você selecione todas as vagas disponíveis e clique em candidatar-se a vaga
  • Mas o número de empregos refletidos dependerá da consulta de pesquisa e dos empregos disponíveis no momento da execução do script, mas não há como prever antecipadamente o número de empregos que seriam refletidos
  • Nesses casos, você pode usar programação descritiva. Mesmo que você não saiba o número e os nomes do chequeboxes você conhece a classe dos objetos como “WebCheckBox"
  • Você pode usar o Método ChildObject para retornar objetos pertencentes a um pai específico
  • Uma linha de código como –
    Set allObjects = Browser("Jobs").Page("QTP").ChildObjects()
  • Retornará todos os objetos filhos desta página.
  • Mas queremos apenas WebCheckBox objetos. Para isso podemos criar um objeto de criação de filtro e definir sua propriedade como web check box e passe esse filtro como argumento para o método ChildObjects
  • Neste caso, apenas o chequeboxes são retornados.
  • A seguir, você pode escrever um código como este que acessa toda a coleção de chequesboxcomeça do zero e define todas as verificaçõesboxestá LIGADO.
  • Em seguida, você pode clicar no botão Aplicar para concluir o teste
  • Você também pode usar a Programação Descritiva para executar objetos que são difíceis de gravar, como painéis de ocultação automática, objetos com alteração de hierarquiaarchies, objetos internos aninhados, submenus.
  • Você também pode fazer manipulações avançadas de strings usando programação descritiva
  • Em conjunto com a propriedade de índice, a programação descritiva pode ser muito útil na identificação de objetos difíceis.
  • Se você usar a descrição programática para um objeto na hierarquia de objetos, você precisará usar a programação de descrição para objetos filhos subsequentes
  • Por exemplo, para o objeto de página, foi usada programação descritiva, mas para o objeto filho subsequente, o WinEdit Object Repository é usado, o que é incorreto
  • Pelo contrário, aqui para Page e WinEdit é usada programação descritiva que é correta