tutorial ibm rational performance tester 8.2.1

Transcript

tutorial ibm rational performance tester 8.2.1
TUTORIAL
IBM RATIONAL PERFORMANCE TESTER 8.2.1
Versione documento : 0.1
Data : 23/10/2012
Autore : Pietro Cornelio
Software usato per la redazione del documento : LibreOffice 3.5.4.2
Pag. 1/23
INTRODUZIONE
IBM Rational Performance Tester è uno strumento software basato sul potente IDE Eclipse di IBM versione
3.6.2. Il tool abbreviato in RPT permette di effettuare sofisticati e completi test prestazionali di applicazioni e
servizi web, permettendo di verificare le prestazioni e conseguentemente la scalabilità di un sistema/progetto
informatico web based e/o J2EE Application Server. RPT permette di effettuare test dei carichi di lavoro del
server evidenziano nelle applicazioni da monitorare come esse gestiranno i carichi di lavoro (richieste anche
da centinaia di utenti), prima di inviare il sistema/progetto web in produzione.
La particolarità dello strumento è l'elevata configurabilità e la capacità di identificare la presenza e la causa
di eventuali colli di bottiglia del sistema in esame.
Grazie a un'interfaccia grafica molto potente, RPT permette di costruire test di verifica e di carico riducendo
notevolmente la complessità dei test nella loro formulazione di base (che normalmente richiedono la scrittura
di codice in linguaggi di programmazione con altri tool) ma senza banalizzare la configurazione del test che
comunque richiede una buona preparazione tecnica nei specifici test che si desidera implementare.
RPT possiede inoltre strumenti di analisi delle cause determinanti dei problemi di un sistema web,
identificandone e diagnosticandone le possibili cause. Mentre la sezione di reporting in tempo reale è molto
curata e consente l'identificazione immediata dei problemi di prestazioni, offrendo una vista grafica e
tabellare dei risultati dei test.
Fig. 1: Schermata di avvio di Rational Performance Tester
Pag. 2/23
TEST#1: VERIFICA DI WEB SERVICES
Prima di capire come effettuare un test di servizi web è assolutamente necessario fare qualche richiamo sulla
tecnologia/architettura dei web services e di come quest'ultimi vengono implementati.
Secondo la definizione data dal World Wide Web Consortium (W3C), un Web Service è un sistema
informatico progettato per supportare l'interoperabilità tra diversi elaboratori; caratteristica fondamentale di
un Web Service è quella di offrire un'interfaccia informatica - descritta in un file con formato
automaticamente elaborabile, come ad esempio il WSDL [Web Services Description Language] - grazie alla
quale interfaccia altri sistemi possono interagire con il Web Service stesso attivando le operazioni (metodi)
descritte nell'interfaccia tramite appositi "messaggi" operativi inclusi in una "busta" di trasporto, la più
famosa è SOAP. I messaggi vengono comunemente trasportati tramite il protocollo HTTP e formattati
secondo lo standard XML.
Fig. 2: Pila protocollare dei Web Services
Grazie all'utilizzo di standard basati sul linguaggio XML, tramite un'architettura basata sui Web Service
definita comunemente col termine SOA che sta per Service Oriented Architecture, applicazioni software
anche diverse tra di loro come architettura che hanno la necessità di comunicare attraverso Internet e altre
reti, spesso scritte in diversi linguaggi di programmazione e implementate su piattaforme hardware/software
diverse, possono quindi essere parlarsi tramite delle interfacce le quali permettono alle applicazioni di cui
sopra di "esporre" pubblicamente e mediante l'utilizzo di funzioni (o metodi) i "servizi" che offrono e che
permettono lo scambio di informazioni bidirezionalmente e l'effettuazione di operazioni complesse, come ad
esempio quelle di leggere e scrivere in basi di dati sfruttando ad esempio un protocollo semplice come
l'HTTP che permette di trasportare informazioni ovunque e attraverso reti e sistemi eterogenei. NOTA :
anche se esistono molteplici definizioni di SOA, solo il gruppo OASIS (Organizzazione per lo sviluppo di
standard sull'informazione strutturata) ha prodotto una definizione formale applicabile profondamente sia
alla tecnologia che ai domini aziendali.
Pag. 3/23
CREAZIONE DEL TEST
Creare un nuovo progetto di test dal menu File come da figura seguente :
Selezionare “Progetto test delle prestazioni” (anche se andrebbe scelto “Progetto di test di servizio”
preferiamo scegliere l'altra voce per fare in modo che si crei una struttura di cartelle organica e più
funzionale ai fini di test e report. Scegliendo “Progetto di test di servizio” la struttura di cartelle non viene
creata essendo il test dei web service più semplice.
Poi dare al progetto un nome. Vedi figura...
Pag. 4/23
Comparirà la seguente finestra che invita ad avviare una sessione di registrazione relativa a un test di servizi.
Selezionare “Test di servizi” e dopo cliccare il bottone avanti.:
Aprire la gerarchia di cartelle del progetto “Test_WebServices_Pietro1” sul bottone (+) e selezionare la
cartella Test. In questo modo saremo sicuri che il nostro test sarà memorizzato nella cartella Test della
struttura. Dare un nome parlante al test che descriva il servizio che si va a testare. Per semplicità in questa
guida useremo “Test_WS1”. Cliccare il bottone avanti...
Pag. 5/23
Selezionare “Generic Service Client”. Cliccare il bottone Fine.
Comparirà la seguente finestra :
A questo punto bisogna caricare il file WSDL in formato XML, il file descrive l'interfaccia pubblica di un
Web Service e di come essa interagisce con uno specifico servizio applicativo. Di seguito un richiamo :
Pag. 6/23
1.
2.
3.
4.
cosa può essere utilizzato, cioè "operazioni" messe a disposizione dal servizio;
come utilizzarlo, cioè il protocollo di comunicazione da utilizzare per accedere al servizio;
il formato dei messaggi accettati in input e restituiti in output dal servizio ed i dati correlati ovvero i "vincoli"
(bindings) del servizio;
dove utilizzare il servizio, il cosiddetto endpoint del servizio che solitamente corrisponde all'indirizzo - in
formato URI - che rende disponibile il Web Service.
Qualche dettaglio utile :
Le operazioni supportate dal Web Service ed i messaggi che è possibile scambiare sono descritti in maniera astratta e
quindi non collegati ad uno specifico protocollo di rete e ad uno specifico formato. Il WSDL è solitamente utilizzato in
combinazione con SOAP e XML Schema per rendere disponibili i Web Services su reti aziendali o su internet: un
programma client (come ad esempio Generic Service Client oppure il migliore software Open Source soapUI) può,
infatti, "leggere" il documento WSDL relativo ad un Web Service, per determinare quali siano le funzioni messe a
disposizione sul server e attraverso il protocollo SOAP utilizza una o più delle funzioni elencate dal WSDL.
Nota : la versione 1.1 di WSDL non è stata adottata come standard dal World Wide Web Consortium (W3C). Mentre la
2.0 è pienamente conforme dal W3C
Come si vede in figura precedente si hanno a disposizione molteplici metodi di caricamento. Noi
sceglieremo “Dal file system” e selezioneremo GPAIntegrationService.wsdl (o altro file wsdl) relativo al
servizio web che desideriamo testare...
NOTA : se il file wsdl è stato già precedentemente caricato in un'altro test, esso sarà già presente nello
spazio di lavoro di RPT e quindi RPT chiederà se vogliamo sostituirlo o copiarlo. Possiamo scegliere di
sovrascriverlo, però se abbiamo fatto delle modifiche ai parametri del file precedentemente memorizzato
nello spazio di lavoro queste modifiche andranno perdute. Si possono cancellare i file wsdl caricati nello
spazio di lavoro col consueto tasto destro sul file nell'area finestra Librerie richieste.
Pag. 7/23
Dopo il caricamento del file WSDL comparirà la seguente schermata dove è possibile modificare i parametri
del servizio nell'area a destra:
Nota : Cliccare sul nome del servizio, nel nostro caso “InsertSegnalazioneAutomatica” per far comparire a
destra la struttura della richiesta e i metodi (funzioni) da richiamare.
Nella sezione relativa al “trasporto” possiamo effettuare delle modifiche importanti come il cambiamento
dell'URL del servizio, il protocollo, l'intestazione, etc. e scegliere quali richieste usare per il test:
Pag. 8/23
Cliccando sul bottone “Richiama” possiamo richiamare il servizio e verificarne l'esito della risposta da parte
del server, dopo comparirà una schermata come segue con il tab Visualizza risposta attivo:
Pag. 9/23
A questo punto bisogna cliccare sul bottone Viola di “Arresta sessione di registrazione” per memorizzare
il test in RPT. Generazione test completata come di seguito...
Nota: compariranno altri 2 file nella cartella Test. : il file .wsdl e quello relativo al processo di test di RPT.
In particolare il file .wsdl può essere aperto (doppio clic su di esso) per un'agevole modifica grafica/visuale
dei parametri funzionali del web services e dei suoi metodi (funzioni) oppure se vogliamo aggiungere porte,
binding, etc. O addirittura possiamo creare un'altro servizio con tutti i parametri necessari. Vedremo di
seguito la particolarità di questa sezione grafica molto potente per creare o modificare al volo un web
services. Vedi figura seguente...
Pag. 10/23
CREAZIONE DEL TEST DI CARICO
Cliccare sul nome del progetto, poi tasto destro Nuovo → Elemento di test... :
Scegliere “Pianificazione prestazioni” come in figura seguente :
Pag. 11/23
Selezionare la cartella Pianificazioni nel progetto e dare un nome al test come figura seguente :
Cliccare il bottone Avanti... Comparirà la finestra seguente nella quale si possono introdurre alcuni parametri
importanti per simulare opportunamente il carico di prestazioni che si desidera inviare al server web.
Preferiamo però lasciare tutto di default per poi cambiare questi parametri successivamente nella maschera
apposita dove avremo maggiore controllo.
Cliccare sul bottone “Fine”. Verrà chiesto se aprire l'editor, rispondiamo di “NO”.
Pag. 12/23
Ora facciamo doppio clic col mouse sulla voce “Test_carico1” o altro nome che si è dato al test di carico.
Comparirà la finestra come da figura seguente con a sinistra i dettagli degli elementi di pianificazione, dove
possiamo aggiungere o modificare ogni parametro funzionale di carico.
Passiamo ora a introdurre/modificare i parametri iniziali di carico. Cliccare sulla prima riga del Tab
“Caricamento Utente” e poi bottone modifica...
Pag. 13/23
Numero di utenti: rappresenta il numero totale di utenti che devono essere attivi nella fase di test in uno
specifico gruppo (se lo si è creato);
Durata fase: si hanno 2 scelte importanti con check box a mutua esclusione :
1. “Esegui per un periodo di tempo specificato”
2. “Esegui la fase fino al completamento di tutti i lavori (solo l'ultima fase)”
Frequenza di modifica : rappresenta se il numero di utenti devono essere attivi tutti contemporaneamente
oppure avere un tempo di ingresso degli utenti in modo sequenziale e progressivo con un tempo di ingresso
settabile in secondi, minuti, etc.
Se non si stanno utilizzando più “fasi” di test, ma una sola “fase” utilizzare la scelta 1 e immettere la quantità
di tempo (in minuti o secondi) nella quale il test deve essere eseguito tassativamente. Naturalmente se si è
scelto un tempo di durata fase di 15 minuti e abbiamo pre-configurato 20 utenti con una “Frequenza di
modifica” di un utente ogni 1 minuto ci troveremo nella condizione di non arrivare al numero massimo di
utenti (nel nostro discorso settati a 20) in quanto in 15 minuti avremo raggiunto una “carico” di 15 utenti.
Quindi è da tenere in considerazione “Durata Fase” con “Frequenza di modifica”
Mentre se avessimo fatto la scelta 2, con una “Frequenza di modifica” di un utente ogni 1 minuto ci
troveremo nella condizione congrua di test in quanto i 20 utenti saranno spalmati in progressione su 20
minuti.
Se gli utenti non si trovano in un loop infinito, potrebbero completare questa fase prima del tempo assegnato.
Per evitare questa situazione, immettere gli utenti in un loop infinito.
Esegui la fase fino al completamento di tutti i lavori (solo l'ultima fase) selezionare questa opzione quando
una pianificazione ha solo una fase e si desidera eseguire tutto il lavoro pianificato fino al completamento (Si
avrà lo stesso funzionamento della pianificazione dei precedenti rilasci).
Tempo di sistemazione: un sistema potrebbe reagire ad una modifica repentina nella popolazione di utenti.
L'impostazione di un tempo di sistemazione, che inizia quando il numero di destinazione di utenti viene
raggiunto, consente al sistema di sistemarsi in uno stato stabile così che possa riflettere accuratamente la
popolazione utenti. La fase ha inizio quando il tempo di sistemazione termina.
Continua con altre serie di fasi: selezionare questa opzione per creare una serie aggiuntiva di fasi.
Nota: la durata fase inizia dopo che è stato raggiunto il numero di utenti per la fase corrente e quando il
tempo di sistemazione scade.
I gruppi utenti permettono di creare gruppi di utenti che possono eseguire test diversi tra loro, ad esempio il
gruppo 1 esegue un test di carico con 5 utenti configurati in un certo modo e secondo dei test particolari
precedentemente pre-registrati, mentre il gruppo 2 esegue un test di carico ad esempio di 30 utenti con un
test completamente diverso.
Per aggiungere un test di prestazione automatico procedere in questo modo, selezionare il gruppo nel quale si
vuol inserire un test. Cliccare sul bottone “Aggiungi” e poi sulla voce “Test”
Pag. 14/23
Nella schermata successiva posizionarsi sulla struttura di cartelle del progetto, nella cartella “Test”
selezionare il test che abbiamo configurato alle pagine precedenti.
AVVIARE IL TEST
Cliccare sul bottone Esegui, comparirà una finestra di dialogo gallegiante con una barra di progressione...
Pag. 15/23
VISUALIZZAZIONE DEI RISULTATI
Alla fine verrà visualizzata una finestra come segue (notare il campo in verde “Completo”):
In basso ci sono una serie di tab: Generale (quello visualizzato), Riepilogo, Risultati del tempo di risposta,
etc. nei quali è possibile visualizzare i dati dei risultati scaturiti dal test e relativi grafici.
Per una immediata visualizzazione di un sintetico resoconto dei risultati è possibile farlo cliccando col tasto
destro del mouse sul grafico principale nel tab Generale e scegliere la voce “Visualizza log di test”
Pag. 16/23
Verrà visualizzata la schermata riepilogativa come in figura seguente dove è possibile verificare l'esito del
test con molta chiarezza e visualizzare le varie sezioni di risultati “Elenco verdict”.
Il diagramma a torta di colore verde evidenzia la perfetta riuscita del test.
IMPORTANTE : VISUALIZZARE I DETTAGLI DEI MESSAGGI DEL WEB SERVICES
Facendo doppio clic sul nome del test come in figura seguente
Si aprirà la finestra come quella seguente, dove possiamo visualizzare ed esplorare i messaggi (nel tab in
basso “Dati transazioni semplici”) in modo gerarchico iniziando da “Richiesta servizio web” alla “Risposta
da WSDL”. Semplicemente cliccando una sola volta sulle voci nell'albero di struttura del test.
Pag. 17/23
Visualizzazione del messaggio SOAP di richiesta servizio web (messaggio iniziale)
Visualizzazione del messaggio SOAP di risposta WSDL (contenuto del messaggio)
Pag. 18/23
CREAZIONE DEL REPORT FINALE DEL TEST
La creazione di un report è davvero semplice. Tasto destro del mouse nell'area di grafico e scegliere la voce
di menu “Crea riepilogo esecutivo...” come da figura seguente...
Comparirà la seguente finestra dove selezioneremo tutto con l'omonimo tasto... Cliccare il bottone avanti ed
eventualmente modificare il percorso (path) dove sarà creato il report.
Pag. 19/23
NOTA OPERATIVA SULLE PROSPETTIVE (VISTE GRAFICHE):
LE VISTE GRAFICHE CON LE VARIE FINESTRE DI CONFIGURAZIONI SONO CHIAMATE
“PROSPETTIVE” . LE PROSPETTIVE CONFIGURATE DAL CLIENTE POSSONO ESSERE
PERSONALIZZATE E REGISTRATE CON NOMI PER UN FACILE RICHIAMO.
IMPORTANTE:
PUÒ CAPITARE ALLE VOLTE DI PERDERE/CHIUDERE QUALCHE FINESTRA DI ISPEZIONE O DI
CONTROLLO.
PER
RITORNARE
ALLA
PROSPETTIVA
DI
BASE
(DEFAULT)
BASTA
SEMPLICEMENTE SCEGLIERE LA VOCE DI MENU “REIMPOSTA PROSPETTIVA” SOTTO IL
MENU FINESTRA PER RITORNARE A UNA CONFIGURAZIONE PULITA.
VEDI FIGURA SEGUENTE :
Pag. 20/23
CREAZIONE O MODIFICA AL VOLO DI UN WEB SERVICES PRECONFIGURATO
fare doppio clic sul nome su GPAIntegrationService.wsdl sotto la cartella test, si aprirà una finestra come
sopra. In basso a sinistra c'è la finestra delle proprietà del servizio (in caso non dovesse comparire cliccare
col mouse al centro della finestra nello spazio bianco in modo da deselezionare altri oggetti inevvertitamente
selezionati). La finestra delle proprietà è la seguente :
Come si vede c'è il campo dello “Spazio dei nomi di destinazione”, cliccare sul bottone “avanzate” per
poter comodamente modificare le dichiarazioni dello spazio dei nomi oppure aggiungerne altre...
Pag. 21/23
Analizziamo ora in dettaglio cosa possiamo fare graficamente.
Cliccando sulla parte relativa al servizio possiamo aggiungere una porta configurando binding e protocollo...
Oppure creare un nuovo binding o impostare quello esistente :
Possiamo aggiungere una nuova operazione (tasto destro del mouse sulla riga di operazione
“InsertSegnalazioneAutomatica” nel nostro specifico esempio).
Oppure se selezioniamo la riga relativa al messaggio Input oppure di Output possiamo aggiungere una parte,
un malfunzionamento, Impostare il tipo, impostare elemento e naturalmente aggiungere un'operazione.
Lo strumento grafico di editing è molto potente perchè permette di modificare al volo qualsiasi parametro e
funzionalità del web service senza ricaricare uno specifico file wsdl.
Pag. 22/23
Mentre se volessimo visualizzare i dettagli dell'operazione (messaggio) di Input, basta semplicemente
posizionare il cursore del mouse (senza cliccare) sulla freccia blu rivolta a destra per visualizzare i dettagli
come da figura seguente :
Se vogliamo modificare o aggiungere qualche elemento basta cliccare una volta sulla freccia blu per entrare
nell'editor grafico. Nell'ambiente di editing grafico possiamo aggiungere altri valori come ad esempio
riferimenti, attributi, etc. cliccando col tasto destro del mouse sul campo “padre”. Vedi figura seguente.
To be continued...
Pag. 23/23