Stiamo appena iniziando con il test del carico e delle prestazioni. In questo momento, stiamo eseguendo semplici test: esegui l'operazione X per le iterazioni Y, possibilmente con un certo livello di casualità per gli input o cose che potrebbero accadere durante l'operazione (ad esempio, chiudi la connessione occasionalmente e fai il ripristino del programma). Quindi verifica automaticamente vari fatti interessanti, ad esempio che tutte le operazioni Y sono state completate correttamente in meno di secondi, non sono stati registrati errori, ecc. Si noti che ci sono molte cose da definire prima di poter essere testate. Cosa è "completato"? Cos'è il "successo"? Quanto dovrebbe essere grande Z (il numero di secondi)?
Come ho detto, siamo solo per iniziare; abbiamo fatto il nostro primo test la scorsa settimana, letteralmente (abbiamo iniziato a lavorare sul prodotto un paio di mesi fa). Al momento stiamo configurando l'IC allo stesso tempo e non abbiamo ancora messo insieme test e CI. Non penso che metteremo i test di carico / prestazioni in CI al momento, ma potremmo farlo alla fine per piccole operazioni eseguendole per un certo numero di iterazioni - probabilmente stimato in 5-10 secondi di lavoro - quindi verificando che le operazioni hanno richiesto il tempo previsto e il controllo di qualsiasi altro aspetto del carico o delle prestazioni di cui non si è sicuri.
Attualmente stiamo facendo una corsa notturna che include i nostri test end-to-end (che richiedono da 3 a 4 minuti ciascuno) e i nostri test di carico.
Il nostro sistema è al momento piuttosto semplice. Stiamo creando dispositivi di test delle prestazioni speciali simili ai nostri normali dispositivi, ad eccezione del fatto che eseguono ripetutamente le stesse operazioni, quindi verificano i risultati controllando i timestamp del database, eseguendo il conteggio delle operazioni o esaminando i registri. In seguito, dovremo preoccuparci di testare i siti web, imitare gli utenti, ecc. E stiamo ancora cercando di capire quali strumenti possiamo usare per gestire il problema.