Utilizzo di Test Studio

In questo articolo di avvio rapido verrà descritto come creare test per un'app canvas denominata Kudos. Puoi anche esplorare e approfondire i concetti relativi ai test e applicarli scrivendo test personalizzati per le tue app canvas. L'app Kudos di esempio fa parte di una suite di app per il coinvolgimento dei dipendenti disponibili per il download da Starter kit esperienza dipendenti.

Guarda questo video per imparare a usare Test Studio:

Aprire Test Studio

  1. Accedi a Power Apps.

  2. Crea una nuova app o modifica un'app esistente.

  3. Salva l'app in Power Apps per aprire Test Studio.

    Nota

    Devi salvare un'app prima di poter scrivere i test per l'app.

  4. Seleziona Strumenti avanzati nel riquadro di spostamento a sinistra.

  5. Seleziona Apre i test per aprire Test Studio per questa applicazione. Test Studio viene aperto in una nuova scheda del browser.

    Aprire Test Studio.

Nota

I test sono pubblicati e archiviati nel pacchetto dell'app. L'esportazione e l'importazione di un pacchetto di app canvas in un altro ambiente include anche tutte le definizioni di test come suite di test e test case creati.

Creare una suite di test

Per impostazione predefinita vengono creati automaticamente una suite di test e un test case in Test Studio. Le suite di test vengono usate per organizzare i test case. Un'app può contenere una o più suite di test. Puoi usare la suite di test e il test case predefiniti per iniziare a scrivere immediatamente i test o creare una nuova suite di test.

  1. Seleziona Nuova suite.

  2. Aggiorna il nome e la descrizione della suite di test selezionando i campi nella griglia principale.

    Nuova suite di test.

Creare un test case

A seconda di come si vogliono organizzare o raggruppare i test, puoi creare più test case in una suite di test. Ogni test case può testare una funzionalità specifica o un subset di funzionalità nell'app.

  1. Seleziona una suite di test.
  2. Seleziona Nuovo caso nel menu in alto per creare un nuovo caso.
  3. Aggiorna il nome e la descrizione del test case selezionando i campi nella griglia principale.

Nuovo test case.

Registrare un test case

Un test case è costituito da passi del test che contengono azioni. Le azioni di test vengono scritte usando espressioni di Power Apps che eseguono un'attività. Puoi usare il registratore per generare automaticamente i passi del test durante l'interazione con l'app. Dopo aver registrato, puoi aggiornare il test case, aggiungere nuovi passi, eliminare passi e scrivere asserzioni di test per convalidare il risultato del test.

Nota

Solo un'app pubblicata può essere eseguita in modalità registrazione. Pubblica eventuali modifiche recenti apportate all'app prima di iniziare a registrare un test case. Se si esegue la registrazione senza pubblicare eventuali modifiche recenti, verrà eseguita in modalità registrazione l'ultima versione pubblicata dell'app.

  1. Seleziona Registra dal menu in alto. L'app pubblicata viene aperta in modalità registrazione in una nuova scheda del browser.

    Importante

    La registrazione con un test case esistente sostituisce eventuali passi di test esistenti già presenti.

    Registrare i test.

  2. Interagisci con l'app. Le azioni vengono registrate nel riquadro sinistro.

  3. Al termine dell'interazione seleziona Fine. Facoltativamente, puoi selezionare Annulla per tornare a Test Studio senza che vengano registrate le interazioni.

    Salvare la registrazione.

  4. Visualizza i passi del test e le espressioni generate automaticamente in Test Studio.

  5. Modificare il testo della descrizione del passo nella griglia principale, se necessario. Puoi anche aggiornare le azioni dei passi del test selezionando la formula nella griglia principale.

    Aggiornare il test case.

Aggiungere passi e asserzioni del test

Ogni test case deve avere un risultato previsto. Nell'esempio Kudos uno dei risultati previsti dell'invio di un kudo è la creazione di un nuovo record nel database di Microsoft Dataverse (Dataverse). A questo punto, si aggiornerà il test case e si aggiungeranno altri passaggi per verificare che il record sia stato creato correttamente.

Per verificare la corretta creazione del record, sono necessari i passaggi seguenti:

  • Inizializza una variabile per il numero di record kudo nel database all'inizio del test case.
  • Inizializza una variabile per il numero di record kudo nel database alla fine del test case.
  • Scrivi un'espressione di asserzione di test per assicurarti che il numero venga incrementato di uno. Se il numero non aumenta di uno, l'asserzione di test ha esito negativo e il test case ha esito negativo.

Per aggiungere passi e asserzioni di test nell'app Kudos:

  1. Seleziona il passaggio 1 o il passaggio sopra il quale si vuole inserire un nuovo passaggio.

  2. Seleziona Inserisci passaggio sopra dal menu in alto oppure selezionando l'opzione dalla riga attiva. Viene creato un passaggio vuoto.

    Inserire un passaggio.

    Nota

    Quando selezioni Inserisci passaggio sopra, viene aggiunto un nuovo passaggio vuoto sopra il passaggio corrente. Puoi anche usare le azioni Assert, SetProperty, Select o Trace. In questo modo viene aggiunto il passo con la relativa formula di azione che puoi modificare.

  3. Aggiorna la descrizione del passo. Ad esempio, "Conteggio Kudo nel database".

  4. Immetti un'espressione o una formula nell'input dell'azione per conteggiare i record nel database prima di eseguire il test.

    Puoi usare qualsiasi espressione supportata. È anche possibile eseguire query sugli eventuali flussi di esecuzione, origini dati, raccolte o variabili contenuti nell'app, nonché creare nuove variabili o raccolte globali da usare nei test.

    Set(kudosBeforeTest, CountRows(Filter(Kudos, Receiver.Email = "someone@example.com")))```
    
    
  5. Select Step 2 or the step above which you want to insert a new step.

  6. Select Insert a step above from the top menu or by selecting the option from the active row. This action creates an empty step.

  7. Enter an expression or formula in the action input to Trace and write the kudosBeforeTest value to test the results record.

    Trace("kudosBeforeTest : " & kudosBeforeTest);
    

    Kudo prima del test.

  8. Passa alla parte inferiore del test case e inserisci un nuovo passaggio per conteggiare i record nel database dopo il completamento del test.

    Set(kudosAfterTest, CountRows(Filter(Kudos, Receiver.Email = "someone@example.com")))```
    
    
  9. Add a final step to validate that the record count in the database has increased by a count of 1, and enter the following assertion action to verify:

    Assert(kudosAfterTest = kudosBeforeTest + 1, "Kudos count incorrect. Expected : " & kudosBeforeTest + 1  & " Actual :" & kudosAfterTest)
    

    Kudo dopo l'asserzione di test.

  10. Salva il test case dal menu in alto a destra in Test Studio.

Riprodurre il test

Puoi riprodurre il test registrato per convalidare la funzionalità dell'app. Puoi riprodurre tutti i test all'interno di una singola suite di test o un singolo test case.

Prima di riprodurre la registrazione con le modifiche recenti, devi pubblicare l'app:

Riproduzione senza pubblicazione.

Importante

Se salti la pubblicazione, la riproduzione della registrazione non conterrà le modifiche apportate ai test recenti. Per l'app verrà riprodotto l'ultimo test case o suite di test pubblicato.

  1. Seleziona Pubblica per salvare e pubblicare automaticamente il test.

    Pubblicare modifiche.

  2. Seleziona una suite di test o un singolo test case.

  3. Seleziona Riproduci. L'app pubblicata viene aperta in modalità di riproduzione e puoi visualizzare la riproduzione automatica dei passaggi del test. Un segno di spunta verde indica l'esecuzione corretta di un passaggio del test. Se un passaggio ha esito negativo, viene visualizzato un indicatore di errore rosso insieme a un messaggio di errore.

    Modalità di riproduzione.

  4. Seleziona Fine per tornare a Test Studio.

Asserzione non riuscita

In questa sezione modifichi l'asserzione di test per verificare l'esperienza di test non superato:

  1. Modifica il passaggio dell'asserzione selezionando la casella dell'espressione.

  2. Sostituisci + 1 con + 2 nell'azione di test. Questo aggiornamento significa che il test prevede la creazione di 2 record, ovvero un risultato non corretto. Se il test riesce, nel database deve essere creato un solo record.

    Assert(kudosAfterTest = kudosBeforeTest + 2, "Kudos count incorrect. Expected : " & kudosBeforeTest + 2  & " Actual :" & kudosAfterTest)
    

    Aggiornamento del conteggio delle asserzioni.

  3. Selezionare Pubblica.

  4. Seleziona Riproduci.

  5. Visualizza la riproduzione del test. Il passaggio finale ha ora esito negativo e vengono visualizzati un errore e il messaggio specificato nel passaggio dell'asserzione.

    Errore di riproduzione.

Riproduzione di test in un browser

Puoi copiare un collegamento per riprodurre un test in un browser separato all'esterno di Test Studio. Ciò consente di integrare i test in una pipeline di compilazione e rilascio continua come Azure DevOps.

Il collegamento della riproduzione per il test selezionato è permanente. Non cambia per la suite di test o il test case. Puoi aggiornare i test senza dover modificare i processi di compilazione e rilascio.

Per riprodurre i test nel browser:

  1. Seleziona una suite di test o un test case nel riquadro di destra.

  2. Seleziona Copia collegamento alla riproduzione.

    Copia collegamento alla riproduzione.

  3. Viene richiesto di pubblicare i test in caso di modifiche non pubblicate.

    Pubblicare prima di copiare il collegamento.

  4. Puoi scegliere di saltare il processo di pubblicazione e copiare il collegamento di riproduzione. Le nuove modifiche del test non vengono riprodotte se si salta questo passaggio.

    Collegamento alla riproduzione copiato.

  5. Apri un browser e incollare l'URL nella barra degli indirizzi per riprodurre il test.

  6. Visualizza la riproduzione del test.

Configurare i test

La proprietà OnTestCaseStart di una suite di test può essere utilizzata per configurare il test. L'espressione immessa per questa proprietà viene attivata per ogni test case in una suite prima dell'esecuzione del caso. OnTestCaseStart ti consente di evitare di scrivere gli stessi passi di test all'inizio di ogni caso. Puoi personalizzare questa proprietà per eseguire attività di configurazione comuni a tutti i casi nella suite come:

  • Avvio dell'esecuzione del test sempre dalla prima schermata.
  • Inizializzazione di raccolte o variabili comuni.
  • Recupero di dati di test da un'origine dati per il test di esecuzione corrente

Il record TestCaseInfo contiene dettagli per il test corrente in esecuzione. Contiene le seguenti proprietà:

  • TestCaseName - nome del test case.
  • TestCaseDescription - la descrizione del test case.
  • TestCaseId - ID del test case.
  • TestSuiteName - nome della suite di test a cui appartiene il test case.
  • TestCaseDescription - la descrizione della suite di test.
  • TestSuiteId - ID della suite di test a cui appartiene il test case.

Nell'esempio seguente, personalizzerai la proprietà OnTestCaseStart di modo che ogni test case inizi dalla prima schermata dell'app. Recupererai anche i dati di test da un origine dati a cui puoi fare riferimento nei passaggi per il test case.

  1. Seleziona Test nel riquadro a sinistra oppure seleziona Visualizza nell'intestazione della suite.

    Testare o visualizzare la proprietà impostata.

  2. Seleziona l'azione OnTestCaseStart.

  3. Immetti un'espressione per passare alla prima schermata e recuperare i dati di test per il test.

    //Start every cases on the first screen in the Kudos app
    Navigate('Dashboard Screen');
    
    //Initialize my test data for the current case. 
    Set(currentTestData, LookUp(KudosTestData, TestCase = TestCaseInfo.TestCaseName));
    
    //Set kudosBeforeTest to 0
    Set(kudosBeforeTest, 0)
    

    Esempio di OnTestCaseStart.

Elaborazione dei risultati del test

Il pannello di test visibile durante la riproduzione dei test in Test Studio non è visibile quando si usa un browser. A causa di questo comportamento, non è possibile determinare il passo del test specifico eseguito o se un test ha esito positivo o negativo.

Per determinare i risultati dei test all'esterno di Test Studio, sono disponibili due proprietà denominate OnTestCaseComplete e OnTestSuiteComplete nell'oggetto test che puoi usare per elaborare i risultati dei test. Quando si integrano i test in una pipeline di compilazione e rilascio continui come Azure DevOps, puoi usare queste proprietà per determinare se è necessario procedere con la distribuzione dell'app.

L'espressione immessa per queste proprietà viene attivata al completamento di ogni caso o suite. Puoi personalizzare queste proprietà per elaborare e inviare i risultati dei test a diverse origini dati o servizi, ad esempio:

  • SQL Server.
  • Dataverse.
  • Power Automate.
  • Invia e-mail tramite Office 365.

Queste impostazioni si applicano a ogni suite di test o test case nell'app. Al termine di ogni suite di test o test case, i risultati del test e gli eventuali messaggi di traccia contenuti nei test sono disponibili nei record TestCaseResult e TestSuiteResult.

Il record TestCaseResult contiene le proprietà seguenti:

  • TestCaseName - nome del test case.
  • TestCaseDescription - la descrizione del test case.
  • TestCaseId - ID del test case.
  • TestSuiteName - nome della suite di test a cui appartiene il test case.
  • TestCaseDescription - la descrizione della suite di test.
  • TestSuiteId - ID della suite di test a cui appartiene il test case.
  • StartTime - ora di inizio esecuzione del test.
  • EndTime - ora di fine esecuzione del test.
  • Traces - risultato di tutte le asserzioni di test ed eventuali messaggi dalla funzione Trace.
  • Success - indica se il test case è stato completato correttamente.
  • TestFailureMessage - in caso di esito negativo del caso, il messaggio di errore.

Il record TestSuiteResult contiene le proprietà seguenti:

  • TestSuiteName - nome della suite di test.
  • TestCaseDescription - la descrizione della suite di test.
  • TestSuiteId - ID della suite di test.
  • StartTime - ora di inizio esecuzione della suite di test.
  • EndTime - ora di fine esecuzione della suite di test.
  • TestsPassed - numero di test case completati correttamente nella suite.
  • TestsFailed - numero di test case non riusciti nella suite.

In questo articolo di avvio rapido verranno create due tabelle nel database Dataverse per archiviare i risultati del test personalizzando le proprietà OnTestCaseComplete e OnTestSuiteComplete:

  1. Seleziona Test nel riquadro a sinistra oppure seleziona Visualizza nell'intestazione della suite.

    Testare o visualizzare la proprietà impostata.

  2. Seleziona l'azione OnTestCaseComplete.

  3. Immetti un'espressione per elaborare i risultati del test. Nell'esempio seguente i risultati di ogni test case vengono salvati nella tabella AppTestResults personalizzata in Dataverse. I risultati del test possono essere facoltativamente archiviati in SQL, SharePoint o in qualsiasi altra origine dati. Potrebbe essere necessario impostare o aumentare il campo Trace nell'origine dati in base alle esigenze.

    Nota

    I seguenti esempi si connettono a Microsoft Dataverse. Puoi creare un'app semplice o creare un'app da zero usando Dataverse. Per altri dettagli sulla modifica dei record di un'origine dati usata negli esempi seguenti, fai riferimento alla funzione Patch.

    //Save to Dataverse
    Patch(AppTestResults
    , Defaults(AppTestResults)
    , {
             TestPass: TestCaseResult.TestCaseName & ":" & Text(Now())
             ,TestSuiteId: TestCaseResult.TestSuiteId
             ,TestSuiteName: TestCaseResult.TestSuiteName
             ,TestCaseId: TestCaseResult.TestCaseId
             ,TestCaseName: TestCaseResult.TestCaseName
             ,StartTime: TestCaseResult.StartTime
             ,EndTime: TestCaseResult.EndTime
             ,TestSuccess: TestCaseResult.Success
             ,TestTraces: JSON(TestCaseResult.Traces)
             ,TestFailureMessage: TestCaseResult.TestFailureMessage
    }
    );
    

    Esempio di OnTestCaseComplete.

  4. Seleziona l'azione OnTestSuiteComplete.

  5. Immetti un'espressione per elaborare i risultati del test. Nell'esempio seguente i risultati di ogni test suite vengono salvati nella tabella AppTestSuiteResults personalizzata in Dataverse.

    //Save to Dataverse
    Patch(AppTestSuiteResults
        , Defaults(AppTestSuiteResults)
        , {
             TestSuiteId: TestSuiteResult.TestSuiteId
             ,TestSuiteName: TestSuiteResult.TestSuiteName
             ,StartTime: TestSuiteResult.StartTime
             ,EndTime: TestSuiteResult.EndTime
             ,TestPassCount: TestSuiteResult.TestsPassed
             ,TestFailCount: TestSuiteResult.TestsFailed
        }
    );
    

    Esempio di OnTestSuiteComplete.

Altri esempi di espressioni che puoi usare in queste proprietà sono:

  • Invia i risultati a un flusso in Power Automate.

    MyTestResultsFlow.Run(JSON(TestCaseResult))
    
  • Invia i risultati tramite posta elettronica.

    Office365.SendMailV2("someone@example.com", "Test case results", JSON(TestCaseResult, JSONFormat.IndentFour))
    
  • Ricevi una notifica dell'app per il risultato del test.

    Ad esempio, ricevi una notifica al termine del test durante la riproduzione del test in un browser, all'esterno di Test Studio.

    Notify(TestCaseResult.TestCaseName & " : "
            & If( TestCaseResult.Success
                , " Passed"
                , TestCaseResult.TestFailureMessage)
            ,If(  TestCaseResult.Success
                , NotificationType.Success
                , NotificationType.Error)
    )
    

Funzioni di test

Oltre alle funzioni disponibili in Power Apps, di seguito sono riportate le funzioni comuni che utilizzerai in genere durante la creazione di test:

Passaggi successivi

Nota

Puoi indicarci le tue preferenze di lingua per la documentazione? Partecipa a un breve sondaggio. (il sondaggio è in inglese)

Il sondaggio richiederà circa sette minuti. Non viene raccolto alcun dato personale (Informativa sulla privacy).