--- layout: post status: publish published: true title: 'Tsung: test di carico (semi-)automatizzati' author: display_name: Siv login: admin email: alessandro.sivieri@gmail.com url: https://launchpad.net/~scattino author_login: admin author_email: alessandro.sivieri@gmail.com author_url: https://launchpad.net/~scattino excerpt: 'C’è un nuovo arrivato nel mio PPA: si tratta di Tsung, uno strumento per eseguire test di carico verso server Web ma non solo; è scritto in Erlang, e ne sfrutta tutte le caratteristiche di distribuzione tra i processi per un’esecuzione rapida ed indolore (per il PC da cui viene lanciato), e può essere configurato [...]' wordpress_id: 609 wordpress_url: http://www.chimera-bellerofonte.eu/?p=1194 date: '2010-12-10 20:14:41 +0000' date_gmt: '2010-12-10 19:14:41 +0000' categories: - PlanetPOuL tags: [] comments: [] ---
C’è un nuovo arrivato nel mio PPA: si tratta di Tsung, uno strumento per eseguire test di carico verso server Web ma non solo; è scritto in Erlang, e ne sfrutta tutte le caratteristiche di distribuzione tra i processi per un’esecuzione rapida ed indolore (per il PC da cui viene lanciato), e può essere configurato per lanciare richieste utilizzando HTTP, WebDAV, Jabber, [My|Postgre]SQL ed LDAP.
La configurazione avviene tramite un file XML, che può essere parzialmente generato tramite una sorta di “registrazione” delle proprie azioni: il programma infatti può installare un proxy tramite cui è in grado di salvare tutte le richieste effettuate in remoto, sia http che https, e successivamente si può partire da questo e personalizzarne solamente la configurazione dei client e la tempistica delle richieste stesse.
Offre inoltre la possibilità di effettuare un parsing della risposta del server, per confrontarla con quanto ci si aspetta di ricevere, o di inserire dinamicamente dei parametri ricavati ad esempio da funzioni sviluppate ad hoc in Erlang.
Le statistiche prodotte vengono ricavate tramite diversi agenti in grado di monitorare la rete: il primo è nativo del linguaggio ma richiede configurazioni particolari di ssh; il secondo è SNMP ed il terzo è Munin: entrambi devono essere presenti lato client, sono installabili facilmente sulle distribuzioni più diffuse, ed io personalmente ho puntato sul secondo dato che la configurazione base del nodo è sufficiente allo scopo (si tratta solamente di modificare l’IP in ingresso, da loopback a quello del PC da cui lanciate i client simulati).
Insomma, dateci un’occhiata: i sorgenti del pacchetto Debian erano già presenti sul sito dell’applicativo, quindi il passo verso la pubblicazione nel PPA è stata piuttosto breve, ed i miei test hanno dato esito positivo; in caso di problemi, fatemi sapere!
Edit: ho appena scoperto che esiste un tool secondario installato con il programma, chiamato tsplot, che è in grado di produrre grafici di confronto, mettendo assieme fonti differenti e permettendo così di individuare facilmente variazioni a fronte di diverse configurazioni passate al sistema. Risultati spettacolari…