logo
  • Home
  • Acerca
  • Autores
  • Faq
  • Rede
  Twitter   Feed-me! RSS!

Automatização de Testes de Desempenho com JUnitPerf

Colocado por Edgard Davidson na(s) categoria(s): 1, 4, Access, app, AR, BI, case, class, classe, classes, código, código fonte, dados, desempenho, Desenvolvedor, Documentação, embedded, err, erro, error, exemplo, falha, flash, fonte, for, FullScreen, html, ide, IE, image, int, Java, mg, O, on, player, problema, problemas, pt, referencia, RIA, Ria’s Geral, RoR, screen, site, Software, TAT, Teste, UI, Vários, Ved, Vídeo, Vídeos, wave em 05 3rd, 2010 | Sem comentários

JUnitPerf é uma extensão do JUnit, um conjunto de decoradores de testes JUnit, que é utilizado para medir o desempenho e a escalabilidade dos
testes referenciados. Criado pela Clarkware Consulting desenvolvedora e mantenedora do JUnitPerf.

Veja a documentação completa em no site oficial do  JUnitPerf.

Para saber mais sobre teste unitário com JUnit, veja o meu post anterior e assista os vídeos de Teste Unitário com JUnit..

JUnitPerf oferece classes que permitem construir objetos que recebem testes existentes do JUnit e acrescentam neles avaliação de desempenho. Ele não  altera testes existentes. Pode-se ainda rodar os testes sem o JUnitPerf.

Roteiro para execução do JUnitPerf:

  1. Primeiro é preciso estimar os valores ideais para execução dos testes.
  2. Escreva testes JUnit para o seu código.
  3. Execute um profiler para descobrir os gargalos. Utilize os dados obtidos como parâmetros para estabelecer os valores máximos aceitáveis para cada método.
  4. Escreva testes do JUnit (se não existirem) para os trechos críticos quanto à desempenho.
  5. Escreva um TimedTest do JUnitPerf para cada teste novo e execute-o. O teste deve falhar. Se passar, não há problema de desempenho com o código.
  6. Trabalhe no código até que os testes passem.

TimedTest

Recuperar o tempo transcorrido após a execução do teste JUnit. Se o tempo for maior que o permitido então uma exceção AssertionFailedError é provocada (o que faz o teste falhar)

Exemplo: TimedTest simples que espera que o método execute em menos de 2 segundos (2000 milissegundos)

public static Test suite() {
     TestSuite suite = new TestSuite();
     Test testCase = OperacoesTest.suite();
     Test testCase = new  OperacoesTest("testSoma");
     Test timedTest = new TimedTest(testCase, 2000);
     suite.addTest(timedTest);
     return suite;
}

LoadTest

Permite simular carga, por exemplo, vários usuários acessando a aplicação ao mesmo tempo. Essencial para descobrir problemas que podem surgir em ambientes multiusuário (por exemplo: problemas de concorrência e integridade de dados usados por vários usuários)

Exemplo: LoadTest simples (executa uma vez por usuário) com 100 usuários simultâneos

public static Test suite() {
     TestSuite suite = new TestSuite();
     Test test = new ExampleTestCase("testMethod");
     Test loadTest = new LoadTest(test, 100);
     suite.addTest(loadTest);
     return suite;
}

A seguir, assista o vídeo:

O código fonte completo poder ser baixado aqui.



Veja o post original no blog do autor aqui!  

Edgard Davidson

Escrito por Edgard Davidson @ http://edgarddavidson.com
Saiba mais sobre o autor na sua pagina de perfil
Outros posts do autor:
» Abertas as inscrições para o novo curso de Pós Graduação em Teste e Qualidade de Software
» Qualidade com Foco no Produto de Software
» Palestra #DevDay 2011

Deixe um comentário



Spam Protection by WP-SpamFree

ACERCA

O que é o RedeRIA ?

O redeRIA não é nada mais que um agregador de feed's que disponibiliza o conteudo de varios blogs e autores ao redor do mundo RIA, actualmente agregamos mais de 2795 entradas vindas de 53 blogs especializados em ria’s, pelo que só fica a ganhar em assinar o feed ou seguir a comunidade no twitter.

Se acha que o seu blog ou um blog de um amigo é interessante e util para os leitores o redeRIA, faça a sua submissão aqui.

Feed: assine já
Twitter: siga-nos

GOOGLE

Votação


Deveria o RedeRia agregar conteúdo em inglês?
Ver Resultados

AUTORES


Eduardo KrausAlexandre TadashiBindableCognitiva SoluçõesDaniel LopesDaniel SchmitzDanielPedrinhaDClick TeamEbercomEdgard DavidsonElvis FernandesErko BrideeFabiel PrestesFábio Batista da SilvaFabio da SilvaFabriccio BernardesFelipe BorellaFlavia MoreiraGabriel VersalliniGabriela T. PerryIgor MusardoJanderson CardosoJoão AugustoJose Carlos FielKelps SousaLeonardo FrançaLucas MarçalLuis MessiasLuiz TarabalMario JuniorMário SantosMauro MartinsPablo SouzaPedro ClaudioreneRia BrazilriaPTRicardo CerqueiraRobson FernandesRodrigo Pereira FragaSaintBrSamuelFacchinelloSergio SouzaSilva DeveloperStefan HorochovecTech CaffeTecinforThiago BuenoVedVinícius SandimWillian ManoXAML Cast

PUBLICIDADE








Powered by Wordpress & msdevstudio.com