sviluppo-web-qa.it

Strumenti per testare i server HTTP?

Ho dovuto caricare più volte server/applicazioni HTTP di prova e ogni volta sono stato deluso dalla qualità degli strumenti che sono riuscito a trovare.

Quindi, quando carichi il test di un server HTTP, quali strumenti usi? E quali sono le cose che molto probabilmente farò di sbagliato la prossima volta che dovrò farlo?

39
David Wolever

JMeter è gratuito.

Mercury Interactive Load Runner è super bello e super costoso.

24
Chad Grant

Mi sento insolitamente qualificato per rispondere a questa domanda, poiché la mia attuale azienda deve simulare 25.000 connessioni simultanee ai nostri server Web (serviamo annunci online).

Per test di carico a volume estremamente elevato, Httperf è la strada da percorrere. È gratuito e, nella nostra esperienza, può simulare connessioni più simultanee di JMeter o STA sullo stesso hardware.

Modificare:

Nel caso in cui tu sia curioso, simuliamo 3500 richieste al secondo su un Optiplex 330 a basso consumo, ultra-piccolo e con fattore di forma ultra-piccolo. Httperf su richiesta. In confronto, JMeter poteva solo spingere circa 800-900 req/sec su questo hardware.

21
Portman

Se desideri semplicemente caricare un singolo URL alla volta su un server Web, scarica Apache AB. Viene fornito con il server HTTP Apache.

Comando semplice

ab -n 10000 -c 10 http://serverfault.com/questions/2107/tools-for-load-testing-http-servers

eseguirà 10000 richieste con una concorrenza di 10 utenti.

Se vuoi registrare sessioni di navigazione, vai su e accetta la risposta di jmeter. Jmeter è fantastico e può adattarsi a molte macchine di prova in grado di generare un carico enorme.

20

C'è Tsung , uno strumento basato su Erlang.

C'è anche un lungo elenco di strumenti su http://www.softwareqatest.com/qatweb1.html#LOAD

8
Jauder Ho

Per un test rapido puoi usare le sequenze di riccioli e le serie di URL. Supponiamo ad esempio che eseguiremo uno stress test di carico su Google che possiamo eseguire ...

curl -s "http://google.com?[1-1000]"

Questo farà 1000 chiamate a google, ad es.

http://google.com?1  
http://google.com?2  
http://google.com?3 
... 
http://google.com?1000

Questo è discusso più in dettaglio in Come eseguire rapidamente lo stress test di un server Web con arricciatura.

6
Ian Purton

Dovrai impostare diversi test:

  • Test normale, simula gli utenti come si comporteranno. Implementerai il tempo di riflessione (nessuna http furia 1s tra le pagine). Un modo è registrare una sessione Web, in modo da avere un tempo realistico per completare/leggere ogni pagina. Il carico verrà fornito passo dopo passo fino a raggiungere il carico medio corrente in produzione
  • Test di rottura: uguale a prima, ma aggiungi carico fino a quando viene visualizzato il primo errore http 500. L'obiettivo è sapere quanto carico è possibile gestire fino a quando non si romperà
  • Test di lunga durata. Mantieni il primo scenario in esecuzione per 12 ore, per essere sicuro di non avere perdite di memoria o degrado delle prestazioni nel tempo.

Dopo/prima di ogni test, è necessario ripristinare la piattaforma come prima: ripristinare il database, riavviare per pulire memoria e cache.

Implementerai anche un warm-up: avvia gli scenari una volta prima del test reale, quindi vengono compilate le pagine Web e viene stabilita la connessione al database. Altrimenti, la prima chiamata sarà sempre negativa nelle tue statistiche.

Puoi aggiungere complessità, come:

  • utilizzare diversi scenari (visitatori/ospiti, membri), che si esibiranno in modo diverso.
  • Simula diversi accessi alla larghezza di banda
  • Randomizza le parole cercate e pensa al tempo.

Un'ultima cosa importante: DEVI salvare tutti gli scenari completati per poterli rifare esattamente allo stesso modo, in modo da poter confrontare le prestazioni con i test precedenti.

5
Mathieu Chateau

Se stai solo cercando di testare come gestisce più connessioni puoi usare qualcosa come Siege . Non sei ancora sicuro che sia un'ottima misura, ma ti dirà almeno come stai gestendo più connessioni

2
trent

Ho usato openSTA .

Questo utilizza un linguaggio di script relativamente semplice.

È possibile testare facilmente servizi Web/server e scrivere i propri script.

Ti consente di mettere insieme gli script in un test come desideri e configurare il numero di iterazioni, il numero di utenti in ciascuna iterazione, il tempo di accelerazione per introdurre ogni nuovo utente e il ritardo tra ogni iterazione. I test possono anche essere programmati in futuro.

È open source e gratuito.

Produce un numero di rapporti che possono essere salvati in un foglio di calcolo. Quindi utilizziamo una tabella pivot per analizzare e rappresentare graficamente i risultati.

2
nzpcmad

Ho usato LoadRunner prima, ma, è piuttosto costoso, ho anche usato gli strumenti dell'edizione Team Tester di Microsoft che include un sistema che conduce test di carico. Ero abbastanza contento di come funzionava lo strumento e potevi espandere i test usando .net che era una sintassi più semplice da raccogliere rispetto a LoadRunner.

Anche la versione di Load Runner che abbiamo usato non è stata in grado di gestire il nostro AJAX (era nel 2000, quindi sono sicuro che lo strumento sia stato migliorato ormai)

1
JoshBerke

Usiamo WAPT e funziona molto bene. Facile da installare e solo poche centinaia di dollari. LoadRUnner è ridicolmente caro e totalmente fuori portata per tutti tranne che per Forutune 500.

1
rmalayter

Dipende da quanto sia complesso il tuo scenario.

Per simulare correttamente il carico reale degli utenti sul tuo server, dovresti provare a simulare ciò che gli utenti stanno effettivamente facendo. Se i tuoi utenti si limitano a colpire il server con un URL, farebbe uno qualsiasi degli strumenti gratuiti/semplici.

Per i siti Web un po 'più complessi, ti consigliamo di utilizzare uno strumento che ti aiuti con la correlazione dinamica dei valori, la parametrizzazione ecc. Puoi usare Load-Runner e simili, preferisco usare WebLOAD =.

0
Yasei No Umi