In che modo il test delle prestazioni è integrato nel ciclo di vita del prodotto?

4

Esegui test delle prestazioni in modo ripetibile e automatico? Lo fai scattare come parte delle build CI? quali strumenti usi? Come vedi i cambiamenti nelle tendenze?

Sto cercando istruzioni e descrizione delle impostazioni di lavoro per gli approcci di test delle prestazioni automatizzati end-to-end.

    
posta Yuriy Zubarev 18.03.2011 - 01:18
fonte

2 risposte

3

ripetibile - sì. Automatizzato - non completamente. Abbiamo automatizzato la generazione di dati di test per i nostri test delle prestazioni e il driver di test. I test stessi vengono attivati manualmente ogni volta che è necessario. Ad esempio versioni precedenti o modifiche alla piattaforma (in questo momento stiamo migrando il nostro progetto precedente da Java 5 a 6 e stiamo per condurre test delle prestazioni per confrontare i risultati di diverse impostazioni JVM). Quindi non fanno parte delle nostre build CI. Ciò sarebbe in effetti tecnicamente impegnativo poiché è necessario rigenerare ogni volta un sacco di dati di test e il processo, anche se automatizzato, richiede molto tempo.

Utilizziamo principalmente strumenti sviluppati internamente per i test, su misura per la nostra app. L'app è un frontend per un server mainframe antico, che è la spina dorsale dell'intera azienda. I dati del test devono essere generati sul mainframe, quindi c'è un sovraccarico di comunicazione. Inoltre, al momento non può essere veramente casuale: utilizziamo una serie di modelli predefiniti combinati con i dati provenienti dai fogli Excel per creare nuovi dati di test. Il test driver invia quindi richieste al nostro server in formato HTTP standard e un formato basato su XML proprietario.

    
risposta data 18.03.2011 - 01:23
fonte
2

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.

    
risposta data 18.03.2011 - 01:38
fonte

Leggi altre domande sui tag