Ciclo Application Lifecycle Management Qualidade e rapidez no desenvolvimento de Soluções Dia 27 Junho das 09.00 -13.00h – Auditório Microsoft- Taguspark Ivo Ramos [email protected] Senior Consultant Microsoft Corporation Testes de Carga: O que são? Testes de Carga: Porquê? Testes de Carga: Como? O VSTS 2008 como ferramenta de Testes O Futuro: “VSTS Rosário” “O processo de Testes de Carga consiste em modelizar a utilização esperada para um sistema avaliando a resposta.” Antecipar Problemas na Arquitectura Apoiar a Optimização do Sistema Detectar problemas em carga Perceber o Grau de Escalabilidade Mitigar Riscos decorrentes de alterações Verificar satisfação de níveis de serviço Load Tests Stress Tests Scalability Tests Capacity Planning Tests • Suporta níveis de carga expectável? • Qual o nível máximo de carga suportado? • Como evoluiu a resposta do sistema mediante reforço de hardware? • Qual a infraestrutura necessária? Ao longo do ciclo de desenvolvimento No final do ciclo de desenvolvimento 1, 2 ….3 Todos a carregar no botão ! Funciona no meu PC ! São realizados pelo utilizador final “Se a aplicação não é desenhada tendo em conta os requisitos de performance porquê esperar alcançar resultados…” Performance é uma feature ! “Não será a fase de desenvolvimento demasiado cedo para testes de carga?” Não! São parte integrante do ALM e não de deployment! Porquê Planear? “Se não existem objectivos, então decididamente não serão identificados problemas…” O melhor é não perder tempo ! Elaboração Definição de Objectivos Identificação de Cenários Definir o Modelo de Carga Identificar o Nível de Carga Definir as Métricas •Tempo de Resposta < 10s ( mesmo em links de 56 k ) • Throughput > 50 páginas por segundo • Recursos Utilizados: % Total CPU < 50% Memory Available > 10% Network Interfaces < 50% Total Capacity %Disk Time < 80% Elaboração Definição de Objectivos Identificação de Cenários Definir o Modelo de Carga Cenário de Navegação 1.Homepage 2.Categoria “Bugs” 3.Próxima Página 4.Detalhe do Produto “Dragon Fly” 5.Pesquisa de Produto “Pelican” 6.Detalhe do Produto “Pelican” 7.Adicionar à “Wish List” Identificar o Nível de Carga Definir as Métricas Cenário de Compra 1.Homepage 2.Sign In: “[email protected]” 3.Categoria “Birds” 4.Detalhe do Produto “Penguin” 5.Adicionar ao “Carrinho” 6.Continuar a Comprar 7.Categoria “Backyard” 8.Detalhe do Produto “Transparent Cat” 9.Adicionar ao “Carrinho” 10.Check-Out 11.Submeter Encomenda Elaboração Definição de Objectivos Identificação de Cenários Definir o Modelo de Carga Identificar o Nível de Carga Definir as Métricas Distribuição de Carga 25% 75% Cenário de Navegação Cenário de Compra Elaboração Definição de Objectivos Identificação de Cenários Definir o Modelo de Carga Identificar o Nível de Carga Definir as Métricas 150 160 125 140 100 120 75 100 80 50 Run 1 Run 2 Run 3 Run 4 60 Run 5 40 20 0 Runs de Teste Elaboração Definição de Objectivos Identificação de Cenários Definir o Modelo de Carga Requests Queued Request Exec Time Request Wait Time Requests/sec Buffer Cache Ratio User Connections Full Scans/sec Lock Wait Time Latch Wait Time Deadlocks/sec Identificar o Nível de Carga % Total Processor Processor Queue Length Private Bytes Available MBytes ASP.NET Global Resources SQL CLR % Time in GC % Time in RT Exceptions / sec Definir as Métricas Porquê Visual Studio? Engine eficiente e altamente escalável Integrado com o IDE Reutilização de Testes Unitários Dashboard com info em tempo real e armazenada em SQL Server Integração com Team Foundation Server Permite IP Switching Licenciamento: orientado ao CPU ( não ao user ) Conceito de Web Test Web Recorder Think Times DataBinding Plug-ins Validation Rules Extensibilidade Extraction Rules HTTP Tests Caching Control Suporte Ajax Encadeamento de Testes Melhorias DataBinding Melhorias API Conceito de Load Test Reutilização de Web Tests e Unit Tests Mixes de Cenários Modelo de Virtual Users Métricas de Performance Simulação vários Browsers Simulação vários Links Modelização de Carga Histórico de Relatórios de Teste Novos DashBoards Número de Iterações Relatório de Análise Exportação de Performance Counters Infraestrutura VSTS client VSTS Rig Test Controller Load Agent Load Agent Load Agent Load Agent Tarefas adicionais Instalação da Base de Dados de Testes \Program Files\Microsoft Visual Studio 8\Common7\IDE\loadtestresultsrepository.sql Instalação de Tool de Reporting Scheduling Mstest.exe e Windows Scheduler Instalação dos Agentes e Controllers Setup presente no package Test Load Agent Definição de CounterSets Definir um plano de testes Utilizar um modelo de carga crescente Testes de carga como parte integrante do ALM Utilizar volumes de dados adequados Testar componentes isolados antes do sistema Monitorizar a “saúde” dos Agentes e Controllers Definir objectivos claros: Tempo de Resposta Testes sem Proxies Verificar estrangulamento da stack TCP 1 Agente = 1000 virtual users Utilizar Performance Counters Templates Utilizar PAL para análise dos mesmos Usar um modelo incremental de Virtual Users Definir Thresholds Rules <gcServer enabled="true" /> Atenção ao Connection Model! Usar Think Times Performance Monitor / Network Monitor Fiddler 2 (Fiddler Download) Windbg (Windows Debugger Download) CLR Profiler (CLR Profiler Download ) IIS Logs com Time-Taken Log Parser / Visual Log Parser (Visual Log Parser Download ) PAL (Performance Log Analysis Tool Download ) SQL Server SQL Profiler Index Tuning Advisor Execution Plan PSS_Block (PSS Blocker Download ) DMVs SQL Nexus (SQL Nexus Download ) Integração com Excel Integração com o .Net Profiler Grande Foco no “Manual Testing” “Data Collectors” para Testes Funcionais “Bug Capture” Blogs http://blogs.msdn.com/billbar http://blogs.msdn.com/slumley http://blogs.msdn.com/edglas http://blogs.msdn.com/joshch http://blogs.msdn.com/robcaron Guidance http://www.codeplex.com/PerfTesting http://www.codeplex.com/PerfTestingGuide Livros Professional Software Testing With Visual Studio 2005 Team System (Wrox) Performance Testing Microsoft .Net Web Applications (MsPress) © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.