jMeter

Log all’interno di JMeter

Uno dei problemi che ho avuto su Jmeter è quello legato all’utilizzo del Regular Expression Extractor, infatti non riuscivo mai a capire quale valore prendesse dalla pagina web, la mia espressione regolare, e andavo sulla fiducia, magari provando prima la mia espressione all’interno di siti come rubular.com

Finalmente sono riuscito ad utilizzare un utilissimo strumento chiamato BeanShell PostProcessor che permette di utilizzare un linguaggio di script dentro la JVM.

Per loggare delle informazioni dopo un sample è sufficente scrivere dentro la box “Script” i seguenti codici:

  • print = mi permette di scrivere dentro la shell di dos (windows) che si avvia quando avviamo jmeter
    es: print(“Hello Word”); stamperà “Hello World
  • log.info = mi permette di stampare nel file di log che possiamo trovare dentro la cartella BIN di JMeter, inoltre è possibile scegliere anche la visibilità dei log per esempio warn o error
    es: log.info(“Hello World”); stamperà 2010/02/24 14:17:58 INFO  – jmeter.util.BeanShellTestElement: Hello World

Nel caso si voglio stampare anche il valore di una variabile (molto utile), basterà soltanto scrivere

  • print(“la variabile e’ ${viewState}”);
  • log.info(“la variabile è ${viewState}”);

Con questo metodo sarà possibile finalmente avere un pò di controllo sulle operazione che stà effettuando JM.

jMeter, Uncategorized

[Listener]Sample Result Save Configuration

Alcuni listener come ad esempio: il view result Tree ed il view result in table, permettono non solo di visualizzare i dati riguardante l’andamento dei test a video, ma anche la possibilità di salvare una parte di questi dati in un file xml o csv.

Nel sito di JMeter si consiglia vivamente di utilizzare di utilizzare il formato CSV in quanto rallenta di meno l’operazione di salvaggio dei dati oltre a essere meno esoso di risorse, in modo da non influire troppo con l’andamento dei test.

Per effettuare il salvattaggio ad esempio con il listener “view result in table” è necessario inserire il path dove è presente il file di testo (meglio se salvato con l’estensione .csv), in cui riporre i dati. Premendo sul bottone “Browser”.

Dopo di che premendo il pulsante “Configure” sarà possibile scegliere quali dati dovranno essere salvati all’interno del nostro file csv. Sicuramente dobbiamo rimuovere tutte le opzioni che portano (XML) alla fine, in quanto incompatibili con il formato csv.

I campi sono molti e perciò ognuno sceglie quelli che si adattano meglio alle proprie esigenze, comunque vi elenco quelli che mi sono sembrati più utili:

  • timeStamp – in millisecondisince 1/1/1970, oppure come “2009/12/17 13:10:40.0382” (vedi sotto)
  • elapsed – in millisecondi (è lo stesso dato che restituisce la colonna Sample Time)
  • responseCode – e.g. 200, 404
  • responseMessage – e.g. OK
  • data type – es: text, jpg
  • latency – in millisecondi – es: 215
  • threadName – nome del thread (es: home portale)
  • success – true or false
  • bytes count – numero di bytes ricevuti dal sample es: 977859
  • URL – la url di chiamata del sample es: http://jakarta.apache.org:8080/jmeter/usermanual/listeners.html
  • Active Thread Counts – Numero di threads attivi, sotto forma di coppia es: (2,2)
  • Sample and Error Counts – coppia di valori (il primo numero indica il numero di sample “1 o più se aggregati”, il secondo indica il numero di eventuali errori “0/1, o più se aggregati “)
  • Host Name – indica il nome dell’host che ha effettuato la chiamata (utile solo nel caso in cui si effettuino test con macchine distribuite)

Alla fine dei test all’interno del nostro file csv, avremmo più stringhe che si presenteranno in questo modo (il delimitatore del csv è la virgola):

2009/12/17 13:10:41.0392,325,200,OK,Home Page Test 1-1,

Nota: se si esegue subito dopo un’altro test, JM aggiungerà le nuove informazioni dei test a quelle già presenti, perciò consiglio vivamente di salvare queste info in un’altro file per evitare di sporcare i dati del test

Importante

Di default JM ha delle impostazioni per il salvattaggio dei dati, che potrebbero non combaciare con le nostre esigenze, come ad esempio il formato della data in ms anzi che nel formato occidentale classico tipo: 2009/12/17 13:10:41.0392.

Per ovviare a questo problema è necessario effettuare delle piccole modifiche al file jmeter.properties nella sezione
“Results file configuration”

  • jmeter.save.saveservice.output_format=csv (al posto di xml)
  • de-commentare la stringa: jmeter.save.saveservice.timestamp_format=yyyy/MM/dd HH:mm:ss.SSSS

Alla fine avremmo un file csv pronto per essere manipolato grazie ad Excel od OpenOffice, o tramite degli script che genereranno eventualmente altri csv con dati più specifici e dettagliati.

Il tutto per concederci delle statistiche personalizzate, che si adattino di più alle nostre esigenze.

L’unica nota negativa è che i dati non hanno un nome per ogni colonna, cosi dobbiamo essere noi a ricordarci, quali dati abbiamo inserito, ed in quale ordine vengono salvati.

jMeter, Uncategorized

[JMeter] Plug-ing Ottimizato per le statistiche Grafiche

Uno dei grandi limiti di JM, sta proprio nella sua interfaccia grafica, che si presenta un pò spartana. E soprattutto i grafici che genera, la maggior parte delle volte sono di difficile lettura, perciò inutilizzabili.

Nel caso specifico mi riferisco al listner: Graph Result, il quale si presente normalente in questo modo.

Il nuovo plug-ing che incontrato disponibile al sito http://rubenlaguna.com/wp/better-jmeter-graphs/ permette di aggiungere un nuovo listener chiamato “Statistical Aggregate Report listener” questo nuovo listner si presenta in questo modo.

Come si può vedere dall’immagine, il grafico finalmente è comprensibile è soprattutto ci permette di generare migliori analisi, su ciò che ha generato il nostro script.

Installazione:

L’installazione è semplicissima basta scaricare il file zip che troviamo nel sito e dopo di che estrarre il suo contenuto (una cartella LIB) all’interno della cartella dove si trova JMeter, ed il gioco è fatto. Al primo avvio di jmeter troveremo disponibile tra la lista dei listener, il nostro nuovo plug-ing.

PRO:

  • Questo plug-ing era ciò che si ci aspettava da un sacco di tempo, rendendo più gradevoli e comprensibili i dati generati da jmeter
  • Permette di tenere traccia dei tempi.
  • Utilizza una scala, comprensibile e leggibile.

CONTRO:

  • Per cancellare i dati precedentemente visualizzati, non basta eseguire il mitico CTRL+E, l’unico modo è riavviare jmeter stesso.
  • Se viene salvato uno script con all’interno il riferimento a questo listener, nel caso in cui venga carica da un’altro JM che non ha installato il plug-ing, il caricamento và in errore.