O documento apresenta um teste de performance realizado em uma aplicação de nota fiscal eletrônica. Nele, o autor discute a importância dos testes de performance, apresenta a metodologia e ferramentas utilizadas no teste, como JMeter e Perfmon. Ele também descreve a arquitetura da aplicação de NF-e testada e os indicadores de desempenho analisados, como tempo de resposta e número de notas fiscais processadas por hora.
2. Alan Correa Morais
Mim
Líder de Testes na Sonda IT
Especialista em Nota Fiscal Eletrônica
Engenheiro da Computação com Ênfase em
Engenharia de Software
Técnico em Redes de Comunicação
@alancmorais
alancmorais@gmail.com
alancmorais.blogspot.com
2
3. Agenda
Introdução
Teste de Performance
Metodologia
Ferramentas de Teste de Desempenho
A Nota Fiscal Eletrônica
Uma Aplicação de NF-e
Medindo Informações Importantes para o Negócio
Demonstração
Discussão
3
4. Introdução - Problema
Como garantir que eu tenho o ambiente de acordo
com as minhas necessidade atuais e futuras
quando adquiro uma solução?
Como responder a esta pergunta utilizando estas
dimensões?
Tempo
Capacidade
Desempenho
Disponibilidade
Tolerância a Falhas
4
9. Introdução
Teste de Performance (Desempenho)
Tempo x Carga para determinar a escalabilidade e confiabilidade
Baseado em Requisitos não funcionais
Gargalos
Expectativas!!!
Definir Métricas para executar Medições
Voltado ao ambiente e não à funcionalidade
Ambiente similar ao de Produção
9
10. Teste de Desempenho
Benefícios
Identificação se o ambiente possui o desempenho suficiente de
acordo com os critérios do cliente
Identificação de quanto tempo o ambiente poderá suportar a
carga aplicada e quando se tornará obsoleto
Identificação dos períodos críticos e médias diárias de utilização
do sistema e impacto no ambiente
Cálculo de disponibilidade do ambiente de acordo com a carga
aplicada
Identificação de possíveis gargalos no ambiente
10
11. Teste de Desempenho
Benefícios
Identificação do comportamento do ambiente com carga normal,
picos e carga máxima (Stress)
Identificação do comportamento do ambiente em caso de falhas
(tolerância a falhas) específicas do tipo de aplicativo. Ex:
Contingência NF-e
11
12. Tipos de Teste de Performance
Teste de Avaliação de Desempenho
Avalia o comportamento do sistema em condições normais de
utilização
Avaliação do Ambiente
Teste de Carga
Avalia o ambiente em condições isoladas de carga
Interessante para colher indicadores de cargas em períodos de
pico de utilização
Teste de Stress
Avalia o ambiente em condições superiores a máxima suportada
Interessante para executar um teste de recuperação
12
13. Metodologia
Perfomance Testing Life Cycle
Método: Performance Testing Guidance for Web
Applications (Microsoft)
1 – Identificar o Ambiente
2 - Identificar o critério de Aceite (Questionário)
3 – Planejar e Desenhar os Testes
4 – Preparar o Ambiente
5 – Configurar as Ferramentas de Teste
6 – Executar o Teste
7 – Analisar Resultados, Ajustar e Retestar
13
14. Ferramentas
MS Visual Studio 2010 Ultimate
Jmeter
Perfmon (Análise de Desempenho de Hardware)
IBM Rational Performance Tester
HP Mercury Loadrunner
Borland Silk Performer
14
15. O Projeto Nota Fiscal Eletrônica (NF-e)
Substituição do antigo modelo de Nota Fiscal
Modelo 1/1 A
Acoberta o trânsito de mercadorias
Obrigatoriedade Nacional
Baseada em WebService e XML
15
16. Processo de Venda Simples (NF-e)
2 – Envia ao Cliente
1 - Autoriza o Uso
16
17. Uma Aplicação de NF-e
Processamento de Emissão de NF-es e ou
Recebimento de NF-es
Deve possuir mais de um componente
Provedor de Interface
Provedor de Processos (máquina de estados finitos)
Deve possuir um banco de dados
Deve possuir conexão com a internet
Deve possuir um desempenho aceitável de acordo
com a necessidade do cliente
17
18. Topologia Lógica
Provedor de WebService
ERP Processos Internet
SEFAZs
BD
Ambiente Objetivo
Client de Provedor de Conexão HTTPS
Interface Interface Conexão com o BD
18
19. Arquitetura do Provedor de Processos
Gera Envia Consulta
Gera Valida Imprime
Lote Lote Lote
XML XML DANFE
XML XML XML
Autorização de Uso de uma NF-e
20. Preparando o Teste
Foi necessária a criação de um ferramenta de
Sampler para geração de NF-es
Foi criado Performance Counter na aplicação que
permitiu a visualização via Perfmon
NF-es por Minuto
NF-es por Processo
Tempo médio de resposta SELECT FOR UPDATE (Banco de
Dados)
Tempo médio para conexão no Banco de Dados
Tempo médio de comunicação com a SEFAZ
20
A SEFAZ FOI NOTIFICADA SOBRE O TESTE
21. Indicadores voltados ao Negócio
Teste de Desempenho
Foco em indicadores de tempo de resposta. (Ex: Nº de NF-es por
minuto)
Identificação destes indicadores em um determinado espaço de
tempo
Identificação de utilização de Hardware do ambiente utilizado
Identificação de indicadores alvo x variáveis de ambiente
21
22. Indicadores voltados ao Negócio
Teste de Desempenho
Descrição Valor Observação
Tempo de resposta Médio 33,3 segundos/NF-e
Média de processamento (hora) 138 NF-es/hora
Picos de Processamento
1º Pico 07:00 até as 09:00 Motivo: Faturamento para liberação de caminhões
2º Pico 14:00 até as 15:00 Motivo: Transferências entre centros produtivos
Momento sem processamento 18:00 até as 06:00
22
23. Indicadores voltados ao Negócio
Teste de Carga
Principal objetivo: Identificar o comportamento do ambiente de
acordo com as diversas cargas possíveis de maneira isolada
Foco em indicadores de desempenho x hardware
Identificação destes indicadores com uma determinada carga do
aplicativo
23
26. Indicadores voltados ao Negócio
Teste de Stress
Principal objetivo: Identificar o comportamento do ambiente de
quando aplicada a carga acima da máxima x tempo
A carga aplicada é identificada pelo teste de carga
Foco em indicadores de desempenho x hardware
Identificação destes com relação ao tempo com uma
determinada carga do aplicativo
Identificação de falhas e recuperação do sistema
26