Test Studio 작업

이 빠른 시작에서는 Kudos라는 캔버스 앱의 테스트를 만듭니다. 또한 테스트 개념을 살펴보고 검색하며 고유한 캔버스 앱의 테스트를 작성하는 작업에 적용할 수 있습니다. 샘플 Kudos 앱은 직원 환경 시작 키트에서 다운로드할 수 있는 직원 참여 앱 모음의 일부입니다.

이 비디오를 시청하여 Test Studio로 작업하는 방법을 배우십시오.

Test Studio 열기

  1. Power Apps에 로그인합니다.

  2. 새 앱을 만들거나 기존 앱을 편집합니다.

  3. Test Studio를 열려면 앱을 Power Apps에 저장합니다.

    참고

    앱의 테스트를 작성하기 전에 앱을 저장해야 합니다.

  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 레코드 수의 변수를 초기화합니다.
  • 테스트 어설션 식을 작성하여 개수를 1씩 증분하여 식의 유효성을 검사합니다. 개수가 1씩 증가하지 않으면 테스트 어설션이 실패하고 테스트 사례가 실패합니다.

Kudos 앱에서 테스트 단계 및 테스트 어설션을 추가하려면 다음을 수행합니다.

  1. 1단계 또는 새 단계를 삽입하려는 위쪽 단계를 선택합니다.

  2. 위쪽 메뉴에서 선택하거나 활성 행에서 옵션을 선택하여 위쪽에 단계 삽입을 선택합니다. 이렇게 하면 빈 단계가 생성됩니다.

    단계 삽입

    참고

    위쪽에 단계 삽입을 선택하면 현재 단계 위에 새 빈 단계가 추가됩니다. Assert, SetProperty, Select 또는 Trace 작업을 대신 사용할 수도 있습니다. 이렇게 하면 편집할 수 있는 개별 작업 수식이 포함된 단계가 추가됩니다.

  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. 테스트 작업에서 + 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 – 테스트 사례의 ID입니다.
  • TestSuiteName – 사례가 속한 테스트 도구 모음 이름입니다.
  • TestSuiteDescription – 테스트 도구 모음에 대한 설명입니다.
  • TestSuiteId – 사례가 속한 테스트 도구 모음 ID입니다.

아래 예에서는 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 – 테스트 사례의 ID입니다.
  • TestSuiteName – 사례가 속한 테스트 도구 모음 이름입니다.
  • TestSuiteDescription – 테스트 도구 모음에 대한 설명입니다.
  • TestSuiteId – 사례가 속한 테스트 도구 모음 ID입니다.
  • StartTime – 테스트의 실행 시작 시간입니다.
  • EndTime – 테스트의 실행 종료 시간입니다.
  • 추적 – Trace 함수에서 생성된 메시지 및 테스트 어설션의 결과입니다.
  • Success – 테스트 사례가 성공적으로 완료되었는지 여부를 나타냅니다.
  • TestFailureMessage – 사례가 실패한 경우 오류 메시지입니다.

TestSuiteResult 레코드에는 다음 속성이 포함됩니다.

  • TestSuiteName – 테스트 도구 모음 이름입니다.
  • TestSuiteDescription – 테스트 도구 모음에 대한 설명입니다.
  • TestSuiteId – 테스트 도구 모음 ID입니다.
  • 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에서 사용할 수 있는 함수 외에도 다음은 테스트를 작성할 때 일반적으로 사용하는 일반적인 함수입니다.

다음 단계

참고

귀사의 설명서 언어 기본 설정에 대해 말씀해 주시겠습니까? 간단한 설문 조사에 응해주세요. (이 설문 조사는 영어로 되어 있습니다.)

이 설문 조사는 약 7분 정도 걸립니다. 개인 데이터는 수집되지 않습니다(개인정보처리방침).