Como testar um site com vários usuários simultâneos de vários IPs (teste de carga)?

2

Eu preciso testar um site e como ele lida com várias conexões simultaneamente. Cada usuário deve:

  • Conecte-se a partir de um endereço IP diferente
  • Simular um usuário de navegação - > (abra algumas páginas, clique em alguns botões)

Eu preciso simular cerca de 200 usuários assim. Idealmente, eu gostaria de poder simular 1000 e depois 2000.

Qual é a maneira mais fácil de fazer isso? Eu seria capaz de escrever de forma realista um script que faz isso, ou há uma maneira de aproveitar meus outros servidores para fazer isso? Eu também já ouvi falar de pessoas usando o EC2 para fazer coisas assim, mas acho que é um pouco acima da minha cabeça.

Alguma opinião?

** EDITAR **

Em resposta ao comentário abaixo. Um site é obviamente um website. Como em www.somedomain.com. O teste exigiria várias pessoas para acessar esse site, fazer o login com as credenciais fornecidas e, em seguida, pressionar e dar lances nos leilões (é um tipo de site de leilão de um centavo). Eles fazem lances em leilões pressionando um botão e o teste envolveria pessoas abrindo páginas e fazendo lances.

    
por coderama 28.02.2013 / 08:23

2 respostas

3

Primeiro: isso é não fácil de ser feito corretamente. Na verdade, é até difícil encontrar pessoas com conhecimento para fazer isso corretamente ...

Com isso dito, aqui estão algumas dicas baseadas na minha experiência de trabalho com testes de carga e desempenho para um site grande.

Existem ferramentas profissionais e caras para fazer isso. Um deles é o Loadrunner e é o usado pelo nosso departamento de testes. Isso é tudo que eu sei - eu digo aos testadores o que eles devem testar e então eles fazem isso acontecer enquanto eu estou ocupado com outro trabalho ...

Se você não quer uma ferramenta profissional cara, o que você precisa fazer é basicamente configurar um servidor que tenha 200 IPs virtuais diferentes (ou 1000, ou 2000). Então você precisa de um programa que faça muitas conexões simultâneas daquele servidor, cada conexão de um IP separado. O servidor deve ser colocado diretamente no mesmo switch que o servidor que você deseja testar. A razão para essa veiculação é que você está basicamente fingindo ser a internet inteira quando testa e precisa ter certeza de que o tráfego não está realmente roteado para a Internet. Você também precisa ter alguma idéia de quais são os padrões comuns de uso do seu site. Se você não tiver, ainda poderá fazer um teste básico de carga, por exemplo, visitando três páginas aleatórias, mas os resultados serão menos relevantes para o seu uso real.

Existem algumas dicas sobre software de código aberto para fazer isso em esta pergunta StackOverflow . Mas minha principal recomendação é pagar alguém que faça isso para viver; será mais rápido e provavelmente menos caro do que gastar seu próprio tempo.

    
por 28.02.2013 / 09:18
1

Primeiro - a menos que você tenha um esquema de balanceamento de carga ou autenticação baseado em IP, o número, se os endereços IP, raramente são importantes no teste de carga. O desempenho da grande maioria dos frameworks de desenvolvimento web não é afetado pelo endereço IP dos usuários.

Mas, sob a suposição de que o número de IPs é realmente importante para o seu caso, você simplesmente precisa de uma ferramenta de teste de carga que forneça o número de IPs necessários. 200 IPs não são muito difíceis, já que você pode conseguir muitos em uma única sub-rede em uma única máquina. Em seguida, basta usar uma ferramenta que fará uso disso (vou ligar nosso produto - Load Tester , que tem uma versão LITE gratuita, você pode usar para testes simples e permite usuários simultâneos ilimitados).

Quando você precisa fazer usuários de 1000 ou 2000, isso simplesmente aumenta o número de geradores de carga que você precisa e o número de endereços IP que você precisará configurar nesses geradores de carga.

Espero que ajude!

    
por 28.02.2013 / 21:22