共用方式為


使用 Test Studio

在本快速入門中,您會針對稱為 Kudos 的畫布應用程式建立測試。 您也可以瀏覽和探索測試概念,並應用這些概念來為您自己的畫布應用程式撰寫測試。 範例 Kudos 應用程式是員工參與應用程式套件的一部分,可從 Employee Experience Starter Kit 下載取得。

觀看此影片瞭解如何整合 Test Studio:

開啟 Test Studio

  1. 登入 Power Apps

  2. 建立新的應用程式編輯現有應用程式

  3. 將應用程式儲存至 Power Apps 以開啟 Test Studio。

    注意

    您必須儲存應用程式,才能為應用程式撰寫測試。

  4. 在左側導覽中,選取進階工具

  5. 選取開啟測試為此應用程式開啟 Test Studio。 此動作會在新的瀏覽器索引標籤中開啟 Test Studio。

    開啟 Test Studio。

注意

測試會發佈並儲存在應用程式套件中。 匯出和匯入畫布應用程式套件至另一個環境時,也會包括所有測試定義,例如,您已建立的測試套件和測試案例。

建立測試套件

預設會在 Test Studio 中為您建立測試套件和測試案例。 測試套件可用來組織測試案例。 一個應用程式可以包含一或多個測試套件。 您可以使用預設測試套件和案例,立即開始撰寫您的測試,或建立新的測試套件。

  1. 選取新增套件

  2. 選取主要格線上的欄位,以更新測試套件名稱和描述

    新增測試套件。

建立測試案例

根據您想要的測試組織或測試分組方式,您可以在一個測試套件中建立多個測試案例。 每個案例都可以測試您應用程式中的特定功能或功能子集。

  1. 選取測試套件。
  2. 在頂端功能表中選取新增案例,以建立新的案例。
  3. 選取主要格線上的欄位,以更新測試案例名稱和描述

新增測試案例。

錄製測試案例

測試案例是由包含動作的測試步驟所組成。 測試動作是使用執行工作的 Power Apps 運算式來撰寫。 當您與應用程式互動時,可以使用錄製器來自動產生測試步驟。 錄製之後,您可以更新測試案例、新增步驟、刪除步驟,以及撰寫測試判斷提示來驗證測試的結果。

注意

只有已發佈的應用程式才會在錄製模式下播放。 在開始錄製測試案例之前,請將任何最近的變更發佈到應用程式。 錄製而不發佈最近的變更會導致,錄製模式中播放的是上次所發佈的應用程式版本。

  1. 從頂端功能表選取錄製。 此動作會在新的瀏覽器索引標籤中使用錄製模式來開啟已發佈應用程式。

    重要

    在現有測試案例上錄製會覆寫已存在的任何現有測試步驟。

    錄製測試。

  2. 與應用程式互動。 您的動作會錄製在左窗格中。

  3. 互動完成之後,請選取完成。 或者,您可以選取取消以返回 Test Studio,而不錄製您的互動。

    儲存錄製。

  4. 檢視在 Test Studio 中為您自動產生的測試步驟和運算式。

  5. 視需要編輯主要方格中的步驟描述文字。 您也可以選取主要格線上的公式,更新測試步驟動作。

    更新測試案例。

新增測試步驟和測試判斷提示

每個測試案例都應該有預期的結果。 在 Kudos 範例中,傳送 Kudo 的其中一個預期結果是在 Microsoft Dataverse(Dataverse)資料庫中建立新記錄。 您現在將更新測試案例,並新增額外的測試步驟來驗證是否已成功建立記錄。

請執行下列步驟來確認記錄建立成功:

  • 在測試案例開始時,初始化資料庫中 Kudo 記錄計數的變數。
  • 在測試案例結束時,初始化資料庫中 Kudo 記錄計數的變數。
  • 撰寫測試判斷提示運算式以驗證是否以一個計數遞增。 如果計數未增加一,則測試判斷提示和您的測試案例都會失敗。

若要在 Kudos 應用程式中新增測試步驟和測試判斷提示:

  1. 選取步驟 1 或您想要插入新步驟的步驟上方。

  2. 從頂端功能表選取在上方插入步驟,或從使用中資料列選取該選項。 此動作會建立空白步驟。

    插入步驟。

    注意

    當您選取 Insert a step above 時(在上方插入步驟),即會在目前步驟的上方新增一個空白步驟。 您也可以改用斷言設定屬性選取追蹤動作。 這會新增步驟,其中包含您可以編輯的個別動作公式。

  3. 更新步驟描述。 例如,「計算資料庫中的 Kudo 數目」。

  4. 在動作輸入中輸入運算式或公式,以在執行測試之前,計算資料庫中的記錄數目。

    您可以使用任何支援的運算式。 您也可以查詢包含在應用程式中的任何資料來源、集合、變數或執行流程,以及建立要在測試中使用的新全域變數或集合。

    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);
    

    測試前的 Kudos。

  8. 移至測試案例底部並插入新的步驟,以在測試完成之後,計算資料庫中的記錄數目。

    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)
    

    測試判斷提示後的 Kudos。

  10. 從 Test Studio 的右上方功能表儲存測試案例。

播放測試

您可以播放錄製的測試來驗證應用程式功能。 您可以播放單一測試套件中的所有測試,或單一測試案例。

在播放包含最近變更的錄製之前,您必須先發佈應用程式:

播放而不發佈。

重要

如果您略過發佈,則播放的錄製將不會包含最近的測試變更。 而會對應用程式播放上次發佈的測試案例或套件。

  1. 選取發佈以自動儲存和發佈您的測試。

    發行變更。

  2. 選取測試套件或單一測試案例。

  3. 選取播放。 已發佈的應用程式會在播放模式下開啟,且您可以看到測試步驟自動播放。 綠色核取記號表示成功執行測試步驟。 如果步驟失敗,則會顯示紅色失敗指示器及失敗訊息。

    播放模式。

  4. 選取完成以返回 Test Studio。

失敗的判斷提示

在本節中,您會變更測試判斷提示來體驗測試失敗的情況:

  1. 選取運算式方塊,以編輯判斷提示步驟。

  2. 將測試動作中的 + 2 更新為 + 1。 此更新表示測試預期會建立 2 筆記錄,這並不正確。 如果測試成功,則資料庫中應該只會建立一筆記錄。

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

    判斷提示計數更新。

  3. 選取發行

  4. 選取播放

  5. 檢視測試播放。 最後一個步驟現在會失敗,並顯示錯誤及您在判斷提示步驟中提供的訊息。

    播放錯誤。

在瀏覽器中播放測試

您可以複製連結,在 Test Studio 外部的個別瀏覽器中播放測試。 這有助於將您的測試整合到持續組建和發行管線中,例如 Azure DevOps

所選測試的播放連結會予以保存。 不會針對測試套件或測試案例進行變更。 您可以更新測試,而不需要修改建置和發行程序。

若要在瀏覽器中播放測試:

  1. 在右窗格中選取測試套件或測試案例。

  2. 選取複製播放連結

    複製播放連結。

  3. 如有任何未發佈的變更,則系統會提示您發佈測試。

    先發佈再複製連結。

  4. 您可以選取略過發佈程序,並複製播放連結。 如果略過,則不會播放新的測試變更。

    播放複製的連結。

  5. 開啟瀏覽器並將 URL 貼到網址列中,以播放測試。

  6. 檢視您的測試播放。

設定您的測試

測試套件的 OnTestCaseStart 屬性可以用來設定測試。 在案例開始執行之前,針對套件中的每個測試案例,為此屬性輸入的運算式都會觸發。 OnTestCaseStart可協助您避免在每個案例開始時編寫相同的測試步驟。 您可以自訂此屬性,以執行套件中所有案例共有的工作,例如:

  • 永遠都要從第一個畫面開始測試執行。
  • 初始化一般集合或變數。
  • 從目前執行測試的資料來源中提取測試資料

TestCaseInfo記錄包含正在執行的目前測試的詳細資料。 它包含下列屬性:

  • TestCaseName - 測試案例的名稱。
  • TestCaseDescription– 測試案例的描述。
  • TestCaseId - 測試案例的識別碼。
  • TestSuiteName - 案例所屬的測試套件名稱。
  • TestSuiteDescription– 測試套件的描述。
  • TestSuiteId - 案例所屬的測試套件識別碼。

在下列範例中,您將自訂 OnTestCaseStart屬性,讓每個測試案例都從您應用程式的第一個畫面開始。 您也可以從可在測試案例的步驟中參考的資料來源獲取測試資料。

  1. 在左窗格中選取測試,或在套件標題上選取檢視

    測試或檢視設定屬性。

  2. 選取 OnTestCaseStart 動作。

  3. 輸入運算式以瀏覽至第一個畫面,並取得測試的測試資料。

    //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)
    

    OnTestCaseStart 範例。

處理測試結果

使用瀏覽器時,看不到在 Test Studio 中播放測試時所顯示的測試面板。 由於這種行為,您無法判斷所執行的特定測試步驟,或是測試成功或失敗。

若要在 Test Studio 外部判斷測試結果,您可以使用測試物件中的兩個可用屬性 OnTestCaseCompleteOnTestSuiteComplete 來處理測試結果。 當測試整合至持續組建和發行管線(例如 Azure DevOps)時,您可以使用這些屬性來判斷是否應該繼續進行應用程式部署。

當每個案例或套件完成時,就會觸發針對這些屬性輸入的運算式。 您可以自訂這些屬性來處理測試結果,並將測試結果傳送到各種資料來源或服務,例如:

  • SQL Server。
  • Dataverse。
  • Power Automate。
  • 使用 Office 365 傳送電子郵件。

這些設定會套用至應用程式中的每個測試套件或測試案例。 在每個測試套件或測試案例完成之後,TestCaseResultTestSuiteResult 記錄會提供測試結果及包含在測試中的任何追蹤訊息。

TestCaseResult 記錄包含下列屬性:

  • TestCaseName - 測試案例的名稱。
  • TestCaseDescription– 測試案例的描述。
  • TestCaseId - 測試案例的識別碼。
  • TestSuiteName - 案例所屬的測試套件名稱。
  • TestSuiteDescription– 測試套件的描述。
  • TestSuiteId - 案例所屬的測試套件識別碼。
  • StartTime - 測試開始執行的時間。
  • EndTime - 測試結束執行的時間。
  • Traces - 任何測試判斷提示的結果,以及來自 Trace 函式的任何訊息。
  • Success - 表明測試案例是否已順利完成。
  • TestFailureMessage - 案例失敗時顯示的失敗訊息。

TestSuiteResult 記錄包含下列屬性:

  • TestSuiteName - 測試套件名稱。
  • TestSuiteDescription– 測試套件的描述。
  • TestSuiteId - 測試套件識別碼。
  • StartTime - 測試套件開始執行的時間。
  • EndTime - 測試套件結束執行的時間。
  • TestsPassed - 套件中已順利完成的測試案例數目。
  • TestsFailed - 套件中失敗的測試案例數目。

在快速入門中,您將透過自訂 OnTestCaseCompleteOnTestSuiteComplete 屬性在 Dataverse 資料庫中建立兩個自訂資料表來儲存測試結果:

  1. 在左窗格中選取測試,或在套件標題上選取檢視

    測試或檢視設定屬性。

  2. 選取 OnTestCaseComplete 動作。

  3. 輸入運算式來處理您的測試結果。 以下範例會將每個測試用例的結果保存至 Dataverse 中的自訂 AppTestResults 資料表中。 您可以選擇將測試結果儲存至 SQL、SharePoint 或任何其他資料來源。 您可能必須視需要在您的資料來源中,設定或增加追蹤欄位。

    注意

    以下範例會連接至 Microsoft Dataverse。 您可以使用 Dataverse 來建立簡單的應用程式,或從頭建立應用程式。 此外,如需修改下列範例中所使用之資料來源記錄的詳細資料,請參閱 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
    }
    );
    

    OnTestCaseComplete 範例。

  4. 選取 OnTestSuiteComplete 動作。

  5. 輸入運算式來處理您的測試結果。 在以下範例中,您會將每個測試套件的結果儲存至 Dataverse 中的自訂 AppTestSuiteResults 資料表中。

    //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
        }
    );
    

    OnTestSuiteComplete 範例。

其他您可以在這些屬性中使用的運算式範例包括:

  • 將結果傳送至 Power Automate 中的流程。

    MyTestResultsFlow.Run(JSON(TestCaseResult))
    
  • 以電子郵件傳送結果。

    Office365.SendMailV2("someone@example.com", "Test case results", JSON(TestCaseResult, JSONFormat.IndentFour))
    
  • 接收測試結果的應用程式通知。

    例如,在 Test Studio 外部的瀏覽器中播放測試時,於測試完成後收到通知。

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

測試函式

除了 Power Apps 中提供的函式之外,下列是您在撰寫測試時通常會使用的常見函式。

後續步驟

注意

是否能請您告知您偏好的慣用文件語言? 請填寫問卷。 (請注意,本問卷為英文版)

完成問卷大約需要七分鐘。 本問卷將不會收集個人資料 (隱私權聲明)。