Automazione e monitoraggio metriche di test in ambito IoT con pytest-play
Architetture e testabilità in ambito telematica / IoT, possibili strategie di test ed errori comuni e come massimizzare il valore aggiunto derivante da attività di test attraverso l’uso di metriche.
usando Docker) Opzionale: • server metriche compatibile statsd (locale o in hosting) • Selenium grid o setup browser locale Competenze richieste: • YAML, editing file di testo in formato YAML • CLI, saper lanciare dei comandi da terminale • Conoscenza di base tool e protocolli (HTTP, MQTT/mosquitto) • HTML base
quanto siamo vicini a un timeout error • Non possiamo confrontare le tempistiche correnti con quelle misurate in precedenti misurazioni o situazioni con diverso carico (numero di entità su database e/o utenti contemporanei, numero di entità visualizzate su browser, ecc) • Non possiamo essere rigorosi/obiettivinel rilevare un peggioramento medio («oggi mi sembra lento») • Non riusciamo a rilevare piccoli e continui deterioramenti delle performance oppure un rallentamento consistente di un sistema già abitualmente lento (assuefazionedel tester manuale) Approccio alternativo: measure everything!
di esecuzioni campionate • stats.timers: prefisso per metriche tipo time • chucknorris.demo: prefisso (tipicamente nome progetto, ambiente dev/alpha) • categories_time: nome della metrica (può essere gerarchico browser.nome) • count/mean: aggregazione (es: mean_90, max, max_90, ecc) test visivo!
Possibile risalire a scenari particolari che sistematicamente producono dei picchi • Possibilità di esecuzioni ripetute su stesso report (opzione –count NUM) • Ispezione step by step dei comandi eseguiti • Ispezione degli errori (sequenza comandi eseguiti e full stack trace) storicizzazione!
–count NUM) • Possibilità di esecuzioni in parallelo (opzione –n CONCURRENCY) • Stop alla primo fallimento (opzione -x) • Live debug in caso di errori (--pdb) • Possibilità di eseguire un test in particolare (espressioni) o tutti • Last failed test (--last-failed) • Statistica test più lenti (--durations=NUM) • Passare variabili e configurazioni per ambienti (--variables FILE.yml) • Lanciare test da interfaccia grafica con Jenkins • Integrazione con test management tool • ... Maggiori informazioni su: • https://bit.ly/2YIE6nR Test automation framework thoughts and examples with Python, pytestand Jenkins
il tempo che intercorre tra due comandi record_elapsed_start/stop raggruppando una serie di azioni o attendendo l’avverarsi di una determinata condizione (es: visibilità di un elemento sul browser) Automatic waiters Attende fino al momento in cui l’elemento è disponibile, visibile e realmente pronto per un’interazion e!
+8000 entities. 4 months before Measure real users experience evolution with video recordings too! Stakeholder • Time before alert • Time before critical