Compartilhar via


Usando controladores e agentes de teste com testes de carga

 

Publicado: abril de 2016

Este tópico se aplica a:

O Visual Studio Enterprise

Visual Studio Professional

Visual Studio Express

Tópico se aplica
Tópico não se aplica
Tópico não se aplica

Você pode executar testes de carga usando controladores de teste e agentes de teste para distribuir a carga por vários computadores e simular vários usuários virtuais.

Não quiser usar os recursos e configurar suas próprias máquinas para criar essa carga? Você pode usar o teste de carga baseado em nuvem para fornecer máquinas virtuais na nuvem que gerar a carga de muitos usuários que acessam o site ao mesmo tempo. Tudo o que você precisa é uma conta do Visual Studio Online. Saiba mais sobre isso serviço de teste de carga baseado em nuvem que fornece 15.000 minutos de usuário virtual livre de cada mês de teste de carga.

Para entender as configurações necessárias para teste de carga em seu aplicativo com recursos locais, siga as informações no restante deste tópico.

Configuração remota típica:

  • Machine1 e Machine2: Visual Studio (vários testadores podem usar o mesmo controlador).

  • Machine3: controlador (pode ter agentes instalados também).

  • Machine4-n: Agente ou agentes, todos associados ao controlador no Machine3.

Máquinas remotas usando controlador e agentes

Quando você executa testes de carga, a memória e a capacidade de processamento do computador geralmente controlam a quantidade de carga que pode ser gerada para o teste. O controlador de teste não gera carga, mas coleta estatísticas de teste de carga dos agentes de teste e dados do contador de desempenho dos agentes de teste e do sistema em teste. Desse modo, o banco de dados usado pelo controlador de teste exige recursos para a quantidade de dados que é armazenada e para o número de agentes de teste envolvidos nos testes em execução. Use a tabela a seguir como um guia para determinar os requisitos de hardware para o controlador de teste e agente de teste.

Componente

Camada de aplicativo do controlador de teste

Camada de dados do controlador de teste

Camada de dados/aplicativo do controlador de teste

CPU

Mín.: 1 GHz

Rec.: 2 GHz

Mín.: 1 GHz

Rec.: 2 GHz

Mín.: 1 GHz

Rec.: 2 GHz

Disco – sistema

Mín.: 1 GB

Rec.: 1 GB

Mín.: 1 GB

Rec.: 1 GB

Mín.: 1 GB

Rec.: 1 GB

Disco - instalação

Mín.: 1 GB

Rec.: 48 GB

Mín.: 8 GB

Rec.: 48 GB

Mín.: 8 GB

Rec.: 48 GB

Memória

Mín.: 1 GB

Rec.: 1 GB

Mín.: 1 GB

Rec.: 1 GB

Mín.: 1 GB

Rec.: 1 GB

Para poder executar testes de carga usando controladores de teste, você deve configurar o banco de dados do teste de carga no controlador de teste para usar uma instância do SQL Server quando você executar os testes de carga. Se você não tiver o SQL Server, você pode usar o SQL Express que está incluído no Visual Studio Enterprise como repositório de teste de carga. Para obter mais informações sobre como configurar seu controlador de teste, consulte Instalando e configurando agentes e controladores de teste.

Leve em consideração os seguintes fatores adicionais ao dimensionar o hardware.

Componente

Agente de teste

Camada de aplicativo do controlador de teste

Camada de dados do controlador de teste

Controlador de teste AT/DT

CPU

Dependendo do teste, muitas vezes a CPU é o fator limitador.

Não é muito usada.

Não é muito usada.

Não é muito usada.

Disco

Usado intensamente quando o registro em log detalhado é habilitado nos testes de carga.

Não é muito usada.

É necessário um espaço de 10 GB para 24 horas de dados de teste.

É necessário um espaço de 10 GB para 24 horas de dados de teste.

Memória

Dependendo do teste, a memória pode ser o fator limitador.

Não é muito usada.

Muito usada pelo SQL.

Muito usada pelo SQL.

O volume de carga que um agente de teste específico pode gerar varia amplamente de teste para teste. A maioria dos testes é associada pela CPU. O uso da CPU é diretamente proporcional às solicitações por segundo (RPS). Para outros testes de carga, a memória é o fator limitador. O RPS que você espera conduzir de um agente de carga depende de muitos fatores. Eles incluem o seguinte:

  • Carga do usuário

  • Tempo de raciocínio

  • Esquema de autenticação

  • Tamanho das solicitações e respostas

  • Tempo de resposta

  • Nível de validação da resposta

  • Tipo de teste sob carga (teste na Web ou teste de unidade)

O tempo de raciocínio é o principal fator para determinar o número de usuários em um teste associado pela CPU. A alteração dos tempos de raciocínio de 2 segundos para 10 segundos permite simular 5 vezes mais usuários, mas o RPS que está sendo gerado será o mesmo. Se sua meta é simular usuários reais, defina o tempo de raciocínio para um valor que reflita como você acredita que os usuários se comportarão no seu site. Aumentar o tempo de raciocínio e o número de usuários virtuais não adicionará necessariamente mais estresse ao seu aplicativo Web.

Os agentes de teste podem ser associados pela memória em testes que usam o modo de conexão Conexões por Usuário. Dois modos de conexão podem ser definidos nas configurações de execução de teste de carga. No modo Pool de Conexões (o padrão), as conexões são armazenadas em pool, mas cada usuário ainda usa duas conexões quando ativo. Nesse modo, todos os usuários virtuais são multiplexados pelo pool de conexões. Isso permite que você tenha 1.000 usuários virtuais ativos que compartilham 100 conexões. No modo Conexões por Usuário, cada usuário tem uma conexão que consiste em duas conexões reais abertas para o servidor.

Se o teste de carga for em um aplicativo ASP.NET comum com tempo de raciocínio de 3 a 5 segundos usando testes da Web, você poderá simular em torno de 1.000 usuários de agente de teste de um único processador com uma CPU de 2 GHz e RAM de 1 GB (configuração recomendada). O número de usuários com suporte é uma função do tempo de raciocínio. Com tempos de raciocínio mais longos, haverá suporte para mais usuários.

O servidor que está executando o Visual Studio Enterprise deve ter uma conexão de rede confiável com largura de banda mínima de 1 Mbps e uma latência máxima de 350ms. Não deve haver nenhum firewall entre os agentes de teste e o controlador de teste. Se seu desempenho de teste não atender suas expectativas, considere atualizar sua configuração de hardware.

Considerações de dimensionamento do SQL

Por padrão, o SQL Express é instalado no controlador e usado pelo controlador como o repositório padrão do SQL para resultados de teste de carga. O banco de dados do SQL Express é limitado por licença para armazenar 10 GB de dados. Isso gira em torno de 24 horas de dados para um teste de carga comum. O espaço que é exigido para os dados de teste de carga varia consideravelmente, de acordo com o teste.

Durante um teste de carga, os exemplos são coletados para cada instância de contador em cada computador. Dessa forma, a quantidade de espaço que é exigida no banco de dados depende dos seguintes fatores: número de contadores coletados, número de computadores envolvidos no teste e número de exemplos obtidos, conforme controlado pela taxa de amostragem.

Nas configurações de execução do teste de carga, você pode coletar detalhes de medição do tempo. Isso habilita o Gráfico de Atividade de Usuário Virtual. Também é possível coletar logs detalhados do usuário virtual.

Uma execução de teste de carga pode usar um ou mais adaptadores de dados de diagnóstico para coletar informações ou afetar o computador de teste. Eles são definidos nas configurações de teste para a execução. Os dados desses adaptadores também são armazenados no SQL Express e podem exigir uma grande quantidade de espaço, dependendo do adaptador de dados de diagnóstico.

Se possível, leve em consideração o uso de um banco de dados separado para armazenar os dados do teste de carga. O banco de dados pode ser armazenado no computador do controlador de teste ou em outro computador. Para alterar o repositório de dados, envie os comandos SQL que estão contidos no arquivo .sql para a instância do SQL Server que deseja usar como o repositório de resultados de testes de carga. Há duas formas de fazer isso. Uma é usar o comando sqlcmd em um prompt de comando e especificar as opções necessárias para se conectar ao banco de dados desejado. Use a opção –i para especificar o caminho para loadtestresultsrepository.sql. Outra forma é usar uma das interfaces da GUI para SQL, como o analisador de consulta, abrir o arquivo .sql e enviar as conexões.

Consulte também

Configurando controladores e agentes de teste para testes de carga
Distribuindo execuções de teste de carga em várias máquinas de teste usando controladores e agentes de teste
Instalando e configurando agentes e controladores de teste
Configurando máquinas de teste para executar testes ou coletar dados
Configurando máquinas e coletando informações de diagnóstico usando configurações de teste
Especificando configurações de teste do Visual Studio
Configurando controladores e agentes de teste para testes de carga
[obsoleto] Como executar um teste de carga usando controladores e agentes de teste especificados em uma configuração de teste
Instruções passo a passo: usando um Test Controller e Test Agent em um teste de carga