Partilhar via


Usando automação de interface do usuário para testes automatizados

Este através de Exibir descreve como Pode ser útil como uma estrutura para Acessar através de programação em automatizado testar cenários.

Fornece um modelo de objeto unificado que permite que todos As estruturas para expor complexas e rich funcionalidade em um acessível e fácil automatizado de maneira.

foi desenvolvido como uma sucessora para . Uma estrutura existente é projetada para fornecer uma solução para tornar os controles e aplicativos acessíveis. não foi desenvolvido com a automação de teste em mente mesmo que ele tornou essa função devido aos requisitos muito semelhantes a acessibilidade de automação.bem como fornecendo mais refinadas soluções para acessibilidade, também especificamente foi projetado para fornecer funcionalidade robusta para automatizada teste.Por exemplo, se baseia em um Simples interface para expor informações sobre o interface do usuário e coletar as informações necessárias para at produtos; separa os dois modelos.

Os dois um Provedor e Cliente São necessários para implementar Para que ele ser útil como uma automatizada teste ferramenta.Provedores de automação interface do usuário são aplicativos como o Microsoft Word, Excel, e outros aplicativos de terceiros ou controles com base na ope Classificação do sistema.Clientes de automação interface do usuário Incluir automatizada scripts de teste e tecnologia aplicativos.

Observação:

A intenção desta visão geral é apresentar os recursos novos e aprimorados automatizados Teste do .Esta visão geral não se destina a fornecer informações sobre recursos de acessibilidade e não abordará acessibilidade além de onde for necessário.

Este tópico contém as seguintes seções.

Automação de interface do usuário em um provedor

Para um Para ser automatizado, um desenvolvedor de um aplicativo ou o Controlarar deve observar que ações de usuário final podem por Formulário na Objeto usando a interação de teclado e mouse padrão.

Uma vez essas chave ações foram identificadas, o correspondente Padrões de Controlarar (ou seja, o Padrões de Controlarar que espelham a funcionalidade e o comportamento das Elemento) deve ser implementado no controle.Por exemplo, a interação do usuário com um controle caixa de combinação (como a caixa de diálogo Executar) normalmente envolve expandir e recolher a caixa de combinação para ocultar ou exibir uma lista de itens, selecionar um item da lista ou adicionando um novo valor via entrada do teclado.

Observação:

Com outros modelos de acessibilidade, os desenvolvedores devem coletar informações diretamente de botões, menus ou outros controles individuais.Infelizmente, cada tipo de controle vem em dúzias de variações secundárias.Em outras palavras, mesmo que dez variações de uma botão possam todas funcionar da mesma maneira e executar a mesma função, elas devem todas ser tratadas como controles exclusivos.Não é possível saber que esses controles são funcionalmente equivalentes.Padrões de controle foram desenvolvidos para representar esses comportamentos de controle Comum.Para obter mais informações, consulte Visão Geral de Padrões de Controle de Automação de Interface de Usuário.

Implementando automação de interface do usuário

Como mencionado anteriormente, sem o modelo unificado fornecido por ferramentas de teste e os desenvolvedores são necessários para saber informações Framework-específicos em Ordem para expor as propriedades e os comportamentos dos controles dessa estrutura.Como pode ser vários diferentes estruturas interface do usuário apresentam a qualquer momento único dentro Sistemas Operacionais, incluindo Win32, e Ele pode ser uma tarefa desanimadora para testar Múltiplo aplicativos com os controles que parecem semelhantes.Por exemplo, a tabela sem seguir linhas os nomes das propriedades Framework-específicas necessárias para recuperar o nome (ou texto) associado com um controle de botão e mostra o único equivalente Propriedade.

Tipo de controle de automação de interface do usuário

Framework de interface do usuário

Propriedade específica do framework

Propriedade de automação de interface do usuário

Button

Windows Presentation Foundation

Conteúdo

NameProperty

Button

Win32

Legenda

NameProperty

Image

HTML

alt

NameProperty

Provedores de automação interface do usuário São responsáveis por Mapeando propriedades de seus controles Framework-específicos para o equivalente Propriedades.

Informações sobre a implementação Em um Provedor podem ser encontradas no Provedores de Automação de IU para Código Gerenciado.Informações sobre como implementar Controlarar padrões estão disponíveis no Padrões de controle de automação de interface do usuário e Padrão de Automação de Texto de Interface de Usuário.

Automação de interface do usuário em um cliente

O objetivo de muitos cenários e ferramentas automatizadas de teste é a manipulação consistente e reproduzível da interface do usuário.Isso pode envolver realizar testes de unidade em controles específicos até a gravação e reprodução de scripts de teste que percorrem uma série de ações genéricas em um grupo de controles.

Uma complicação que surge a partir de aplicativos automatizados é a dificuldade de sincronizar um teste com um alvo dinâmico.Por exemplo, um controle de caixa de listagem, como o contido no Gerenciador de Tarefas do Windows, que exibe uma lista de aplicativos atualmente em execução.Como os itens na caixa de listagem são atualizados dinamicamente fora do controle do aplicativo de teste, tentar repetir a seleção de um item específico na caixa de listagem com qualquer consistência é impossível.Questões semelhantes também podem ocorrer ao tentar repetir alterações simples foco em um é fora do controle do aplicativo de teste.

Acesso através de programação

Acessar por programação fornece a capacidade para imitar, através de código, qualquer interação e experiência expostos pelo mouse tradicional e entradas de teclado. Permite o acesso através de programação por meio de componentes cinco:

Propriedades chave para automação de testes

A capacidade para identificar com exclusividade e posteriormente localize qualquer controle dentro de Fornece a base para aplicativos de teste automatizadas para operar em que .T aqui são vários propriedades usadas por Os clientes e Provedores Que ajudam isso.

AutomationID

Identifica exclusivamente um Elemento de automação de seus irmãos.AutomationIdProperty() não é localizado, ao contrário uma propriedade, como NameProperty que está normalmente localizado se um produto é fornecido em Múltiplo idiomas.Consulte Use the AutomationID Property.

Observação:

AutomationIdProperty() Não garante um Exclusivo de identidade em toda a árvore de automação.Por exemplo, um aplicativo pode conter um controle de menu com vários itens de menu no nível superior que, por sua vez, têm vários itens de menu como seus filhos.Esses itens de menu secundários podem ser identificados por um esquema genérico, como "Item1", "Item2", "Item3", etc. permitindo identificadores duplicados para os filhos entre itens de menu de nível superior.

ControlType

Identifica o tipo de controle representado por um Elemento de automação.Informações significativas podem ser inferidas a partir do conhecimento do tipo do controle.Consulte Visão Geral dos Tipos de Controle de Automação de Interface do Usuário.

NameProperty

Este é um texto Cadeia de Caracteres que identifica ou explica um controle.NameProperty Deve ser usado com cautela já que ele pode ser localizado.Consulte UI Automation Properties Overview.

Implementando automação de interface do usuário em um aplicativo de testes

Adicione as referências de automação de interface do usuário.

O DLL é necessária para Clientes de automação interface do usuário são listados aqui.

Adicionar a System.Windows.Automation Espaço para nome.

Este Namespace contém tudo Clientes de automação interface do usuário necessários para usar os recursos do Exceto Manipulação texto.

Adicionar a System.Windows.Automation.Text Espaço para nome.

Este espaço para nome contém tudo que um Clientes de automação interface do usuário necessários para usar os recursos do Manipulação de texto.

Encontrar controles de interesse

Localizar scripts automatizados de teste Interface do usuário de automação elementos que representam os controles de interesse dentro da árvore de automação.

Há várias maneiras para obter Interface do usuário de automação elementos Com o código.

  • Consulta o Usando um Condition Instrução.Isso é normalmente onde o idioma neutro AutomationIdProperty() é usado.

Observação:
Um AutomationIdProperty() pode ser obtido usando uma ferramenta como Spy interface do usuário (UISpy.exe) que é capaz itemizar os Propriedades de um controle.
  • Use o TreeWalker Classe para cruzar toda a Árvore Ou um subconjunto dele.

  • Controlar o foco.

  • Use o hWnd do controle.

  • Use localização na tela, como o local do cursor do mouse.

Consulte Obtendo elementos da automação interface do usuário

Obter os padrões de controle

Padrões de controle Expor comportamentos Comum para controles funcionalmente semelhantes.

Depois de localizar os controles que exigem teste, scripts de teste automatizadas obter o Padrões de Controlarar de interesse daqueles Interface do usuário de automação elementos.Por exemplo, o InvokePattern controle padrão Para a funcionalidade botão típica ou WindowPattern controle padrão Para janela funcionalidade.

Consulte Visão Geral de Padrões de Controle de Automação de Interface de Usuário.

Automatizar a interface do usuário

Scripts de teste automatizadas agora podem controlar qualquer de interesse de uma Framework usando as informações e a funcionalidade exposta pela Padrões de Controlarar.

Ferramentas e tecnologias relacionadas

Há um Número de relacionados ferramentas e tecnologias que oferecem suporte ao teste automatizado com .

  • Spy interface do usuário (UISpy.exe) é um Aplicativo que pode ser usado para reunir Informações de ambos Provedor e Cliente Desenvolvimento e Depurando. Está incluído na .

  • UIAutoCmd é um Ferramenta Linha de comando com recursos semelhantes a .

  • Expõe MSAABridge As informações Os clientes.O principal objetivo de ponte para é permitir existente Os clientes a capacidade para interagir com qualquer estrutura que implementou .

Segurança

Para informações de segurança, consulte Visão geral de segurança da automação de interface do usuário.

Consulte também

Outros recursos

Fundamentos de Automação de Interface de Usuário