다음을 통해 공유


파워 쿼리 SDK 테스트 프레임워크 파트 7 - 파이프라인 가이드

이 다중 파트 참조는 파워 쿼리 커넥터 개발자를 위한 표준 테스트 제품군의 설정 및 실행에 대해 설명합니다. 이 참조는 사용자 지정 커넥터를 테스트하기 위해 환경이 설정되었는지 확인하기 위해 순차적으로 수행되어야 합니다.

이 가이드에서는 파워 쿼리 SDK 테스트 프레임워크에 대한 파이프라인을 설정하는 데 필요한 단계를 제공합니다.

이 섹션에서는 다음을 수행합니다.

  • 파이프라인 설정 개요
  • 파이프라인 에이전트 설정
  • 드라이버 및 자격 증명 설정을 포함하여 커넥터를 구성하는 방법을 알아봅니다.
  • 테스트를 실행하여 확장 커넥터 확인
  • 테스트 실행 보고서 생성

파워 쿼리 커넥터에 대한 파이프라인 설정 가이드

이 가이드에서는 파워 쿼리 SDK 테스트 프레임워크에 대한 파이프라인을 설정하는 데 필요한 단계를 제공합니다. 높은 수준에서 에이전트를 설정하고, 드라이버 설정을 포함하여 테스트 중인 커넥터를 구성하고, 지원되는 인증 메커니즘을 사용하여 PQTest에 대한 자격 증명을 구성하고, 테스트를 실행하고, 결과를 보고해야 합니다. 이 문서에서는 모든 예제에 Azure Pipelines 및 리소스를 사용합니다. 그러나 이러한 개념은 다른 파이프라인 아키텍처에 적용할 수 있습니다.

파이프라인은 다음 구조를 사용합니다.

  1. 리포지토리에서 테스트를 검색합니다.
  2. 지원되는 인증 메커니즘을 사용하여 데이터 원본에 액세스하기 위해 자격 증명을 검색 및/또는 설정합니다.
  3. 이전 단계에서 검색된 테스트를 실행합니다.
  4. 결과 및 로그를 업데이트합니다.

Azure Pipelines 설명서에서는 기본 파이프라인을 설정하는 방법을 설명합니다. 이러한 기능 설정에 대한 조언은 다음 섹션을 참조하세요.

  • 에이전트 필수 구성 요소
    • 네트워킹
    • 사용 권한
    • PQTest
    • 드라이버
  • 자격 증명
  • 스크립트
    • 자동화된 자격 증명 액세스
    • 테스트 실행 중
    • 스크립트 자동화

에이전트 필수 구성 요소

파이프라인 에이전트는 파워 쿼리 SDK를 포함하고 PQTest를 실행할 수 있도록 구성해야 합니다. 이 구성에는 해당하는 경우 관련 데이터 원본 및 자격 증명 관리자에 대한 액세스가 포함됩니다.

이러한 요구 사항은 모두 자체 호스팅 에이전트사용하여 충족할 수 있습니다. Azure Pipelines는 Microsoft 호스팅 에이전트를 제공할 수 있지만 이러한 에이전트는 파워 쿼리 SDK를 포함할 가능성이 낮으며 고려해야 할 네트워킹 장애물이 있을 수 있습니다. 가상 머신 또는 물리적 컴퓨터를 파이프라인 에이전트로 사용하면 PQTest가 데이터 원본에 연결할 수 있습니다.

네트워킹

커넥터 테스트를 실행하려면 에이전트가 관련 데이터 원본에 액세스할 수 있어야 합니다. 클라우드 데이터 원본(예: Snowflake 및 Google 빅 쿼리)에 쉽게 액세스할 수 있지만 온-프레미스 데이터 원본(예: SAP BW 및 SQL Server)에는 더 많은 구성이 필요합니다. 이러한 구성을 사용하려면 에이전트가 동일한 가상 네트워크에 연결되어 있는지, 에이전트의 방화벽에서 올바른 포트를 허용하는지 확인해야 할 수 있습니다.

사용 권한

키 자격 증명 모음에서 자격 증명을 자동으로 끌어오려는 경우 에이전트는 이 작업을 수행하는 방법이 필요합니다. 권장되는 방법은 가상 머신 에 대한 관리 ID를 설정하고 키 자격 증명 모음에 필요한 권한을 할당하는 것입니다.

PQTest

PQTest 실행 파일은 에이전트에 설치되어 있어야 합니다. 권장되는 방법은 파워 쿼리 SDK NuGet 패키지를 다운로드하여 에이전트에 압축을 푼 것입니다.

PQTest 실행 파일은 NuGet 패키지 \tools 폴더에서 찾을 수 있습니다. --help 인수를 사용하여 PQTest.exe 대한 도움말 정보를 표시하고 해당 명령을 숙지합니다.

드라이버

ODBC 커넥터의 경우 모든 드라이버를 다음 경로의 ODBC Drivers 폴더에 추가해야 합니다.

<>power_query_sdk_extension_path\Microsoft.PowerQuery.SdkTools.2.xxx.x\tools\ODBC 드라이버<드라이버>

Contoso 드라이버의 경우 경로는 다음과 같습니다.

C:\Users\ContosoUser.vscode\extensions\powerquery.vscode-powerquery-sdk-0.2.3-win32-x64.nuget\Microsoft.PowerQuery.SdkTools.2.126.3\tools\ODBC Driver\Contoso

자격 증명

자격 증명은 명령줄을 통해 Visual Studio Code 확장 또는 set-credential 명령을 사용하여 PQTest에 전달됩니다. 설정되면 이러한 자격 증명을 여러 테스트 실행에 다시 사용할 수 있습니다.

인증 유형에 따라 이러한 자격 증명은 한 번만 설정하거나(사용자 이름/암호) 업데이트된 상태로 유지(OAuth2 새로 고침 토큰)해야 할 수 있습니다. 이전 사례는 Visual Studio Code 인터페이스를 사용하여 쉽게 설정할 수 있습니다. 스크립트를 만들어 후자의 경우를 수행할 수 있습니다.

스크립트

PQTest는 명령줄에서 완전히 사용할 수 있으므로 스크립트를 통해 자동화할 수 있습니다.

자동화된 자격 증명 액세스

PQTest에 대한 자격 증명 액세스를 자동화하려면 키 자격 증명 모음을 사용하는 것이 좋습니다. 이렇게 하면 자격 증명을 쉽게 새로 고칠 수 있으며 스크립쳐할 수 있습니다.

  1. 첫 번째 단계는 에이전트의 관리 ID에 대한 액세스 권한을 부여하는 것입니다.
  2. 그런 다음 Rest API를 호출하여 데이터에 액세스할 수 있습니다.

이제 비밀을 가져올 수 있으므로 PQTest의 자격 증명 캐시에 추가할 수 있습니다.

  1. 자격 증명 템플릿 명령을 사용하여 JSON 템플릿을 만듭니다. 이 템플릿에는 문자열 바꾸기 함수를 통해 동적으로 변경할 수 있는 자리 표시자 텍스트($$USERNAME$$$$REFRESH_TOKEN$$, 등)가 포함되어 있습니다.

    $keyVaultOutput = invoke-expression 'Get-AzKeyVaultSecret -VaultName $keyVaultName -Name $secretName -AsPlainText'
    $jsonTemplate = invoke-expression "$pqTestExe credential-template -e $extensionFile -q $queryFile -ak $authenticationType"
    $jsonCredential = $jsonTemplate.Replace('$$USERNAME$$', $credentialName)
    $jsonCredential = $jsonCredential.Replace('$$PASSWORD$$', $keyVaultOutput)
    
  2. 파이프(|) 또는 입력<()을 사용하여 변경된 JSON 템플릿을 set-credential 명령에 전달합니다.

    $jsonCredential | & $pqTestExe set-credential -e $extensionFile -q $queryFile
    

이제 자격 증명이 설정되었으므로 테스트를 실행할 수 있습니다.

참고: 목록 자격 증명 명령을 사용하여 자격 증명이 제대로 설정되는지 확인할 수 있습니다.

테스트 실행 중

비교 명령을 사용하여 명령을 통해 테스트를 실행할 수 있습니다. 예를 들어 단일 테스트를 실행하려면 다음을 수행합니다.

.\PQTest.exe compare -e <connector file> -q <query file> -p

여러 테스트를 실행하려면 다음을 수행합니다.

.\PQTest.exe compare -e <connector file> -q <query folder> -sq <base query file> -p

스크립트 자동화

스크립트는 파이프라인 작업에서 실행하여 자동화할 수 있습니다. Azure Pipelines의 경우 PowerShell 작업을 사용할 수 있습니다.

# Example Azure pipeline for running connector tests using PQTest.
# Azure Pipelines reference: https://aka.ms/yaml
trigger: none
pool:
  name: SelfHosted-AgentPool
steps:
  - task: PowerShell@2
    inputs:
      filePath: '<path_to_run_test_script>/RunConnectorTest.ps1'
    displayName: 'Run Connector Tests'

결론

이 섹션에서는 제공된 테스트 도구 모음 및 고유한 테스트를 사용하여 확장 커넥터의 유효성을 검사하는 파워 쿼리 SDK 테스트 프레임워크를 사용하도록 파이프라인을 설정하고 구성하는 방법을 보여 줍니다.

전반적으로 이제 확장을 안정적으로 변경하고 개발 및 릴리스 중에 유효성을 검사할 수 있어야 합니다.