it-swarm-pt.tech

Ferramentas para servidores HTTP de teste de carga?

Eu tive que carregar servidores HTTP de teste/aplicativos da web algumas vezes e cada vez fiquei desapontado com a qualidade das ferramentas que consegui encontrar.

Então, quando você está testando um servidor HTTP, quais ferramentas você usa? E quais são as coisas que provavelmente vou fazer de errado na próxima vez que tiver que fazer isso?

39
David Wolever

JMeter é gratuito.

O Mercury Interactive Load Runner é super agradável e super caro.

24
Chad Grant

Sinto-me incomumente qualificado para responder a essa pergunta, já que minha empresa atual precisa simular 25.000 conexões simultâneas com nossos servidores da web (exibimos anúncios on-line).

Para testes de carga de volume extremamente alto, Httperf é o caminho a percorrer. É gratuito e, em nossa experiência, pode simular conexões mais simultâneas que o JMeter ou o STA no mesmo hardware.

Editar:

Caso você esteja curioso, simulamos 3500 solicitações por segundo em um Optiplex 330 de baixo consumo de energia, baixo custo e fator de forma muito pequeno. Essas caixinhas custam apenas US $ 280, e temos várias delas conectadas para execução Httperf sob demanda. Em comparação, o JMeter poderia enviar apenas cerca de 800-900 req/s neste hardware.

21
Portman

Se você deseja apenas carregar carga em uma única URL de cada vez em um servidor da Web, faça o download do Apache AB. Ele vem com o servidor HTTP Apache.

Comando simples

ab -n 10000 -c 10 http://serverfault.com/questions/2107/tools-for-load-testing-http-servers

executaria 10000 solicitações com uma simultaneidade de 10 usuários.

Se você deseja gravar as sessões de navegação, faça um voto positivo e aceite a resposta jmeter. O Jmeter é incrível e pode ser dimensionado para muitas máquinas de teste que podem gerar uma carga enorme.

20
Stewart Robinson

Existe Tsung , uma ferramenta baseada em Erlang.

Também há uma lista realmente longa de ferramentas em http://www.softwareqatest.com/qatweb1.html#LOAD

8
Jauder Ho

Para um teste rápido, você pode usar sequências de cachos e conjuntos de URLs. Digamos, por exemplo, que vamos executar um teste de estresse de carga no Google, que podemos executar ...

curl -s "http://google.com?[1-1000]"

Isso fará 1000 chamadas para o Google, ou seja,.

http://google.com?1  
http://google.com?2  
http://google.com?3 
... 
http://google.com?1000

Isso é discutido em mais detalhes em Como testar rapidamente um servidor da Web com curl.

6
Ian Purton

Você precisará configurar diferentes testes:

  • Teste normal, simule usuários como eles se comportarão. Você implementará o tempo de reflexão (nenhum http fury 1s entre as páginas). Uma maneira é gravar uma sessão na Web, para que você tenha tempo realista para concluir/ler cada página. A carga virá passo a passo até atingir a carga atual média na produção
  • Teste de ruptura: O mesmo que antes, mas adicione carga até obter o primeiro erro do http 500. O objetivo é saber quanta carga você pode gerenciar até que ela se quebre
  • Teste de longa duração. Você mantém o primeiro cenário em execução por 12 horas, para garantir que não haja vazamento de memória ou degradação do desempenho ao longo do tempo.

Após/antes de cada teste, você deve colocar a plataforma de volta como antes: restaurar o banco de dados, reiniciar para limpar a memória e o cache.

Você também implementará um aquecimento: inicie os cenários uma vez antes do teste real, para que as páginas sejam compiladas, a conexão com o banco de dados seja feita. Caso contrário, a primeira chamada será sempre ruim em suas estatísticas.

Você pode adicionar complexidade, como:

  • use cenários diferentes (visitantes/convidado, membros), que terão um desempenho diferente.
  • Simule diferentes acessos de largura de banda
  • Randomize o Word pesquisado e pense no tempo.

Uma última coisa importante: você DEVE salvar todos os cenários concluídos para poder fazê-los novamente exatamente da mesma maneira, para poder comparar o desempenho com os testes anteriores.

5
Mathieu Chateau

Se você está apenas procurando testar como ele lida com várias conexões, você pode usar algo como Siege . Ainda não tenho certeza de que é uma ótima medida, mas pelo menos dirá como você está lidando com várias conexões

2
trent

Eu usei openSTA .

Isso usa uma linguagem de script relativamente simples.

Você pode facilmente testar serviços/servidores da Web e escrever seus próprios scripts.

Ele permite que você monte scripts em um teste da maneira que desejar e configure o número de iterações, o número de usuários em cada iteração, o tempo de aceleração para introduzir cada novo usuário e o atraso entre cada iteração. Os testes também podem ser agendados no futuro.

É de código aberto e gratuito.

Produz vários relatórios que podem ser salvos em uma planilha. Em seguida, usamos uma tabela dinâmica para facilmente analisar e representar graficamente os resultados.

2
nzpcmad

Eu usei o LoadRunner antes, mas, é bastante caro, também usei as ferramentas de edição do Team Tester da Microsoft, que incluem um sistema que realiza testes de carga. Fiquei bastante satisfeito com o funcionamento da ferramenta e você pode expandir os testes usando o .net, que era uma sintaxe mais fácil de entender do que o LoadRunner.

A versão do load runner que usamos também não suportava o nosso site AJAX (Isso foi em 2000, por isso estou certo de que a ferramenta já foi aprimorada))

1
JoshBerke

Usamos WAPT , e funciona muito bem. Fácil de configurar e apenas algumas centenas de dólares. O LoadRUnner é ridiculamente caro e totalmente fora de alcance para todos, exceto o Forutune 500.

1
rmalayter

Depende de quão complexo é o seu cenário.

Para simular corretamente o carregamento de usuários reais no servidor, tente simular o que os usuários estão realmente fazendo. Se seus usuários acessassem o servidor com um URL, qualquer uma das ferramentas gratuitas/simples seria suficiente.

Para sites um pouco mais complexos, convém usar uma ferramenta que o ajude a correlação de valores dinâmicos, parametrização, etc. Você pode usar o Load-Runner e similares, prefiro usar WebLOAD =.

0
Yasei No Umi