Executar um teste de estresse

Conteúdo
casso128figsbrbr
Conteúdo
A Ferramenta de teste permite que você teste o desempenho quando o servidor de políticas recebe mais de uma solicitação por vez. Ao usar os testes de estresse, é possível simular vários agentes se comunicando com o servidor de políticas simultaneamente ou um único agente se comunicando com o servidor de políticas em vários segmentos.
Os testes de estresse são executados no modo Reprodução avançada. A Ferramenta de teste recebe instruções de um arquivo de controle de segmentos que especifica os testes a serem executados e quantas vezes eles devem ser executados. Depois de executar as instruções no arquivo de controle de segmentos, os resultados do teste são gravados em um arquivo de saída.
Configurar um arquivo de controle de segmentos
Configure um arquivo de controle de segmentos para definir os arquivos de script de comandos a serem executados, o número de repetições, segmentos, e assim por diante, para automatizar testes complexos para os testes de estresse. O arquivo de controle de segmentos contém várias linhas de instrução na própria linguagem de criação de scripts da Ferramenta de teste, além de comentários indicados pelo símbolo # no início da linha.
As instruções básicas estão no seguinte formato:
command_script_file
,
repetition_count
,
thread_count
,
max_time_in_seconds
  • command_script_file
    Especifica o nome do caminho do arquivo de script de comandos registrado anteriormente.
  • repetition_count
    Especifica o número de vezes que a Ferramenta de teste executa o script de comando.
  • thread_count
    Especifica quantos segmentos simultâneos a Ferramenta de teste inicia a execução do script de comandos.
  • max_time_in_seconds
    (Opcional) Especifica um limite (em segundos) para a duração do teste. Se o teste exceder o limite de tempo decorrido, a reprodução será interrompida, independentemente de o número de repetições ter sido concluído.
Por exemplo:
# c:\temp\test_data.txt, 8, 6, 120
Essa linha indica que:
  • O script de comandos de entrada é c:\temp\test_data.txt
  • A Ferramenta de teste executará o script oito vezes
  • Seis segmentos simultâneos executam o script
  • O teste termina depois de 120 segundos, independentemente de as oito repetições terem sido concluídas
A Ferramenta de teste grava o resultado do teste em um arquivo. O nome do arquivo de saída é o nome do arquivo de entrada com_out#, onde # é o número de segmentos incrementados. Por exemplo, os arquivos de saída do teste acima são de c:\temp\test_data.txt_out1 até c:\temp\test_data.txt_out6.
A linguagem de criação de scripts da Ferramenta de teste inclui os comandos na tabela a seguir para controlar a saída do arquivo de script. Consulte a figura a seguir para obter um exemplo de arquivo de controle de segmentos.
Comando
Descrição
.report
Gera um relatório final (como um arquivo de saída) resumindo os resultados do teste. O relatório não inclui o status da solicitação de cada servidor. Esse é o padrão.
.reportspread
Gera um arquivo contendo um relatório de disseminação de tempo de resposta. O nome do arquivo é
command_script
_stats_spread (por exemplo, isprotected-record.txt_stats_spread).
.output
Gera um relatório final (como um arquivo de saída) resumindo os resultados gerais, incluindo o status da solicitação de cada servidor.
.viewstats
Exibe as estatísticas finais em um editor de texto.
.verbose
Gera arquivos de saída contendo detalhes da solicitação de cada servidor.
.brief
Gera arquivos de saída contendo os resultados resumidos da solicitação de cada servidor. Essa opção é válida apenas quando é usada com o comando .output.
.sleep
Permite que a Ferramenta de teste pause por um tempo especificado (em milissegundos). Isso simula solicitações de servidor intermitentes.
.userselectionmode
Determina se os nomes de usuário são usados de maneira sequencial ou selecionados aleatoriamente. Os valores válidos são 0 (sequencial) e 1 (aleatório).
Para obter mais informações, consulte (Opcional) Configurar como o teste manipula nomes de usuários.
.randomseed
Permite que a sequência pseudoaleatória de nomes seja repetida (até a ordenação de segmentos) para cada teste.
Para obter mais informações, consulte (Opcional) Configurar como o teste manipula nomes de usuários.
.connect
settings_file
Inicializa a Ferramenta de teste usando as informações do arquivo de configurações da Ferramenta de teste para definir um teste de vários segmentos com um agente simulado. O teste padrão de vários segmentos abrange vários agentes simulados com um agente simulado por segmento. Também é possível configurar um teste com um agente simulado e vários segmentos usando essa opção.
.disconnect
Cancela a inicialização da Ferramenta de teste para indicar o fim de um teste de vários segmentos com agente simulado.
Arquivo de controle de segmento de exemplo
.output
.connect c:\test\smtest.ini
.brief
c:\temp\test_data1.txt, 2, 3
.verbose
.sleep 5000
c:\temp\test_data1.txt, 2, 2
.brief
c:\temp\test_data1.txt, 3, 4
.connect smtest.ini
c:\temp\test_data1.txt, 5, 6
.disconnect
Executar um teste de estresse usando um arquivo de controle de segmentos
Use o modo de teste de reprodução avançada para executar um teste de estresse definido em um arquivo de controle de segmentos.
Siga estas etapas:
  1. Selecione Reprodução avançada na caixa de grupo Modo.
  2. Insira o nome do arquivo de controle de segmentos no campo Controle.
  3. Na caixa de grupo Comando, clique em Executar script.
    A Ferramenta de teste executa o arquivo de controle de segmentos e cria o arquivo de script de saída.
(Opcional) Configurar como o teste manipula nomes de usuários
As três parâmetros seguintes definem como um teste manipula nomes de usuários.
  • 34 UserCount:
    (Definido no arquivo de script de comando.) Especifica o número de usuários do formato AAAAAA, BAAAAA, até ZZZZZZ que o teste usa para autenticação e autorização. Se o parâmetro UserCount: estiver definido, o parâmetro UserName: será ignorado.
    Observação
    embora seja ignorado, o parâmetro UserName: ainda é necessário. Não o exclua.
    Adicione o parâmetro UserCount: usando o mesmo formato dos outros parâmetros no arquivo de script de comandos. Após isso, insira o nome do parâmetro completo (incluindo o prefixo 34) e o valor do parâmetro começando na coluna 24 da linha.
    Por exemplo:
    34 UserCount:          1000
  • .userselectionmode
    (Definido no arquivo de controle de segmentos) Determina se os nomes de usuário são selecionados em sequência ou de forma aleatória. Os valores válidos comportam 1 e 2.
    Se definido como
    1
    , as etapas de teste percorrem sequencialmente os nomes de usuários até que o valor especificado pelo parâmetro UserCount seja atingido. Então, os nomes de usuário regressam para AAAAAA até que todas as repetições sejam concluídas ou o tempo seja decorrido.
    Se definido como
    2
    (o padrão), os usuários são selecionados aleatoriamente.
  • .randomseed
    (Definido no arquivo de controle de segmentos) Se configurado com um valor de número inteiro diferente de zero, é gerado um conjunto ordenado de nomes de usuário de modo aleatório no intervalo AAAAAA até que o nome de usuário indexado pelo valor do parâmetro UserCount. Isso permite que a sequência pseudoaleatória de nomes seja repetida (até a ordenação de segmentos) para cada teste.
    Se .randomseed não for especificado, será usada a hora atual.
(Opcional) Simular uma carga constante
Para simular uma carga constante na qual as solicitações são enviadas para o servidor de políticas a uma taxa constante, configure o seguinte parâmetro no arquivo de controle de segmentos.
  • .sleepbetweenrequests
    Especifica a quantidade de tempo de suspensão (em milissegundos) entre cada solicitação para o servidor de políticas em cada segmento.
Por exemplo, se o parâmetro .sleepbetweenrequests for definido como 5 (milissegundos), então, solicitações serão enviadas para o servidor de política aproximadamente 200 vezes por segundo em cada segmento.
Observação
a taxa de solicitação real pode ser influenciada pelos seguintes fatores: tempo que as solicitações levam para serem concluídas, a quantidade de tempo da CPU que cada segmento obtém e fatores externos.
(Opcional) Gravar resultados do teste de reprodução para um arquivo CSV
Você pode configurar a Ferramenta de teste para gravar todos os resultados do teste de reprodução para um arquivo de valores separados por vírgula (CSV) configurando a seguinte variável de ambiente do sistema:
  • SMTESTCSVFILE
    Especifica o nome do caminho do arquivo CSV para os quais a Ferramenta de teste deve gravar os resultados do teste de reprodução. Os resultados do teste de reprodução são gravados em formato separado por vírgulas para o arquivo especificado por uma linha de cabeçalho no início.
    Se o arquivo já existir, o arquivo será anexado. Se o arquivo de controle de segmentos especificar uma reprodução de várias gravações, os resultados são agregados.
Exibição de relatórios
Quando você executa um teste de estresse, a Ferramenta de teste gera um relatório resumindo os resultados. Esse relatório contém as seguintes informações:
  • Hora de início e de término do teste
  • Tempo total decorrido
  • Tempo mínimo, máximo e médio da solicitação
    Observação:
    os dados estão no seguinte formato de hora:
    Hours : minutes: seconds: milliseconds : microseconds
  • Número total de solicitações
  • Throughput
  • O número de testes executados e seus resultados
O relatório é salvo no diretório em que o arquivo de controle de segmentos está localizado.
Observação:
o nome do relatório é o nome do arquivo de controle de segmentos com _stats anexado a ele. Por exemplo, o arquivo de controle de segmentos thread.txt gera um relatório denominado thread.txt_stats.
 
Control File: C:\temp\control.txt Started at: Wed Jan 24 16:26:45 2018 Finished at: Wed Jan 24 16:46:46 2018 Total Elapsed: 0:20:01 Minimum Request Time: 0:00:00.000.389 Maximum Request Time: 0:00:00.300.219 Average Request Time: 0:00:00.017.282 Total Requests 1386509 Throughput (Req/Sec): 1154.202 Request Count Yes No Timeout Error ---------------- ------------ ------------ ------------ ------------ ------------ IsProtected 55473 55473 0 0 0 IsAuthenticated 221875 221875 0 0 0 IsAuthorized 1109161 1109161 0 0 0 ---------------- ------------ ------------ ------------ ------------ ------------ Total: 1386509 1386509 0 0 0