2009-01-12 8 views
5

Recentemente ho creato un server di gioco a turni in grado di accettare 10 s di migliaia di connessioni client simultanee (per farla breve - epoll su Linux). La comunicazione si basa su un protocollo semplice, personalizzato e basato sulla linea. Questo server consente ai client di connettersi, cercare altri giocatori nelle partite di gioco, giocare a tali giochi (inviare mosse, messaggi di chat, ecc.) E ricevere una notifica quando il gioco è terminato.Cosa hai usato per testare (funzionale/carico/stress) il tuo servizio di rete con il suo protocollo personalizzato?

Quello che sto cercando di fare ora è testare il server simulando le connessioni client. Spero di supportare 10s di migliaia di connessioni simultanee, quindi questo test è molto importante per me. Cosa userete per i vostri test?

Alcune cose che sto ricercando ora sono: pexpect (python expect lib per il test funzionale) e tsung per il test di carico.

Mi piacerebbe essere in grado di testare solo dal mio portatile poiché non ho un cluster di macchine client da cui connettersi. Forse avrei bisogno di usare l'aliasing IP o alcuni-such per generare centinaia di migliaia di socket in uscita (il limite è 65K per interfaccia AFAIK).

In ogni caso, mi sembra di aver bisogno di qualcosa di abbastanza personalizzato ma ho pensato di chiedere prima di intraprendere questa strada.

Grazie!

risposta

1

Ho deciso che era meglio "roll mio" per iniziare.

1

Ho utilizzato JMeter con i componenti di campionamento e asserzione personalizzati prima di eseguire il test di regressione/carico automatico per un'applicazione bancaria con un protocollo personalizzato (API basata su RMI Java).

Non è esattamente leggero, e finirai per fare un sacco di codice aggiuntivo nei componenti di JMeter per supportare il tuo protocollo personalizzato. Suppongo che in questo caso dovresti codificare il tuo client basato su socket Java.

Ma ti dà molta flessibilità nel definire la logica per testare i componenti, così puoi fare quello che vuoi dentro. È anche scalabile e consente di lanciare molte connessioni simultanee nel sistema in prova.

0

Usiamo HP LoadRunner è il prodotto di test di carico all'avanguardia. (Ma anche costoso). Può simulare migliaia di richieste al server e fornisce metriche sul tempo di risposta ecc.

+0

$$$ Come è? Anche il loro test delle penne sembra buono – ccook