Pergunta

Existe uma regra de quantas vezes um aplicativo deve ser estresse ou carga testada? I normalmente fazê-lo antes de colocar em produção uma nova versão, quando as alterações de hardware ou quando a quantidade esperada de usuários é conhecido por mudança.

Mas hoje eu estou perguntou se esta deve ser uma prática padrão para um aplicativo que está em produção, mesmo se nenhuma alteração for introduzida. Se assim for, com que frequência?

Foi útil?

Solução

Ela realmente depende de como você deseja dirigir-se para as necessidades da sua empresa. Pessoalmente, nós carregamos teste de nossa integração (teste) compilações diárias - assim como as compilações sair. Depois de executado o construir pelo aprox 1A, temos que guião para ser testado carga bem. Nosso objetivo é especificamente à procura de construir sobre as mudanças de compilação no desempenho. Mesmo se não introduzir mudanças no código, os servidores que o código é de carga testados em ainda recieves atualizações / patches / hot fixes / service packs / etc. Na pior das hipóteses, uma vez automatizado, fornece dados históricos adicionais.

Estamos indo por este caminho (construção relatividade), porque é custo proibitivo para tentar replicar o nosso ambiente de hardware na produção. No caso em que vemos uma mudança repentina (ou mudanças graduais) para monitores de desempenho chave, podemos olhar para o que changesets foram introduzidas naquele momento e alterações de código potenciais isolar que impactou negativamente o desempenho.

A partir do som dele, você está testando contra um laboratório que replica produção? Essa é uma abordagem diferente, em seguida, tivemos, porque nós estamos indo sob a suposição de que a maioria dos nossos gargalos seria induzida por código e não diretamente dependente de hardware. Usamos VMs para aproximar, mas não duplicar, o nosso ambiente de produção.

Outras dicas

Uma coisa que afeta o desempenho do sistema, mesmo que o código está inalterado, é de dados.

Um exemplo pode ser o desempenho de uma consulta de banco de dados. Como os dados são adicionados a uma tabela de custo de manutenção de índices sobe. divisões de página no índice pode degradar o desempenho. Como índices de crescer, o número de 'níveis' no índice vai de vez em quando tem que ser aumentada. Quando isso acontece você vê uma mudança repentina, aparentemente inexplicável no desempenho.

A execução de testes de estresse em um ambiente de produção nem sempre é possível - isso afeta o seu dia-a-dia. Mais frequentemente sistemas são instrumentados para fornecer em curso feedback sobre o desempenho. Talvez usando algo como gânglios . Os dados são utilizados para detectar problemas e planejamento de capacidade.

Eu acho que sempre que você mudar alguma coisa na petição - código, arquivos de dados, casos de uso - e isso inclui, mas não se limita a quantidade esperada de usuários, você deve testá-lo

.

Os meus dois centavos: às vezes você não terá mudado nada e desempenho do seu site poderia sofrer. Poderia ser a partir do app manipulação demais dados (ou seja: caches transbordando). Poderia ser de publicidade de terceiros no site abrandar. Heck, poderia ser por causa de RAM culpa!

A principal coisa é que, embora geralmente é aconselhável que você teste após qualquer conhecido mudança, ele também não é uma má idéia fazer desempenho ocasionais teste para verificar se há possíveis desconhecido mudanças que poderiam afetar o desempenho.

A minha empresa, BrowserMob, fornece uma site gratuito Monitoring Service que executa scripts reais selênio cada X minutos contra o seu local. Embora não seja um teste de carga, ele definitivamente pode ajudar a identificar tendências e pontos de estrangulamento em seu local de produção.

Isso depende de como missão crítica o sistema é ... se é apenas uma pequena ferramenta que se pode fazer sem, uma vez que você colocá-lo em produção. Se a sua vida depende disso, após cada compilação.

Tanto quanto eu estou em causa, isto é.

Depende de quanto esforço o teste requer. Se é bastante fácil, mais testes nunca é demais. No entanto, não vejo nenhuma razão para testar se não há mudanças esperadas. Se isso levaria ao software não foi testado por um longo tempo, então ele pode ser adequado para executar os testes de vez em quando no caso de haver mudanças inesperadas.
Escusado será dizer que, também depende se o seu software está sendo executado um reator nuclear ou uma placa de boletim.

Se nenhuma mudança for introduzido em seu produto e a carga testar simplesmente repete o mesmo processo mais e mais para algum intervalo, eu não vejo o benefício de re-execução.

Eu costumava ter testes de stress como parte do meu arquivo de formiga, para que eu pudesse executar esses testes a cada noite, se eu quisesse, e eu gostaria de executá-los quando eu estava fazendo todas as mudanças, ou testar uma possível nova mudança, que seria de um modo ou outro impacto que eu estava testando, para ver se havia alguma melhoria.

Eu acho que freqüência vai depender de seu ambiente.

Se você não pode realmente teste de esforço no desenvolvimento, então você pode ter que esperar até chegar à QA, onde estão testando antes de ir para a produção.

Eu acho que quanto mais cedo você fizer isso, melhor, como você pode encontrar problemas e corrigi-los mais rápido, uma vez que você sabe que trabalhava duas noites atrás, na noite passada ele falhou no teste, então não havia alguma mudança durante o dia que o causou .

Eu costumava junitperf para muitos dos meus testes de stress.

Eu acho que nós não queremos Notepad teste de estresse. É uma piada. Não importa =).

Testes de esforço não para todas as aplicações. : -)

Se o seu software pode matar alguém, eu acho que você deveria.

Imagine alguém morrer porque o sangue não chegou porque algum tempo de espera no sistema.

"Timeout.exception:. Teu coração não estão vindo mais Tente novamente mais tarde"

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top