Teste de performance no contexto de uma aplicação de nf e

29
Teste de Performance no Contexto de uma Aplicação de Nota Fiscal Eletrônica

Transcript of Teste de performance no contexto de uma aplicação de nf e

Page 1: Teste de performance no contexto de uma aplicação de nf e

Teste de Performance no Contexto de uma Aplicação de Nota Fiscal Eletrônica

Page 2: Teste de performance no contexto de uma aplicação de nf e

Alan Correa Morais Mim

2

@[email protected]

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

Page 3: Teste de performance no contexto de uma aplicação de nf e

3

IntroduçãoTeste de PerformanceMetodologiaFerramentas de Teste de DesempenhoA Nota Fiscal EletrônicaUma Aplicação de NF-eMedindo Informações Importantes para o NegócioDemonstração Discussão

Agenda

Page 4: Teste de performance no contexto de uma aplicação de nf e

4

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

Introdução - Problema

Page 5: Teste de performance no contexto de uma aplicação de nf e

5

Dada uma aplicação “BUG FREE”

História baseada em Fatos Reais

Page 6: Teste de performance no contexto de uma aplicação de nf e

6

Usuário Filial Bahia: Nossa esse sistema é muito lento!!!

História baseada em Fatos Reais

Page 7: Teste de performance no contexto de uma aplicação de nf e

7

Usuário Filial São Paulo: Nossa esse sistema é tão rápido!!!

História baseada em Fatos Reais

Page 8: Teste de performance no contexto de uma aplicação de nf e

8

Administrador do Sistema: E agora???

História baseada em Fatos Reais

Page 9: Teste de performance no contexto de uma aplicação de nf e

9

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

Introdução

Page 10: Teste de performance no contexto de uma aplicação de nf e

10

BenefíciosIdentificaçã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

Teste de Desempenho

Page 11: Teste de performance no contexto de uma aplicação de nf e

11

BenefíciosIdentificaçã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

Teste de Desempenho

Page 12: Teste de performance no contexto de uma aplicação de nf e

12

Teste de Avaliação de DesempenhoAvalia o comportamento do sistema em condições normais de utilização

Avaliação do Ambiente

Teste de CargaAvalia o ambiente em condições isoladas de carga

Interessante para colher indicadores de cargas em períodos de pico de utilização

Teste de StressAvalia o ambiente em condições superiores a máxima suportada

Interessante para executar um teste de recuperação

Tipos de Teste de Performance

Page 13: Teste de performance no contexto de uma aplicação de nf e

13

Perfomance Testing Life CycleMé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

Metodologia

Page 14: Teste de performance no contexto de uma aplicação de nf e

14

MS Visual Studio 2010 UltimateJmeterPerfmon (Análise de Desempenho de Hardware)IBM Rational Performance TesterHP Mercury LoadrunnerBorland Silk Performer

Ferramentas

Page 15: Teste de performance no contexto de uma aplicação de nf e

15

Substituição do antigo modelo de Nota Fiscal Modelo 1/1 AAcoberta o trânsito de mercadoriasObrigatoriedade NacionalBaseada em WebService e XML

O Projeto Nota Fiscal Eletrônica (NF-e)

Page 16: Teste de performance no contexto de uma aplicação de nf e

16

Processo de Venda Simples (NF-e)

1 - Autoriza o Uso

2 – Envia ao Cliente

Page 17: Teste de performance no contexto de uma aplicação de nf e

17

Processamento de Emissão de NF-es e ou Recebimento de NF-esDeve possuir mais de um componente

Provedor de Interface

Provedor de Processos (máquina de estados finitos)

Deve possuir um banco de dadosDeve possuir conexão com a internetDeve possuir um desempenho aceitável de acordo com a necessidade do cliente

Uma Aplicação de NF-e

Page 18: Teste de performance no contexto de uma aplicação de nf e

18

Topologia Lógica

ERP

Provedor de Interface

BD

Provedor de Processos

WebService SEFAZs

Internet

Client de Interface

Conexão HTTPSConexão com o BD

Ambiente Objetivo

Page 19: Teste de performance no contexto de uma aplicação de nf e

Arquitetura do Provedor de Processos

Gera XML

Valida XML

Gera Lote XML

Envia Lote XML

Consulta Lote XML

Imprime DANFE

Autorização de Uso de uma NF-e

Page 20: Teste de performance no contexto de uma aplicação de nf e

20

Foi necessária a criação de um ferramenta de Sampler para geração de NF-esFoi 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

A SEFAZ FOI NOTIFICADA SOBRE O TESTE

Preparando o Teste

Page 21: Teste de performance no contexto de uma aplicação de nf e

21

Teste de DesempenhoFoco 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

Indicadores voltados ao Negócio

Page 22: Teste de performance no contexto de uma aplicação de nf e

22

Teste de Desempenho

Indicadores voltados ao Negócio

Descrição Valor ObservaçãoTempo de resposta Médio 33,3 segundos/NF-eMédia de processamento (hora) 138 NF-es/horaPicos de Processamento1º Pico 07:00 até as 09:00 Motivo: Faturamento para liberação de caminhões2º Pico 14:00 até as 15:00 Motivo: Transferências entre centros produtivosMomento sem processamento 18:00 até as 06:00

Page 23: Teste de performance no contexto de uma aplicação de nf e

23

Teste de CargaPrincipal 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

Indicadores voltados ao Negócio

Page 24: Teste de performance no contexto de uma aplicação de nf e

24

Teste de Carga

Indicadores voltados ao Negócio

Page 25: Teste de performance no contexto de uma aplicação de nf e

25

Teste de Carga

Indicadores voltados ao Negócio

Page 26: Teste de performance no contexto de uma aplicação de nf e

26

Teste de StressPrincipal 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

Indicadores voltados ao Negócio

Page 27: Teste de performance no contexto de uma aplicação de nf e

27

Teste de Stress

Indicadores voltados ao Negócio

Page 28: Teste de performance no contexto de uma aplicação de nf e

28

Demonstração

Jmeter + PerfmonVisual Studio 2010 Ultimate

Page 29: Teste de performance no contexto de uma aplicação de nf e

29

Perguntas???