Test e risoluzione dei problemi dell'app

Completato

Nelle unità precedenti sono stati descritti i colli di bottiglia delle prestazioni e alcuni dei modi per ridurre tali condizioni. In questa unità vengono presentate le tecniche di test. Queste tecniche riuniscono linee guida, tecniche e funzionalità di individuazione applicabili sia ai test delle prestazioni che al debug in generale.

Uso del controllo Timer per ottenere le metriche

Per quanto riguarda l'uso di connessioni dati per il recupero o il caricamento di dati, è utile avere a disposizione metriche dettagliate. In Power Apps è possibile usare una variabile e un controllo Timer per acquisire dati sulla durata dell'esecuzione. Lo scenario seguente mostra come eseguire questa operazione con i seguenti controlli:

  • Pulsante

  • Timer

  • Etichetta di testo

Presumiamo di disporre di un'origine dati denominata "Workout tracker", il controllo Timer è denominato Timer1 e il controllo Pulsante ha una proprietà OnSelect impostata nel modo seguente:

Collect(colWorkoutTracker, Filter('Workout tracker', Status = "Active"))
  1. Per impostarla, occorre per prima cosa modificare la formula OnSelect del controllo Pulsante in:

    Reset(Timer1);
    UpdateContext({StartTimer: true});
    Refresh('Workout tracker');
    ClearCollect(colWorkoutTracker, Filter('Workout tracker', Status = "Active"));
    UpdateContext({StartTimer: false})
    

    Questa formula inizia reimpostando il timer. Quindi aggiorna una variabile di contesto che usiamo per avviare/arrestare il timer su "true". Quindi crea la raccolta e reimposta la variabile di contesto su "false".

  2. Successivamente è necessario aggiornare una proprietà sul controllo Timer; impostare la proprietà Start come segue: StartTimer.

  3. Inserire ora un controllo Etichetta di testo per visualizzare il tempo di esecuzione.

  4. Per la proprietà Text del controllo Etichetta, impostare la formula come segue: Timer1.Value

  5. A questo punto visualizzare l'app in anteprima e selezionare il controllo Pulsante.

Con l'app in modalità di anteprima, selezionando il pulsante viene visualizzato il tempo impiegato per la creazione della raccolta in millisecondi.

Questa tecnica è efficace quando si vuole conoscere la durata esatta di una query specifica. È possibile registrare questi dati in una raccolta diversa e quindi calcolare la media dei valori per determinare il tempo richiesto. È anche possibile applicare questo concetto quando si inviano i dati. Ricordarsi di eseguire i test non solo dal computer locale, ma da tutti gli scenari per gli ambienti degli utenti.

Test dei dispositivi in cui gli utenti usano l'app

Si tratta più di consigli che di tecnica. Per la maggior parte dei creatori di app, la posizione migliore in cui eseguire l'app è il PC locale usato per svilupparla e compilarla. I test da tale computer offrono in genere risultati ottimali, ma potrebbero non corrispondere all'esperienza dell'utente. Troppo spesso ci si dimentica di testare il modo in cui l'utente esegue l'app. Ad esempio, se si sviluppa un'app per dispositivi mobili destinata all'esecuzione su una rete cellulare, assicurarsi che i test includano questo scenario. Per la progettazione dell'app è importante tenere conto del fattore di forma più piccolo del dispositivo mobile e della latenza di una connessione Internet variabile. Il metodo di test con timer precedente è utile in questo caso. Confrontare le prestazioni di caricamento o di query dell'app per PC, telefono cellulare su rete Wi-Fi e telefono cellulare su rete dati. Determinare se tutti e tre gli scenari offrono prestazioni soddisfacenti o se è necessario ottimizzare l'app per la rete più lenta.

Uso delle etichette per facilitare i test

Se l'app include una logica più complessa e più variabili dietro le quinte per facilitare tale logica, prendere in considerazione l'uso di controlli etichetta come parte del toolkit per il testing. La semplice aggiunta di un'etichetta sullo schermo per visualizzare il valore della variabile può essere di grande utilità per capire perché l'app esegue o meno un'operazione. È possibile usare questa tecnica durante le fasi di sviluppo e test. Dopo la pubblicazione dell'app è possibile aggiungere altre funzionalità per nascondere e visualizzare questi strumenti di risoluzione dei problemi.

In Power Apps Studio è anche possibile selezionare File e Variabili per visualizzare tutte le variabili e i relativi valori, oltre alle posizioni in cui sono state create e vengono usate nell'app.

Un altro modo per usare etichette durante il processo di sviluppo consiste nell'aggiungere un'etichetta alla schermata iniziale in cui visualizzare manualmente un numero di versione. Power Apps memorizza l'app nella cache per ottimizzare l'esperienza. Quando si esegue ripetutamente la pubblicazione, ad esempio durante la personalizzazione di un modulo di SharePoint, potrebbe risultare difficile determinare la versione del modulo visualizzata perché può essere una versione memorizzata nella cache. L'aggiunta di un'etichetta con la scritta v1 o v2 in un angolo consente di controllare sempre la versione.

App in anteprima e pubblicate

La funzionalità di anteprima di Power Apps Studio offre molte informazioni utili sull'esecuzione dell'app una volta pubblicata. Ma in alcuni casi si potrebbero rilevare alcune incoerenze causate dalla cache o altre operazioni eseguite nel PC locale rispetto al funzionamento dell'app pubblicata. È importante ricordarsi di testare sempre l'app dopo la pubblicazione in modo coerente con le modalità con cui l'utente userà l'app.

Controllo delle attività di rete dell'app

Dopo aver appreso alcune tecniche per eseguire test dall'interno dell'app, è necessario procedere con la verifica delle chiamate di rete e delle prestazioni effettive. A tale scopo è possibile usare la funzione Monitoraggio integrata. Ciò consente di visualizzare le singole chiamate di rete effettuate dall'app e di visualizzarne i dettagli, come la durata di ogni chiamata. Dal punto di vista delle prestazioni, queste informazioni possono essere preziose.

Per accedere a Monitoraggio, è possibile selezionare l'icona Strumenti avanzati dalla barra degli strumenti a sinistra oppure selezionare l'icona Verifica app dalla barra dei comandi. In entrambi i casi viene visualizzato un collegamento ad Apri Monitoraggio.

Una volta selezionato Apri Monitoraggio, si apre una sessione di monitoraggio in una scheda separata del browser con un elenco vuoto di eventi e un messaggio che indica che è appena stata avviata una nuova sessione di monitoraggio.

Monitoraggio tiene traccia e registra le azioni delle app, comprese le prestazioni della rete. È possibile usarlo per vedere quali chiamate all'origine dati vengono effettuate, quanto tempo impiegano e quali informazioni vengono inviate/restituite.

Questi dati possono essere usati, ad esempio, per determinare se un problema di prestazioni inadeguate, in base a quanto misurato dal controllo Timer dell'esempio precedente, è interno all'app oppure dipende dalla rete o dall'origine dati. Mettere l'app in modalità Anteprima e iniziare a usarla come farebbe un utente. Nell'esempio seguente, abbiamo usato il nostro esempio con il pulsante e il controllo Timer per vedere quanto tempo è necessario per ottenere i dati dall'origine e creare la raccolta. Notare che le informazioni restituite forniscono timestamp, categoria, operazione, risultato, informazioni sul risultato, stato, durata (in millisecondi), origine dati e controllo selezionato (dall'app).

Screenshot dei risultati del monitoraggio risultante dalla selezione di un pulsante in un'app.

In questa istanza, la maggior parte del tempo è stata dedicata ad aspettare che l'origine dati filtrasse i dati e rispondesse. Questo indica che non è possibile velocizzare la chiamata modificando l'app. Sarebbe invece necessario concentrarsi sul perfezionamento della query o sulla velocizzazione dell'origine dati.

Monitoraggio fornisce alcune funzionalità interessanti che però verranno trattate solo parzialmente in questo modulo. Cercare un collegamento nell'unità di riepilogo per avere maggiori informazioni. Tutte le tecniche trattate possono aiutare a testare e risolvere i problemi dell'app.