You are on page 1of 14

UsandoJmeterparapruebasderendimiento

F.JavierDiaz ClaudiaM.TzancoffBanchoff AnahS.Rodrguez ValeriaSoria {jdiaz,cbanchoff,anahi,valeria}@linti.unlp.edu.ar LINTI.Fac.deInformtica,UniversidadNacionaldeLaPlata. LaPlata,1900,ARGENTINA

Abstract
Producing high quality software [1] implies developing systems which fulfill all the specifiedorimplicitneedsestablishedbytheuser. Thesoftwareprocessisconformedbysevenstages:RequirementsanalysisSpecification DesignandarchitectureProgrammingTestingDocumentationMaintenance. Softwaretestingcanbemadeindifferentstagesofthisprocess.Itisimportanttoemphasize onitbeingperformedinearlystages,soastoconditiontheposteriordevelopment. Whendealingwithawebapplication,therearemanyaspectstoanalyze.Apartfromthe functionalones.Manyarerelatedtothespecificationandfunctionalcustomizationofthesystem, butthereareotheraspectsrelatedtotheperformanceoftheserver,easeofnavigation,security aspects,etc. Thegoalofthisarticleistoemphasizeonthetestingprocessoftheuseofatool[2]which simplifiestheanalysis.Wetookaspilotcasetheanalysisoftheperformanceofacontentmanager implementedbytheUNLP.

Keywords:Quality,Testing,PerformanceTests,Webapplications.

Resumen
Producirsoftwaredealtacalidad[1]implica desarrollar sistemas que cumplancon la totalidaddelasnecesidadesespecificadasoimplcitasestablecidasporelusuario. El proceso de software consta de siete etapas: Anlisis de requisitos Especificacin DiseoyArquitecturaProgramacinPruebaDocumentacinMantenimiento. Laspruebasdelsoftwarepuedenrealizarseendistintasetapasdeesteproceso.Sedestacala importancia de que las mismas se realicen en etapas tempranas, pudiendo esto, obviamente, condicionarelposteriordesarrollo. Cuando setratade unaaplicacinweb,existenvariosaspectosadicionalesaanalizar, ademsdelosfuncionales.Muchostienenqueverconlaespecificacinyadecuacinfuncionaldel sistema,perohayotrosaspectosquetienenqueverconlaperfomancedelservidor,lafacilidadde navegacin,aspectosdeseguridad,etc. Elobjetivodeesteartculoesdestacarenelprocesodetestingelusodeunaherramienta[2] quesimplifiqueelanlisis.Setom comocasopiloto,elanlisisderendimientodeunmanejador decontenidosimplementadoporlaUNLP. PalabrasClaves:Calidad,Testing,PruebasdeRendimiento,Aplicacionesweb.

Introduccin
Las pruebas de rendimiento realizados sobre computadoras, redes, software u otros dispositivos, son utilizados para determinar la velocidad y eficiencia de los mismos. Este procedimientopuedeinvolucrartantotestscuantitativos,porejemplo,medirtiemposderespuestao cantidadenmillonesdelneasdecdigo,comotestscualitativos,enloscualesseevalafiabilidad, escalabilidadeinteroperabilidad.Estaspruebasderendimientopuedenserrealizadasatravsde herramientasqueproveenpruebasdeestrs,quepermitendeterminarlaestabilidaddelsistema.[3] [4] Laslimitacionesenlostiemposderespuestadeunsitiowebyunaaplicacindeescritorio sonsimilares,ynohancambiadoeneltranscursodelosaos.Cabeaclararqueenlacasodelos sitioswebeltiempoest muyrelacionadoalavelocidaddelenlacedondeseest navegando.

SegnelautorJakobNielsen,enellibroUsabilityEngineering[5]existentreslmitesimportantes eneltiempoderespuesta:[6][7] 0,1segundo:esellmiteenelcualelusuariosientequeestamanipulandolosobjetos desdelainterfazdeusuario. 1segundo:esellmiteenelcualelusuariosientequeestnavegandolibrementesinesperar demasiadounarespuestadelservidor. 10segundos:esellmiteenelcualsepierdelaatencindelusuario,silarespuestatarda ms de 10 segundos se deber indicar algn mecanismo por el cual el usuario pueda interrumpirlaoperacin. Ennuestrocasoparticular,estetiempoestcondicionadoalossiguientespuntos: Elservidortesteadoseencuentraenlamismaredenlacualserealizaronlaspruebas. Velocidaddeconexindelservidor. Velocidaddeconexindelcliente. Tiempoenelcualelnavegadorwebtardaparadibujarlapgina(tiempomuypequeo). Rendimientodelaredenelmomentodelaprueba.

CaractersticasdelaPrueba
Enestaseccinsedescribirtantolaherramientautilizadacomolaspruebasrealizadas. Laherramienta Paraanalizareltiempoderespuestadelservidorseutiliz laherramientaJmeter[8].La versinutilizadadeJmeterduranteestetrabajoesla2.3.1. Jmeteresunaherramientaopensourcemuycompleta,implementadaenJavaquepermite realizartestdecomportamientofuncionalymedirelrendimiento.Tambinsepuedeutilizarpara realizarpruebasdeestrs,porejemplo,enunservidor,yponerapruebasurendimiento[9]. Paraestaspruebas,seconfigur unservidorProxyqueproveeJmeter,parapoderconstruir uncaminodenavegacinaleatorio,yassimularlavisitadeunusuario.

Para poder evaluar los resultados se utilizaron 3 (tres) componentes provistos por la herramienta[10][11]. SummaryReport: Permitevisualizarlosresultadosdeltestrealizado,enunatabla.Losdatos quepresentason: o Label:etiquetadelamuestra o #Muestras:cantidaddethreadutilizadosparalaURL. o Media:tiempopromedioenmilisegundosparaunconjuntoderesultados. o Min:tiempomnimoquedemoraunthreadenaccederaunapgina. o Max:tiempomximoquedemoraunthreadenaccederaunapgina o Rendimiento:rendimientomedidoenlosrequerimientoporsegundo/minuto/hora. o Kb/sec:rendimientomedidoenKbytesporsegundo. o Mediaenbytes:tamaomedioderespuestadelservidor(enbytes). AgreggateGraph: Estacomponenteessimilaralaanterior,peropermiteobtenerresultados msprecisos.Utilizamsmemoria,yaquecalculalamedianaylalneaal90%,lacual requierenquetodoslosdatosestnalmacenados.Losdatosquesepresentanson: o URL:etiquetadelamuestra o #Muestras:cantidaddeThreadutilizadosparalaURL. o Media:tiempopromedioenmilisegundosparaunconjuntoderesultados. o Mediana:valorentiempodelpercentil50. o Lneade90%:mximotiempoutilizadoporel90%delamuestra,alrestodela mismalellevomstiempo. o Min:tiempomnimodelamuestradeunadeterminadaURL. o Max:tiempomximodelamuestradeunadeterminadaURL. o %Error:porcentajederequerimientosconerrores. o Rendimiento:rendimientomedidoenlosrequerimientoporsegundo/minuto/hora. o KB/sec:rendimientomedidoenKbytesporsegundo.

Grafico de Resultados : Esta componente permite visualizar grficamente los siguientes datos:media,mediana,dispersinyelrendimiento(representadocomoelnmeroactualde requerimientos/minutosqueelservidormaneja).

LaPrueba Lapruebarealizadaconsistiendefinir3testsde100,50y25threadscadauno,loscuales simulan100,50y25accesosdeusuariosrespectivamente. Sedefinieronunalistadeenlacesalosquesesimulelaccesoaleatorioyapartirdeah,se recolectaronlosdatosnecesariosparasuinterpretacin.

Elanlisis Seanalizaronlosresultadosatravsdeunintervalodeconfianza1conunniveldeconfianza al95%. Paraunprimeranlisis,sesuponequelapoblacintieneunadistribucinNormal. Paraunsegundoanlisis,dadoquelamuestraesgrande,noserequierehacerlasuposicin dequelamuestratieneunadistribucinNormalyaqueporelTeoremaCentraldelLmite(TCL), para n grandeimplica queX tieneunadistribucin aproximadamente Normal sinimportar la naturalezadeladistribucinpoblacional[12].

Sellamaintervalodeconfianzaaunintervalodevaloresalrededordeunparmetromuestralenlosque,conunaprobabilidado niveldeconfianzadeterminado,sesituarelparmetropoblacionalaestimar.[13].

ResultadosDetallados
PruebaNro.1 Laprimerapruebafuerealizadaelda10/06/08alas16:07hs,Seconfiguraron50threads, cada1seg.LosvalorestotalesobtenidosporlacomponenteAggregateGraphsemuestranen laTabla1.

#Muestras

Media

Mediana

Lneade90%

Min

Mx

%Error

Rendimiento

Kb/sec

TOTAL

3850

5405

1078 15000 0 125360 1.3% Tabla1:ValorescorrespondientesalaPrueba1.

8,3/sec

79

Como puede verse, el tiempo promedio para acceder a una pgina es 5,405 segundos, realizndoseuntotalde3850requerimientosalservidor. Eltiempototalutilizadoparalos50threadssepuedecalcularconlasiguientefrmula:

TiempoTotal=#Muestras*Media=3850*5405=20809250milisegundos

El tiempo promedio total requerido por cada thread, se puede calcular de la siguiente manera:

((TiempoTotal/1000)/60)/cantidaddeThread=((25535400/1000)/60)/50=6,936416minutos

Anlisisrealizado Enprimerlugarseevaluaronlosresultadosobtenidosatravsdeunintervalodeconfianza paraunadistribucinNormalal95%.Lafrmuladelmismoeslasiguiente: [TPZ0.95*D/n,TP+Z0.95*D/n] Donde: Tiempopromedio(TP)derespuestaes:5405

Desviacin(D)es:11443. Tamaodelamuestra(n)esde:3850 Z0.95:1,96

Elintervaloresultanteeselsiguiente: [54051,96*11443/3850,5405+1,96*11443/3850] =[5043,535539;5766,464461]enmilisegundos. =[5,043535539;5,766464461]ensegundos. Porlotanto,sepuede esperarqueeltiempoderespuestapromedioest entre5 y5,7 segundosparaunacantidadde50usuariossimultneosrealizando3850solicitudes.

En segundo lugar, se evaluaron los resultados obtenidos a travs de un intervalo de confianzaal95%paramuestrasgrandes.Lafrmuladelmismoeslasiguiente: [TPZ0.95*S/n,TP+Z0.95*S/n] Donde: Tiempopromedio(TP)derespuestaes:5405 EstimadordelDesvo(S)es:(x2(x)2/n)/n1)=85971,17312 Tamaodelamuestra(n)esde:3850 Z0.95:1,96

Elintervaloresultanteeselsiguiente: [54051,96*85971,17312/3850,5405+1,96*85971,17312/3850] =[2689,320215;8120,679785]enmilisegundos. =[2,689320215;8,120679785]ensegundos.

En este caso, se puede esperar que el tiempo de respuesta promedio est entre 2 y 8 segundosparaunacantidadde50usuariossimultneosrealizando3850solicitudes.

PruebaNro.2 Lasegundapruebafuerealizadaelda11/06/08alas11:12hs,seconfiguraron25threads, cada1seg.Seutiliz lamismalistadeenlacesutilizadaenlaPruebaNro.1.Losvalorestotales obtenidosporlacomponenteAggregateGraphsemuestranenlaTabla2.

#Muestras

Media

Mediana

Lneade90%

Min

Mx

%Error

Rendimiento

Kb/sec

TOTAL

1925

1294

15

1531

123360

1.3%

11,7/sec

111,8

Tabla2:ValorescorrespondientesalaPrueba2.

Comopuedeverseenlatablaanterior,eltiempopromedioparaaccederaunapginaes 1,294segundos,realizndoseuntotalde1925requerimientosalservidor. Eltiempototalutilizadoparalos25threadsyelrequeridoparacadathreadsecalcularonde lamismamaneraqueenlaPrueba1: TiempoTotal=#Muestras*Media=1925*1294=2490950milisegundos

((TiempoTotal/1000)/60)/cantidaddeThread=((2490950/1000)/60)/50=1,66063enminutos

Anlisisrealizado Elanlisisparalasegundaprueba,fuerealizadodemanerasimilarque enla primera, usandolasmismasfrmulas. Elintervaloresultante,utilizandounintervalodeconfianzaparaunadistribucinNormalal 95%,es: [12941,96*8783/1925,1294+1,96*8783/1925] =[902,5390776;1687,460922]enmilisegundos =[0,902539077;1,687460922]ensegundos

Esto significa que, puede esperarse un tiempo de respuesta promedio entre 0,9 y 1,7 segundosparaunacantidadde25usuariossimultneosrealizando1925solicitudes.

Conunintervalodeconfianzaal95%paramuestrasgrandes,elintervaloresultanteesel siguiente: [12951,96*56413,6792/1924,1295+1,96*56413,6792/1924] =[1225,797515;3815,797515]enmilisegundos. =[1,225797515;3,815797515]ensegundos.

Comoellmiteinferioresnegativo,ylamedidadeltiemponuncapuedesernegativa,se puedeesperarqueeltiempoderespuestapromedioestentre0y3,8segundosparaunacantidadde 25usuariossimultneosrealizando1295solicitudes.

PruebaNro.3 Latercerapruebafuerealizadaelda11/06/08alas12:08hs,seconfiguraron100threads, cada1seg.SeutilizlamismalistadeenlacesutilizadaenlaPruebaNro.1.LaTabla3muestra losvaloresobtenidosdelacomponenteAggregateGraph.

#Muestras

Media

Mediana

Lneade90%

Min

Mx

%Error

Rendimiento

Kb/sec

TOTAL

7300

12526

250

29265

696594

0,42%

5,7/sec

102,5

Tabla3:ValorescorrespondientesalaPrueba3.

Comopuedeverseenlatablaanterior,eltiempopromedioparaaccederaunapginaes 12,526segundos,realizndoseuntotalde7300requerimientosalservidor. Eltiempototalutilizadoparalos100threadsesde91439800milisegundosy eltiempo promediototalrequeridoporcadathreadesde15,23996enminutos.

Anlisisrealizado Como enlas pruebasanteriores, secalcularon los intervalos enbaseaunintervalo de confianzaparaunadistribucinNormalal95%yenbaseaunintervalodeconfianzaal95%para muestrasgrandes. Losdatosobtenidosson: [11,41498972;13,63701028]ensegundosparaelprimercasoy, [7,79171985;17,26028015]ensegundosparaelsegundo.

Por lo tanto,sepuedeesperarqueeltiempo derespuestapromedioest entre 11 y 13 segundos para una cantidad de 100 usuarios simultneos realizando 7300 solicitudes y que el tiempoderespuestapromedioestentre7,8y17,2segundosparalamismacantidaddemuestras.

ResultadosGenerales
Comosemencionalcomienzodeesteartculo,Jmeterproveeunacomponentequepermite visualizarlosdatosobtenidosenformagrfica. GrficosObtenidos LasFiguras1,2y3muestranlosdatosobtenidosparalaprueba1,2y3respectivamente.

Figura1:ValorescorrespondientesalaPrueba1.

Figura2:ValorescorrespondientesalaPrueba2.

Figura3:ValorescorrespondientesalaPrueba3.

TablaComparativa LaTabla4permiteobservarunresumendelosdatosinformadosporlaspruebasanteriores:
#Thread #muestras Rendimiento TiempomediodeRespuesta Dispersin %Error

25 50 100

1925 3850 7300

701,262/min 495,825/min 340,69/min

1294 5405 12526

8783 11443 48431

1,30% 1,30% 0,42%

Tabla4:Datosobtenidosenlastrespruebas

UnresumendelosdatosestadsticosanalizadospuedenverseenlaTabla5.
#Thread ICDistribucinNormalal95% ICal95%usandoTCL

25 50 100

[0,902539077;1,687460922]enseg [5,043535539;5,766464461]enseg [11,41498972;13,63701028]enseg

[1,225797515;3,815797515]enseg [2,689320215;8,120679785]enseg [7,79171985;17,26028015]enseg

Tabla5:Datosestadsticosenlastrespruebas

Conclusin
Sibienlaetapadepruebasfuncionalesdeunaaplicacinsonsumamenteimportantes,ya queapartirdelasmismassepodr contarconlaaprobacindelusuariofinal,eltipodepruebas mencionadasenelpresenteartculosontambincrticas.Unamalaconfiguracindelservidorweb, o de la red donde correr el mismo (con la aplicacin residente en l) puede influenciar negativamenteelusodelamisma. Enestetrabajoseevalu lautilizacindelaherramientaJmeter,paralaetapadetesteode rendimientodelservidorwebdelsitiodelaUniversidadNacionaldeLaPlata. Al tratarse de un portal al cual acceden muchos usuarios en forma simultnea, es indispensableestarsegurosdeunabuenaconfiguracindelservidordondecorrer. Las primeras pruebas realizadas dieron tiempos de respuestas poco aceptables para una ciertacantidaddeusuariosconcurrentes.ElusodelaherramientaJMeterfuedegranayudapara realizarestaspruebas,graciasasuflexibilidaddeconfiguracinyclaridaddevisualizacindelos resultadosdelaspruebas,loqueayudaasuinterpretacin. Apartirdelanlisisdeestosdatosy,teniendoencuentalosparmetrossugeridosdesdeel reaHCI[5]sesugirialgrupodedesarrollounareconfiguracindelservidorwebhastaalcanzar losvaloresptimosdetiempoderespuesta. Referencias [1]ISO84021986 [2]http://www.opensourcetesting.org/performance.php [3]http://en.wikipedia.org/wiki/Performance_testing [4]http://en.wikipedia.org/wiki/Stress_testing_%28software%29 [5]UsabilityEngineeringautor:JakobNielsen,publicadopor:MorganKaufmann,San Francisco,1994.ISBN0125184069 [6]http://www.useit.com/alertbox/9703a.html [7]http://www.useit.com/papers/responsetime.html

[8]http://jakarta.apache.org/jmeter/ [9]http://www.osmosislatina.com/jmeter/basico.htm [10]http://jakarta.apache.org/jmeter/usermanual/component_reference.html [11]TestesdeDesempenhocomoTidiaAeeoSakaiUtilizandooBenchmarkJmeter.Tiago CaminhaGaspar;SandroLopesBianchini;FlviaLinhalis;CsarAugustoCamilloTeixeira;Maria daGraaCamposPimentel.http://lince.dc.ufscar.br/home/projetos/tidiaae%20II%20 %20Lince/relatorios/relatorio.pdf [12]ProbabilidadesyEstadsticasparaIngenierayCiencias6taedicinJayL.Devore [13]http://es.wikipedia.org/wiki/Intervalo_de_confianza

You might also like