Usando testes de interface do usuário codificados em testes de carga
Este tópico se aplica a:
Visual Studio Ultimate |
Visual Studio Premium |
Visual Studio Professional |
Visual StudioExpress |
---|---|---|---|
Para determinar o quão bem o seu software responde a vários níveis de uso, você conduzir testes de carga. Um teste de carga modela o uso esperado de um programa de software, simulando a vários usuários que acessam o programa ao mesmo tempo. Para obter mais informações, consulte Criando e editando testes de carga.
Testes de carga consistem principalmente em uma série de testes de desempenho de Web ou testes de unidade que operam sob vários usuários simulados durante um período de tempo. Testes de carga também podem incluir testes automatizados de UI codificados. A inclusão de testes codificados da interface do usuário deve ser feita apenas em circunstâncias específicas. Todos os cenários que usam os testes de interface do usuário codificados em testes de carga envolvem o uso de testes de interface do usuário codificados como testes de desempenho. Isso pode ser útil, porque os testes codificados da interface do usuário permitem que você capture o desempenho na camada de interface do usuário. Por exemplo, se você tiver um aplicativo que usa 1 segundo para retornar dados para o cliente mas 8 segundos para processar os dados no navegador, não é possível capturar esse tipo de problema de desempenho usando um teste de desempenho da Web.
Outro cenário para o uso de testes de interface do usuário codificados em um teste de carga é se você tiver um aplicativo que é difícil de script na camada de protocolo. Nesse caso, convém temporariamente dirigir usando codificado de interface do usuário até que você pode corretamente o script a camada de protocolo de carga.
Implementação de código para as medições de tempo em testes codificados da interface do usuário
Por padrão, você não obterá as medições de tempo preciso de um teste codificado de interface do usuário que é usado nos testes de carga, pois as chamadas são assíncronas. Você deve implementar seus testes codificados da interface do usuário corretamente para obter as medições de temporização precisas. Isso pode ser feito usando o WaitForControlReady método. Os trechos de código do exemplo seguinte demonstram isso de uma página de login.
Observação |
---|
Este é um exemplo simplificado. Um teste real também terá que lidar com o tempo se a falha de logon. |
Para implementar corretamente um teste codificado de interface do usuário usado em um teste de carga
Quanto tempo leva para carregar a página de login de tempo.
TestContext.BeginTimer("UI Login Page Load");
Essa chamada carrega a página de login.
UIMap.LoginPage();
Qualquer tempo gasto em um teste da Web deve usar o WaitForReady. Aguardará até que o formulário é exibido.
UIMap.UIHttpteamtestweb1STORWindow1.UIHttpteamtestweb1STORDocument.UIEmailEdit.WaitForControlReady(); TestContext.EndTimer("UI Login Page Load");
Aviso
Certifique-se de que o tempo gasto preenchendo o formulário não está incluído no timer. Durante a gravação, gere o código do gravador após o preenchimento de um formulário, mas antes de enviá-lo.
Esta função preenche o formulário de login.
UIMap.FilledInLoginForm();
A operação de login de tempo.
TestContext.BeginTimer("UI Login"); UIMap.LoggedIn();
Qualquer tempo gasto em um teste da Web deve usar o WaitForReady. Isso aguarda até que a página de confirmação de login é exibida.
UIMap.UIHttpteamtestweb1STORWindow.UIHttpteamtestweb1STORDocument.UIWelcomeJamesBondwellPane.WaitForControlReady(); TestContext.EndTimer("UI Login");
Limitações de teste de interface do usuário codificadas em testes de carga
Unidade de testes codificados da interface do usuário o mouse e teclado. Portanto, apenas um usuário virtual pode executar testes de interface do usuário codificados por um agente. A melhor maneira de controlar isso é configurar um cenário separado no teste de carga e a carga de usuário para 1 usuário. Se você tiver mais de um teste de interface do usuário, configure a combinação de teste como seqüencial. Para obter mais informações, consulte Criar cenários adicionais para um teste de carga existente e Editar modelos de mistura de teste para especificar a probabilidade de um usuário Virtual executando um teste.
Você também precisa configurar os agentes de carga para executar como um processo interativo, em vez de fazê-lo como um serviço. Para obter mais informações, consulte Instalando e configurando controladores de criação, teste e agentes de Visual Studio.
Consulte também
Referência
Conceitos
Teste de Interface do usuário com testes automatizados de UI