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.
Download

Testes de Carga com Visual Studio Team System