Scimmia di interfaccia utente/applicazioni

La scimmia è un programma che viene eseguito emulatore o dispositivo e genera un modello pseudo-casuale stream di eventi dell'utente come clic, tocchi o gesti, nonché una serie di impostazioni a livello di sistema eventi. Puoi usare l'applicazione Monkey per sottoporre a stress test le applicazioni che stai sviluppando, in modo casuale ma ripetibile.

Panoramica

Monkey è uno strumento a riga di comando che puoi eseguire su qualsiasi emulatore in un'istanza o su un dispositivo. Invia uno stream pseudo-casuale di eventi utente nel sistema, che agisce come test di stress sul software applicativo che stai in fase di sviluppo.

La scimmia include una serie di opzioni, che si suddividono in quattro principali categorie:

  • Opzioni di configurazione di base, come l'impostazione del numero di eventi da tentare.
  • Vincoli operativi, ad esempio la limitazione del test a un singolo pacchetto.
  • Tipi e frequenze degli eventi.
  • Opzioni di debug.

Durante l'esecuzione, Monkey genera eventi e li invia al sistema. Inoltre, guarda il sistema sottoposto a test e cerca tre condizioni, che tratta in modo particolare:

  • Se hai limitato l'esecuzione della Monkey in uno o più pacchetti specifici, controlla i tentativi di navigazione verso gli altri pacchetti e li blocca.
  • Se l'applicazione si arresta in modo anomalo o riceve un tipo di eccezione non gestita, verrà interrotta e verrà segnalato l'errore.
  • Se l'applicazione genera un errore L'applicazione non risponde, il file verrà interrotta e verrà segnalato l'errore.

A seconda del livello di dettaglio selezionato, visualizzerai anche dei report sullo stato di avanzamento. della scimmia e gli eventi che vengono generati.

Uso base della scimmia

Puoi avviare Monkey utilizzando una riga di comando sul tuo computer di sviluppo o da uno script. Poiché il Monkey viene eseguito nell'ambiente dell'emulatore/del dispositivo, è necessario avviarlo da una shell in dell'ambiente. Puoi farlo aggiungendo adb shell a ogni comando, o entrando nella shell e inserendo direttamente i comandi Monkey.

La sintassi di base è:

$ adb shell monkey [options] <event-count>

Se non è specificata nessuna opzione, la Scimmia si avvia in modalità silenziosa (non dettagliata) e invia su tutti i pacchetti installati nella destinazione. Ecco una riga di comando più tipica, che avvia l'applicazione e invia 500 eventi pseudo-casuali all'applicazione:

$ adb shell monkey -p your.package.name -v 500

Riferimento per le opzioni dei comandi

La tabella seguente elenca tutte le opzioni che puoi includere nella riga di comando di Monkey.

Categoria Opzione Descrizione
Generali --help Stampa una semplice guida all'uso.
-v Ciascun valore -v nella riga di comando incrementerà il livello di dettaglio. Il livello 0 (predefinito) fornisce poche informazioni oltre alla notifica di avvio, al completamento del test e nei risultati finali. Il livello 1 fornisce ulteriori dettagli sul test durante l'esecuzione, ad esempio i singoli eventi inviati a le tue attività. Il livello 2 fornisce informazioni di configurazione più dettagliate, ad esempio le attività selezionate o non selezionate test.
Eventi -s <seed> Valore seed per il generatore di numeri pseudo-casuali. Se esegui nuovamente la Scimmia con lo stesso seme verrà generata la stessa sequenza di eventi.
--throttle <milliseconds> Inserisce un ritardo fisso tra gli eventi. Puoi utilizzare questa opzione per rallentare la scimmia. Se non specificato, non esiste alcun ritardo e gli eventi vengono generati il più rapidamente possibile.
--pct-touch <percent> Consente di regolare la percentuale di eventi touch. Gli eventi tocco sono eventi down-up in un unico punto sullo schermo.
--pct-motion <percent> Regola la percentuale di eventi di movimento. Gli eventi di movimento sono costituiti da un evento "in basso" sullo schermo, una serie di movimenti e un evento verso l'alto).
--pct-trackball <percent> Regola la percentuale di eventi trackball. Gli eventi trackball consistono in uno o più movimenti casuali, a volte seguiti da un clic.
--pct-nav <percent> Modifica la percentuale di livello "di base" eventi di navigazione. Gli eventi di navigazione sono costituiti da su/giù/sinistra/destra, come input da un dispositivo di input direzionale.
--pct-majornav <percent> Regola la percentuale di "maggiore" eventi di navigazione. Si tratta di eventi di navigazione che in genere causano azioni all'interno dell'interfaccia utente, come il pulsante centrale di un tastierino a 5 direzioni, il tasto Indietro o il tasto Menu).
--pct-syskeys <percent> Regola la percentuale di "system" di eventi chiave. (Si tratta di tasti generalmente riservati all'utilizzo da parte del sistema, come Home, Indietro, Avvia chiamata, Termina chiamata o controlli del volume.)
--pct-appswitch <percent> Regola la percentuale di avvii delle attività. A intervalli casuali, la scimmia emetterà una chiamata startActivity(), per massimizzare di tutte le attività all'interno del pacchetto.
--pct-anyevent <percent> Regola la percentuale di altri tipi di eventi. Si tratta di un evento polivalente per tutti gli altri tipi di eventi, come la pressione dei tasti, altri pulsanti sul dispositivo e così via.
Vincoli -p <allowed-package-name> Se specifichi uno o più pacchetti in questo modo, Monkey consentirà al sistema solo di per visitare le attività all'interno dei pacchetti. Se la tua applicazione richiede l'accesso ad attività in ad altri pacchetti (ad es. per selezionare un contatto) dovrai specificare anche quei pacchetti. Se non specifichi nessun pacchetto, Monkey consente al sistema di avviare le attività. in tutti i pacchetti. Per specificare più pacchetti, utilizza l'opzione -p più volte, uno -p per ogni pacchetto.
-c <main-category> Se specifichi una o più categorie in questo modo, la scimmia consentirà solo alla porzione sistema per visitare le attività elencate con una delle categorie specificate. Se non specifichi alcuna categoria, la scimmia selezionerà le attività elencate con la categoria Intent.CATEGORY_LAUNCHER o Intent.CATEGORY_MONKEY. Per specificare più categorie, utilizza -c più volte: una sola opzione -c per categoria.
Debug… --dbg-no-events Se specificato, l'applicazione scimmia eseguirà l'avvio iniziale in un'attività di test, ma non genererà altri eventi. Per ottenere risultati ottimali, combina con -v, uno o più vincoli relativi ai pacchetti e una limitazione diversa da zero per mantenere in esecuzione per almeno 30 secondi. Questo fornisce un ambiente in cui puoi monitorare per le transizioni richiamate dalla tua applicazione.
--hprof Se impostata, questa opzione genererà report di profilazione immediatamente prima e dopo la scimmia una sequenza di eventi. Ciò genererà file di grandi dimensioni (~5 Mb) in dati/varie, quindi fai attenzione. Per informazioni sull'analisi dei report di profilazione, consulta Creare un profilo dell'app del rendimento.
--ignore-crashes Normalmente, il comando Monkey si arresta quando l'applicazione si arresta in modo anomalo o si verifica un qualsiasi tipo di eccezione non gestita. Se specifichi questa opzione, la scimmia continuerà a inviare eventi a al sistema fino al completamento del conteggio.
--ignore-timeouts Normalmente, il Monkey si arresta quando l'applicazione riscontra un tipo di errore di timeout, come come "L'applicazione non risponde" . Se specifichi questa opzione, la scimmia continuerà e inviare eventi al sistema fino al completamento del conteggio.
--ignore-security-exceptions Normalmente, il criminale si ferma quando si verificano errori di qualsiasi tipo di autorizzazione nell'applicazione. ad esempio se tenta di avviare un'attività che richiede determinate autorizzazioni. Se specifichi questa opzione, la scimmia continuerà a inviare eventi al sistema fino a quando il conteggio completata.
--kill-process-after-error Solitamente, quando il comando Monkey si arresta a causa di un errore, l'applicazione non riuscita verrà lasciata in esecuzione. Quando questa opzione è impostata, segnalerà al sistema di interrompere la procedura in cui l'errore si è verificato un errore. Tieni presente che, in caso di completamento normale (riuscito), i processi avviati non vengono interrotti e il dispositivo viene lasciato nell'ultimo stato dopo l'evento finale.
--monitor-native-crashes Monitora e segnala gli arresti anomali che si verificano nel codice nativo del sistema Android. Se viene impostato --kill-process-after-error, il sistema viene arrestato.
--wait-dbg Arresta l'esecuzione della Monkey finché non vi è associato un debugger.