패키지 빌드

패키지는 애플리케이션 이진 및 테스트 스크립트를 포함하는 .zip 파일로, 테스트 베이스를 사용하기 위한 필수 구성 요소입니다. 이 빠른 시작에서는 애플리케이션에서 기본 제공 테스트를 수행할 수 있는 첫 번째 패키지를 빌드하는 방법을 안내합니다.

  • OOB(Out-of-Box) 테스트는 애플리케이션 설치, 시작, 닫기 및 제거를 수행합니다. 설치 후 시작 닫기 루틴은 단일 제거가 실행되기 전에 30번 반복됩니다. OOB 테스트는 패키지에서 표준화된 원격 분석을 제공하여 Windows 빌드 간에 비교할 수 있습니다.

필요에 따라 샘플 패키지를 다운로드하여 참조하고 시작할 수 있습니다.

폴더 구조 만들기

로컬 컴퓨터에서 다음과 같이 폴더 구조를 만듭니다.

패키지를 만드는 데 사용되는 폴더 구조

다음 폴더가 사용됩니다.

  • App\bin: 애플리케이션 및 종속성 이진 파일을 저장합니다.
  • App\scripts: 애플리케이션을 설치, 시작, 닫고 제거할 스크립트를 저장합니다.
  • App\logs: 스크립트는 이 폴더에 로그를 출력해야 하며, 테스트가 완료된 후 로그를 다운로드하고 분석할 수 있습니다.

이진 파일 복사

애플리케이션 설치 파일을 App\bin 에 복사합니다. 애플리케이션에 종속성이 있는 경우 먼저 설치해야 합니다. 또한 종속성 설치 파일을 App\bin 에 복사합니다.

폴더의 애플리케이션 파일 위치

PowerShell 스크립트 추가

OOB 테스트를 수행하려면 PowerShell 스크립트를 추가하여 애플리케이션을 설치, 시작, 닫고 제거해야 합니다.

참고

OOB 테스트에서는 설치, 시작 및 닫기 스크립트가 필요하지만 제거 스크립트는 선택 사항입니다.

스크립트는 다음과 같이 폴더에 추가되어야 합니다.

폴더에 있는 powershell 스크립트 파일의 위치

스크립트에는 일반적으로 다음과 같은 동작이 포함됩니다.

  • 명령을 실행하여 애플리케이션을 설치/시작/닫거나 제거합니다. 예를 들어 애플리케이션이 MSI 파일인 경우 msiexec 를 실행하여 설치합니다.
  • 설치/시작/닫기/제거 작업의 결과를 확인하고 결과가 필요한 경우 0개의 종료 코드를 반환합니다. Test Base는 0이 아닌 종료 코드를 반환하는 경우 스크립트 실행을 실패로 표시합니다.
  • 충분한 로그를 저장하고 나중에 사용할 수 있는 적절한 로그를 저장합니다.

다음 예제를 참조하세요. 파일에 복사하고 그에 따라 변경할 수 있습니다.

설치 스크립트(App\scripts\install\job.ps1)의 예:

        push-location $PSScriptRoot
        $exit_code = 0
        $script_name = $myinvocation.mycommand.name
        $log_dir = "$PSScriptRoot\..\..\logs"
        $log_file = "$log_dir\$script_name.log"

        if(-not (test-path -path $log_dir )) {
            new-item -itemtype directory -path $log_dir
        }

        Function log {
           Param ([string]$log_string)
           write-host $log_string
           add-content $log_file -value $log_string
        }

        log("Installing TestBaseM365 Digital Clock")
        push-location "..\..\bin"
        if ([Environment]::Is64BitProcess) {
            $installer_name = "TestBaseM365DigitalClock.msi"
        }
        else {
            $installer_name = "TestBaseM365DigitalClock.msi"
        }
        $arguments = "/i "+$installer_name+" /quiet /L*v "+"$log_dir"+"\atp-client-installation.log"

        $installer = Start-Process msiexec.exe $arguments -wait -passthru
        pop-location

        if ($installer.exitcode -eq 0) {
            log("Installation succesful as $($installer.exitcode)")
        }
        else {
            log("Error: Installation failed as $($installer.exitcode)")
            $exit_code = $installer.exitcode
        }

        log("Installation script finished as $exit_code")
        pop-location
        exit $exit_code

시작 스크립트(App\scripts\launch\job.ps1)의 예:

        push-location $PSScriptRoot
        $exit_code = 0
        $script_name = $myinvocation.mycommand.name
        $log_dir = "$PSScriptRoot\..\..\logs"
        $log_file = "$log_dir\$script_name.log"

        if(-not (test-path -path $log_dir )) {
            new-item -itemtype directory -path $log_dir
        }

        Function log {
           Param ([string]$log_string)
           write-host $log_string
           add-content $log_file -value $log_string
        }

        log("Launch TestBaseM365 Digital Clock")

        $PROCESS_NAME = "DigitalClock"
        $exePath = "C:\Program Files\Test Base M365\DigitalClock\DigitalClock.exe"

        Start-Process -FilePath $exePath

         if (Get-Process -Name $PROCESS_NAME) {
                log("Launch successfully $PROCESS_NAME...")
                $exit_code = 0
         }
         else {
            log("Not launched $PROCESS_NAME...")
            $exit_code = 1
         }

        log("Launch script finished as $exit_code")
        pop-location
        exit $exit_code

zip 파일로 압축

스크립트 및 이진 파일이 준비되면 폴더를 zip 파일로 압축합니다. 앱 폴더를 마우스 오른쪽 단추로 클릭하고 ZIP 파일로 압축을 선택합니다.

zip 파일로 압축

패키지를 로컬로 확인(선택 사항)

zip 패키지를 빌드한 후 테스트 기본 계정에 업로드할 수 있습니다.

그러나 업로드하기 전에 스크립트가 제대로 작동하는지 확인하기 위해 테스트를 로컬로 실행하는 것이 좋습니다. 로컬 테스트는 문제를 빠르게 식별하고 업로드 프로세스를 가속화할 수 있습니다. 로컬로 확인하려면 다음 단계를 수행합니다.

  1. VM 준비(Virtual Machine)

    현재 각 테스트에 대해 깨끗한 Windows 환경이 필요하므로 이 로컬 테스트에 가상 머신을 사용하는 것이 좋습니다. Azure에서 Windows VM을 쉽게 만들 수 있습니다(빠른 시작: Windows 가상 머신). 테스트에 적합한 Windows 버전(이미지)을 선택할 수 있습니다(예: Windows 10 Pro, 버전 21H2).

  2. VM에 패키지 복사

    패키지 파일을 VM에 복사하는 방법에는 여러 가지가 있습니다. Azure VM을 사용하는 경우 다음을 선택할 수 있습니다.

    이 테스트에 대한 특정 폴더를 만들고 이 폴더 아래에 패키지 파일을 복사할 수 있습니다. 예: C:\TestBase.

  3. 패키지 테스트

    Windows PowerShell 열고 패키지가 포함된 디렉터리(예: cd C:\TestBase디렉터리)로 전환하고 패키지에서 테스트를 실행하기 시작합니다.

    1. 패키지 파일을 추출합니다.

      Expand-Archive -LiteralPath C:\TestBase\App.zip -DestinationPath C:\TestBase
      
    2. 설치 스크립트를 실행합니다.

      C:\TestBase\App\scripts\install\job.ps1
      
    3. 필요한 경우 VM을 다시 시작합니다.

    4. 시작 스크립트를 실행합니다.

      C:\TestBase\App\scripts\install\job.ps1
      
    5. 닫기 스크립트를 실행합니다.

      C:\TestBase\App\scripts\close\job.ps1
      
    6. 제거 스크립트를 실행합니다(있는 경우).

      C:\TestBase\App\scripts\uninstall\job.ps1
      

각 단계 후에 스크립트에 문제가 있는지 확인할 수 있습니다. 모든 스크립트가 예상대로 실행되면 패키지를 테스트 기본 계정에 업로드할 준비가 된 것입니다.

다음 단계

패키지 업로드