Compartilhar via


Fazendo testes de IU codificado aguardar eventos específicos durante a reprodução

Em um reprodução codificado de teste da interface do usuário, você pode instruir o teste para aguardar para certos eventos ocorra, como uma janela para aparecer, a barra de progresso a desaparecer, e assim por diante.Para fazer isso, use o método apropriado de UITestControl.WaitForControlXXX() , como descrito na tabela a seguir.Para obter um exemplo da interface do usuário codificado testar se as esperas de um controle ser habilitado usando o método de WaitForControlEnabled , consulte Instruções passo a passo: criando, editando e mantendo um teste de IU codificado.

Requisitos

  • Visual Studio Ultimate, Visual Studio Premium
DicaDica

Você também pode adicionar atrasos antes que as ações que usam interface do usuário codificado testem o publicador.Para obter mais informações, consulte Como inserir um atraso antes de uma ação de interface do usuário usando o Editor de Testes de Interface de Usuário Codificada.

Métodos deUITestControl.WaitForControlXXX()

Métodos deUITestControl.WaitForControlXXX()

Descrição

WaitForControlReady

Espera para que o controle está pronto para aceitar a entrada do mouse em e de teclado.O mecanismo chama implicitamente essa API para todas as ações esperem o controle para estar pronto antes de fazer qualquer operação.No entanto, em um cenário esotérico, você pode ter que fazer a chamada explícita.

WaitForControlEnabled

Espera o controle a ser habilitado quando o assistente está fazendo alguma validação assíncrona de entrada fazer chamadas ao servidor.Por exemplo, você pode esperar que o método botão de Avançar do assistente a ser habilitado ().Para obter um exemplo desse método, consulte Instruções passo a passo: criando, editando e mantendo um teste de IU codificado.

WaitForControlExist

Espera para que o controle aparece na interface do usuário.Por exemplo, você está aguardando uma caixa de diálogo de erro após o aplicativo que fez a validação dos parâmetros.O tempo necessário para a validação são variáveis.Você pode usar esse método para esperar a caixa de diálogo de erro.

WaitForControlNotExist

Espera para que o controle desapareça de interface do usuário.Por exemplo, você pode esperar a barra de progresso para desaparecer.

WaitForControlPropertyEqual

Esperas da propriedade especificada do controle para ter o valor fornecido.Por exemplo, você espera que o texto de status para alterar a Feita.

WaitForControlPropertyNotEqual

Esperas da propriedade especificada do controle para ter o oposto de um valor especificado.Por exemplo, você espera que a caixa de edição do não ser somente leitura, ou seja, editável.

WaitForControlCondition

As esperas pelo predicado especificado retornam para ser true.Isso pode ser usado para a operação complexa de espera (como as condições OR) em um controle especificado.Por exemplo, você pode esperar até que o texto de status está Êxito ou Falha conforme mostrado no seguinte código:

// Define the method to evaluate the condition 
private static bool IsStatusDone(UITestControl control) 
{ 
    WinText statusText = control as WinText; 
    return statusText.DisplayText == "Succeeded" || statusText.DisplayText == "Failed"; 
} 
// In test method, wait till the method evaluates to true 
statusText.WaitForControlCondition(IsStatusDone);

WaitForCondition``1

Todos os métodos anteriores são métodos de instância de UITestControl.Esse é um método estático.Esse método também espera o predicado especificado para ser true mas pode ser usado para a operação complexa de espera (como as condições OR) em várias controles.Por exemplo, você pode esperar até que o texto de status está Êxito ou até que uma mensagem de erro aparece, conforme mostrado no seguinte código:

// Define the method to evaluate the condition 
private static bool IsStatusDoneOrError(UITestControl[] controls) 
{ 
    WinText statusText = controls[0] as WinText; 
    WinWindow errorDialog = controls[1] as WinWindow; 
    return statusText.DisplayText == "Succeeded" || errorDialog.Exists; 
} 
// In test method, wait till the method evaluates to true 
UITestControl.WaitForCondition<UITestControl[]>(new UITestControl[] { statusText, errorDialog }, IsStatusDoneOrError); 

Todos esses métodos têm o seguinte comportamento:

  • Os métodos retornam true se a espera é com êxito e false se a espera falhou.

  • O tempo limite implícita para a operação de espera é especificado pela propriedade de WaitForReadyTimeout .O valor padrão dessa propriedade é 60000 milissegundos (um minuto).

  • Os métodos têm uma sobrecarga para colocar o tempo limite explícito em milissegundos.Porém, quando os resultados da operação de espera em uma busca implícita pelo controle ou, quando o aplicativo está ocupado, o tempo de espera real pode ser mais do que o tempo limite especificado.

As funções anteriores são avançados e flexíveis e devem satisfazer quase todas as condições.No entanto, no caso desses métodos não atenderem às suas necessidades e você precisa codificar Wait, ou Sleep em seu código, é recomendável usar o Playback.Wait () em vez de Thread.Sleep () API.As razões para essa são:

  • Você pode usar a propriedade de ThinkTimeMultiplierpara alterar a duração de suspensão.Por padrão, essa variável é 1 mas você pode aumentá-lo ou diminuir para alterar o tempo de espera por qualquer lado no código.Por exemplo, se você estiver testando especificamente pela rede lenta, ou em qualquer outro caso lentos de desempenho, você pode alterar essa variável em um local (ou mesmo no arquivo de configuração) a 1,5 para adicionar a espera adicional de 50% de todos locais.

  • Playback.Wait() internamente chama Thread.Sleep() (depois acima de computação) em partes menores em um loop para- ao verificar cancelamentos de usuário \ interrompe a operação.Ou seja Playback.Wait() permite o cancelamento de reprodução antes do término da suspensão enquanto espera que o não pode ou exceção do lançamento.

DicaDica

O editor codificado de teste da interface do usuário permite alterar facilmente os testes codificados da interface do usuário.Usando o editor codificado de teste da interface do usuário, você pode encontrar, exibir, editar e seus métodos de teste.Você também pode editar ações de interface do usuário e seus controles associados no mapa do controle de interface do usuário.Para obter mais informações, consulte Editando testes de interface de usuário codificada usando o editor de teste de interface de usuário codificada.

Orientação

Para obter mais informações, consulte Testando a entrega contínua com o Visual Studio 2012 – capítulo 5: Automatizando teste do sistema

Consulte também

Tarefas

Instruções passo a passo: criando, editando e mantendo um teste de IU codificado

Como inserir um atraso antes de uma ação de interface do usuário usando o Editor de Testes de Interface de Usuário Codificada

Conceitos

Verificando código pela Automação da Interface do Usuário

Anatomia de um teste de IU codificado

Configurações e plataformas compatíveis para testes de IU codificados e gravações de ações

Outros recursos

Criando teste codificados da interface do usuário