Aferindo a qualidade do serviço com testes de desempenho Igor Abade V. Leite @IgorAbade Agenda Intro Scripts de Navegação Testes de Carga MVP, Visual Studio ALM (antigo Team System ) Desde 2006 @igorabade blog.lambda3.com.br/L3/IgorAbade Aferindo a qualidade do serviço com testes de desempenho INTRODUÇÃO Cenário Uma empresa de médio porte está em franco crescimento, aproveitando oportunidades do mercado. Suas aplicações estão se tornando mais complexas e o time de desenvolvedores está crescendo. Nos últimos anos, a empresa tem sofrido com uma demanda crescente por suporte, devido a constantes falhas no software em produção. A qualidade do software gerado pelos times é sofrível e essa percepção tem crescido no mercado. A empresa espera continuar crescendo, mas precisa corrigir e evitar novos problemas com a gestão de seu processo de desenvolvimento de software. Recentemente, a empresa ouviu falar sobre as novas tendências no desenvolvimento ágil e os benefícios da abordagem para Modern Apps. Propósito do Teste de Desempenho • Identificar a capacidade da aplicação • Alguns objetivos – – – – Explorar Verificar Encontrar os limites “Quebrar” Boas práticas Identificar padrões de desempenho Definir linha-base de desempenho Sprint 1 feature a Teste de Unidade Teste Manual Pegar problemas mais cedo Testes de Desempenho ao longo do ciclo de desenvolvimento Teste de Regressão Teste de Desempenho feature b Sprint 2 feature c feature d Implantação As Ferramentas Visual Studio Ultimate Visual Studio Premium • Web Performance Tests • Load Tests • Load Test Rigs • Profiling Tools • Performance Wizard Topologia • Controlador – Orquestra os testes – Gerencia Licenciamento – Coleta e armazena dados de desempenho • Agentes (1..n) – Simulam usuários Coordena e coleta informações Controlador Gera carga de usuários Aplicação sob Teste Agente 1 Servidor Web Agente 2 Agente n Servidor BD Montando o ambiente de testes Aferindo a qualidade do serviço com testes de desempenho Igor Abade V. Leite Aferindo a qualidade do serviço com testes de desempenho CRIANDO SCRIPTS DE NAVEGAÇÃO Tudo começa com um script... • Descreve os cenários de navegação • Simula os acessos feitos por um usuário • Web Performance Test (Teste de Desempenho Web) Testes de Desempenho Web Gravados no browser Guiado por dados Define metas de desempenho Extração automática de parâmetros Grava e gerencia think time Criando scripts com Web Performance Test Aferindo a qualidade do serviço com testes de desempenho Igor Abade V. Leite Aferindo a qualidade do serviço com testes de desempenho CRIANDO TESTES DE CARGA Teste de Carga no Visual Studio • Modelo flexível de Carga – – “Cenários” para modelar diferentes grupos de usuários Diversos padrões de carga • • • – – • Baseados em metas Crescente ou Constante Personalizado Modela diferentes browsers e redes Duração definida por tempo ou iterações Testes “de unidade” (MSTest) podem ser executados para gerar carga – – Serviços Web Acesso direto a banco de dados Criando testes de carga com Load Test Aferindo a qualidade do serviço com testes de desempenho Igor Abade V. Leite Dúvidas? Aferindo a qualidade do serviço com testes de desempenho Igor Abade V. Leite Para Saber Mais • Máquina Virtual + Hands-on Labs • http://aka.ms/vs11almvm • Getting Started with Load Testing in Visual Studio 2012 • http://tinyurl.com/VSLoadTest • E-book: Testing for Continuous Delivery with Visual Studio 2012 • http://tinyurl.com/TestingForContinuousDelivery • Licenciamento • http://tinyurl.com/VSLicensing Igor Abade V. Leite @IgorAbade