Software

Load testing server web utilizzando selenio, uno strumento di test funzionali web browser

Se si guarda al carico del server web tradizionale test strumenti, come ad esempio Load Runner o Jmeter, si noterà un modello di disegno di base di ricreare i grandi volumi di traffico web. Con questi strumenti un programma multi thread apre socket TCP e luoghi (tramite chiamate API) richieste HTTP direttamente quelle prese. In questo modo è possibile simulare il volume richiesto di traffico HTTP senza l'overhead di esecuzione il browser web. In genere circa 500 cosiddetti 'utenti virtuali' possono essere simulati da un singolo Pentium 4 PC con circa 1GB di RAM. Se 'vero browser' dovevano essere eseguite in parallelo sulla stessa apparecchiatura solo circa 6 browser può essere simulato. Per questi motivi l'approccio di ricreare il traffico HTTP nei processi multi-threaded, chiamando le API, è rimasto popolare negli ultimi 15 anni o giù di lì.

Sebbene l'HTTP basato su approccio rimane popolare oggi è emerso un altro approccio alternativo praticabile per simulazione di grandi volumi di traffico web, e questo approccio implica l'esecuzione più browser 'senza testa' in parallelo per ricreare il traffico del browser web necessario per il carico del server web di test.

Il browser 'testa' del termine si riferisce a un browser web completamente funzionale, in termini di API necessarie per comunicare con il server web, ma senza la parte di user interface (GUI). Ci sono un certo numero di browser headless liberamente disponibili (ad esempio HTMLUNIT e PhantomJS) e questi possono tutti essere a livello di programmazione guidati per interagire con il server web nello stesso modo che sarebbe un vero e proprio browser. Mentre questi browser non hanno una GUI sono estremamente utili per l'invio di richieste a un Server Web al fine di analizzare i risultati per la cattura dello schermo, rete di monitoraggio o automazione generale pagina.

Selenio WebDriver è uno strumento automatico di test 'funzionale' che può simulare azioni dell'utente su un browser web come Firefox o Internet Explorer. Selenio può anche simulare azioni contro HTMLUNIT. Data la risorsa impronta (CPU e memoria) di HTMLUNIT è molto meno rispetto a un tradizionale browser più istanze (eseguite come thread) di selenio basato su browser HTMLUNIT possono essere eseguite su un singolo computer per indirizzare il traffico web per un server web di test di carico. In genere circa 25 headless browser può essere guidato da un Pentium 4 PC con 1GB di ram. In questo modo circa 500 'utenti virtuali' possono essere simulati con 25 PC (o macchine virtuali) rendendo questa tecnica del traffico web server utilizzabile per il carico di molti progetti di test.

Per poter eseguire più istanze di selenio WebDriver utilizzando la tecnica senza testa un multi filettata framework Java è necessario. Per questo scopo sarà sufficiente o Jmeter o The Grinder open source load testing framework.

Anche se non adatto per la simulazione estremamente grandi volumi di traffico web l'approccio browser headless dovrebbero essere considerati quando altrimenti sarebbe difficile da ricreare il traffico necessario utilizzando i driver HTTP. Situazioni in cui il carico di browser headless approccio di guida è vantaggioso comprende pagine web che utilizzano url ribattitura per la gestione della sessione o dove è richiesta la simulazione accurata di traffico. L'approccio di browser headless ricreerà il traffico web che è più vicino al traffico vero e proprio browser, rispetto a quello generato dai tradizionali quadri driver HTTP.