หมายเหตุ
คุณลักษณะการแสดงตัวอย่างไม่ได้มีไว้สำหรับการนำไปใช้งานจริง และอาจมีการจำกัดฟังก์ชันการทำงาน คุณลักษณะเหล่านี้สามารถใช้ได้ก่อนการเปิดตัวอย่างเป็นทางการ เพื่อให้ลูกค้าสามารถเข้าใช้งานได้ก่อนเวลาและให้ข้อคิดเห็น
การจัดการวงจรชีวิตแอปพลิเคชัน (Application Lifecycle Management: ALM) เป็นแนวทางที่ครอบคลุมในการจัดการวงจรชีวิตของแอปพลิเคชันตั้งแต่แนวคิดเริ่มต้นไปจนถึงการพัฒนา การทดสอบ การปรับใช้ และการบำรุงรักษาอย่างต่อเนื่อง ในบริบทของ Power Platform การรวมการทดสอบอัตโนมัติกับ Test Engine ในกระบวนการ ALM จะช่วยให้แน่ใจว่าแอปพลิเคชันได้รับการทดสอบอย่างละเอียดถี่ถ้วนในแต่ละขั้นตอนของการพัฒนา ส่งผลให้มีการเผยแพร่ที่มีคุณภาพสูงขึ้น
ทำความเข้าใจเกี่ยวกับการทดสอบอัตโนมัติใน ALM
การทดสอบอัตโนมัติมีบทบาทสำคัญในกระบวนการ ALM โดย:
-
การรับประกันคุณภาพ - การตรวจยืนยันว่าแอปพลิเคชันทำงานตามที่คาดหวังก่อนการปรับใช้
-
ลดความเสี่ยง - ตรวจจับปัญหาตั้งแต่เนิ่นๆ ก่อนที่จะลุกลามไปสู่สภาพแวดล้อมการผลิต
-
การเปิดใช้งานการรวมอย่างต่อเนื่อง - รองรับการทดสอบการตรวจสอบการสร้างอัตโนมัติ
-
อำนวยความสะดวกในการใช้งานที่ควบคุมได้ - เพิ่มเกตคุณภาพให้กับท่อปล่อย
ด้วย Power Apps Test Engine คุณสามารถรวมการทดสอบอัตโนมัติเข้ากับเวิร์กโฟลว์ Power Platform ALM ที่มีอยู่ของคุณได้ โดยไม่คำนึงว่าคุณใช้เครื่องมือ CI/CD ใดก็ตาม
วงจรชีวิตการทดสอบอัตโนมัติ
เครื่องมือทดสอบรองรับวงจรชีวิตการทดสอบที่สมบูรณ์ซึ่งบูรณาการกับกระบวนการ ALM ของคุณ:
-
การพัฒนา - สร้างและรันการทดสอบในเครื่องระหว่างการพัฒนาแอป
-
การตรวจสอบการสร้าง - ดำเนินการทดสอบเป็นส่วนหนึ่งของการตรวจสอบการสร้างอัตโนมัติ
-
ประตูปล่อย - ใช้ผลการทดสอบเป็นประตูคุณภาพสำหรับการใช้งานที่ควบคุม
-
การตรวจสอบการผลิต - ตรวจสอบฟังก์ชันการทำงานที่สำคัญในสภาพแวดล้อมการผลิต
การเริ่มต้นใช้งานการทดสอบอัตโนมัติใน ALM
วิธีเริ่มต้นใช้งานการรวม Test Engine เข้าในกระบวนการ ALM ของคุณ:
-
สร้างแผนการทดสอบของคุณ - ออกแบบ แผนการทดสอบ YAML สำหรับ Power Platform โซลูชันของคุณ
-
รันการทดสอบในเครื่อง - ตรวจสอบว่าการทดสอบทำงานในสภาพแวดล้อมการพัฒนาของคุณ
-
ตั้งค่าการตรวจสอบสิทธิ์ - กำหนดค่า การตรวจสอบสิทธิ์ที่เหมาะสม สำหรับสภาพแวดล้อมการดำเนินการและไปป์ไลน์ในเครื่องของคุณ
-
บูรณาการกับไปป์ไลน์ของคุณ - เชื่อมต่อ Test Engine กับไปป์ไลน์ ALM ที่มีอยู่ของคุณ
-
การนำเกตคุณภาพมาใช้ - ใช้ผลการทดสอบเพื่อควบคุมการส่งเสริมโซลูชัน
เคล็ดลับ
เริ่มต้นด้วยการเดินทางของผู้ใช้ที่สำคัญและค่อยๆ ขยายการครอบคลุมการทดสอบอัตโนมัติเมื่อคุณคุ้นเคยกับ Test Engine มากขึ้น
เวอร์ชันซอร์สโค้ดของ Test Engine (ทางเลือก)
หากคุณใช้ Test Engine เวอร์ชันซอร์สโค้ด คุณจะต้องมี:
ตัวเลือกการรวม
Test Engine สามารถบูรณาการกับเครื่องมือและกระบวนการ ALM ต่างๆ ได้อย่างราบรื่น
คุณสามารถใช้ตัวแก้ไขในเครื่อง เช่น Visual Studio โค้ด เพื่อแก้ไขไฟล์ YAML เพื่อสร้างการทดสอบ Test Engine ในการรันการทดสอบในเครื่อง:
- ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง Microsoft Power Platform CLI แล้ว
- หากคุณกำลังใช้ การรวมการควบคุมแหล่งที่มา โคลนโครงการของคุณไปยังเครื่องในพื้นที่ของคุณ
- ใช้ pac test run เพื่อดำเนินการทดสอบของคุณ
- ตรวจสอบผลสอบผ่าน/ไม่ผ่าน
Azure CLI มีความจำเป็นสำหรับการรับโทเค็นการเข้าถึงเพื่อเชื่อมต่อ Dataverse ในพื้นที่คุณสามารถใช้:
az login --allow-no-subscriptions
คุณสามารถรวม Test Engine เข้ากับไปป์ไลน์ในตัวของ Power Platform ได้อย่างง่ายดายเพื่อประสบการณ์บูรณาการดั้งเดิม:
-
โซลูชันไปป์ไลน์ - เพิ่มการทดสอบอัตโนมัติให้กับ โซลูชันไปป์ไลน์ ของคุณเพื่อให้มั่นใจถึงคุณภาพในแต่ละขั้นตอน
-
กลยุทธ์ด้านสิ่งแวดล้อม - ทดสอบในสภาพแวดล้อมการพัฒนาและทดสอบ ก่อนจะส่งเสริมไปสู่การผลิต
-
เทมเพลตไปป์ไลน์ - ใช้ เทมเพลตไปป์ไลน์ เพื่อทำให้การทดสอบเป็นมาตรฐานทั่วทั้งองค์กรของคุณ
คุณสามารถทริกเกอร์การดำเนินการทดสอบอัตโนมัติได้เมื่อใช้ โฮสต์ไปป์ไลน์แบบกำหนดเอง:
- สร้างโฟลว์คลาวด์ที่ทริกเกอร์ตามเหตุการณ์ไปป์ไลน์ Power Automate
- เชื่อมต่อกับระบบ CI/CD ของคุณเพื่อรันการทดสอบ
- ผลการทดสอบกระบวนการและอัปเดตสถานะท่อส่ง
แผนภาพต่อไปนี้แสดงตัวอย่างของรูปแบบการรวมนี้:
การไหลนี้ใช้:
การบูรณาการ CI/CD ที่กำหนดเองด้วย Power Automate
สำหรับองค์กรที่มีเครื่องมือ CI/CD อยู่แล้ว Test Engine จะบูรณาการกับไปป์ไลน์แบบกำหนดเองโดยใช้คุณลักษณะ Power Automate โฮสต์แบบกำหนดเอง Power Platform ด้วยแนวทางโฮสต์แบบกำหนดเอง คุณจะสามารถ:
- กำหนด โฮสต์ไปป์ไลน์แบบกำหนดเอง ที่จะดำเนินการทดสอบอัตโนมัติของคุณ
- สร้าง Power Automate โฟลว์คลาวด์ที่ทริกเกอร์โดยอัตโนมัติจากเหตุการณ์การปรับใช้
- ดำเนินการ
pac test run คำสั่งโดยตรงจากโฟลว์คลาวด์เพื่อรันการทดสอบที่เก็บไว้ในระบบควบคุมต้นทาง
- เชื่อมต่อกับระบบ CI/CD ที่คุณต้องการ (Azure DevOps, GitHub Actions เป็นต้น)
- ดำเนินการเวิร์กโฟลว์การอนุมัติตามผลการทดสอบ
- อัปเดตสถานะการปรับใช้ตามผลการทดสอบ
การบูรณาการนี้ทำให้คุณสามารถรักษาการลงทุน CI/CD ที่มีอยู่ของคุณได้ในขณะที่เพิ่มความสามารถของ Test Engine ให้กับกระบวนการ ALM ของคุณ โฮสต์ที่กำหนดเองทำหน้าที่เป็นสะพานเชื่อมระหว่างฟีเจอร์ ALM ดั้งเดิมของ Power Platform และโครงสร้างพื้นฐานการทดสอบภายนอกของคุณ
คุณสามารถขยาย Power Platform Pipeline ของคุณได้โดยใช้ โฮสต์ที่กำหนดเอง หรือรวมคำสั่ง pac test run โดยตรงเพื่อรันสคริปต์สร้างของคุณ
นี่คือตัวอย่างของไฟล์ YAML ของ Azure DevOps pipeline ที่สาธิตวิธีการตั้งค่าและรันการทดสอบ Power Apps Test Engine:
trigger:
- main
pool:
vmImage: 'windows-latest'
variables:
- group: PowerPlatformTestVariables # Create a variable group with these variables
# Required variables in the variable group:
# ClientId - Service Principal App ID
# ClientSecret - Service Principal Secret (mark as secret)
# TenantId - Microsoft Entra Tenant ID
# EnvironmentUrl - Power Platform Environment URL
# EnvironmentId - Power Platform Environment ID
steps:
# Download the test plan file from secure files
- task: DownloadSecureFile@1
name: testPlan
displayName: 'Download Test Plan File'
inputs:
secureFile: 'testplan.te.yaml' # Upload your test plan to Secure Files in Azure DevOps
# Install Power Platform CLI
- task: PowerShell@2
displayName: 'Install Power Platform CLI'
inputs:
targetType: 'inline'
script: |
Write-Host "Installing Power Platform CLI..."
$pacUrl = "https://aka.ms/PowerAppsCLI"
$pacZip = "$env:TEMP\pac.zip"
$pacDestination = "$env:TEMP\pac"
# Create the destination folder if it doesn't exist
if (-not (Test-Path $pacDestination)) {
New-Item -ItemType Directory -Path $pacDestination -Force | Out-Null
}
# Download PAC CLI
Invoke-WebRequest -Uri $pacUrl -OutFile $pacZip
# Extract PAC CLI
Expand-Archive -Path $pacZip -DestinationPath $pacDestination -Force
# Add PAC CLI to PATH
$env:PATH = "$pacDestination;$env:PATH"
# Verify installation
pac help
# Install Azure CLI and authenticate with service principal
- task: PowerShell@2
displayName: 'Install Azure CLI and Authenticate'
inputs:
targetType: 'inline'
script: |
Write-Host "Installing Azure CLI..."
$azureCliUrl = "https://aka.ms/installazurecliwindows"
$azureCliInstaller = "$env:TEMP\AzureCLI.msi"
# Download Azure CLI installer
Invoke-WebRequest -Uri $azureCliUrl -OutFile $azureCliInstaller
# Install Azure CLI silently
Start-Process -FilePath msiexec.exe -Args "/i $azureCliInstaller /quiet /norestart" -Wait
# Reload PATH to include Azure CLI
$env:PATH = [System.Environment]::GetEnvironmentVariable("PATH", "Machine") + ";" + [System.Environment]::GetEnvironmentVariable("PATH", "User")
# Authenticate with service principal
Write-Host "Authenticating with Azure CLI..."
az login --service-principal -u "$(ClientId)" -p "$(ClientSecret)" --tenant "$(TenantId)" --allow-no-subscriptions
# Authenticate PAC CLI with service principal
- task: PowerShell@2
displayName: 'Authenticate PAC CLI'
inputs:
targetType: 'inline'
script: |
Write-Host "Authenticating PAC CLI..."
# Create authentication profile
pac auth create --name TestEngineAuth --url "$(EnvironmentUrl)" --applicationId "$(ClientId)" --clientSecret "$(ClientSecret)" --tenant "$(TenantId)"
# Select the authentication profile
pac auth select --name TestEngineAuth
# Run the tests
- task: PowerShell@2
displayName: 'Execute Test Engine Tests'
inputs:
targetType: 'inline'
script: |
Write-Host "Running Test Engine tests..."
# Create output directory
$outputDir = "$(Build.ArtifactStagingDirectory)\TestResults"
New-Item -ItemType Directory -Path $outputDir -Force | Out-Null
# Run the tests
pac test run `
--test-plan-file "$(testPlan.secureFilePath)" `
--environment-id "$(EnvironmentId)" `
--tenant "$(TenantId)" `
--logConsole info `
--trx `
--outputDirectory $outputDir
if ($LASTEXITCODE -ne 0) {
Write-Error "Test execution failed with exit code $LASTEXITCODE"
exit $LASTEXITCODE
}
# Publish test results
- task: PublishTestResults@2
displayName: 'Publish Test Results'
inputs:
testResultsFormat: 'VSTest'
testResultsFiles: '$(Build.ArtifactStagingDirectory)\TestResults\*.trx'
mergeTestResults: true
testRunTitle: 'Power Apps Test Engine Results'
condition: always() # Ensure results are published even if tests fail
# Publish test artifacts
- task: PublishBuildArtifacts@1
displayName: 'Publish Test Artifacts'
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)\TestResults'
ArtifactName: 'TestArtifacts'
publishLocation: 'Container'
condition: always()
ส่วนประกอบอ้างอิง
ส่วนประกอบอ้างอิงต่อไปนี้อาจเป็นประโยชน์เมื่อคุณสร้างไปป์ไลน์การทดสอบอัตโนมัติของคุณ
นี่คือตัวอย่างเวิร์กโฟลว์ GitHub Actions ที่ดำเนินการกระบวนการทดสอบแบบเดียวกัน:
name: Test Engine Execution
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch: # Allow manual triggering
jobs:
test:
runs-on: windows-latest
env:
TENANT_ID: ${{ secrets.TENANT_ID }}
CLIENT_ID: ${{ secrets.CLIENT_ID }}
CLIENT_SECRET: ${{ secrets.CLIENT_SECRET }}
ENVIRONMENT_URL: ${{ secrets.ENVIRONMENT_URL }}
ENVIRONMENT_ID: ${{ secrets.ENVIRONMENT_ID }}
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install Power Platform CLI
run: |
Write-Host "Installing Power Platform CLI..."
$pacUrl = "https://aka.ms/PowerAppsCLI"
$pacZip = "$env:TEMP\pac.zip"
$pacDestination = "$env:TEMP\pac"
# Create the destination folder if it doesn't exist
if (-not (Test-Path $pacDestination)) {
New-Item -ItemType Directory -Path $pacDestination -Force | Out-Null
}
# Download PAC CLI
Invoke-WebRequest -Uri $pacUrl -OutFile $pacZip
# Extract PAC CLI
Expand-Archive -Path $pacZip -DestinationPath $pacDestination -Force
# Add PAC CLI to PATH
$env:PATH = "$pacDestination;$env:PATH"
echo "$pacDestination" >> $env:GITHUB_PATH
# Verify installation
pac help
- name: Install Azure CLI
run: |
Write-Host "Installing Azure CLI..."
$ProgressPreference = 'SilentlyContinue'
Invoke-WebRequest -Uri https://aka.ms/installazurecliwindows -OutFile .\AzureCLI.msi
Start-Process msiexec.exe -Wait -ArgumentList '/I AzureCLI.msi /quiet'
rm .\AzureCLI.msi
- name: Azure CLI Authentication
run: |
Write-Host "Authenticating with Azure CLI..."
az login --service-principal -u "$env:CLIENT_ID" -p "$env:CLIENT_SECRET" --tenant "$env:TENANT_ID" --allow-no-subscriptions
- name: PAC CLI Authentication
run: |
Write-Host "Authenticating PAC CLI..."
# Create authentication profile
pac auth create --name TestEngineAuth --url "$env:ENVIRONMENT_URL" --applicationId "$env:CLIENT_ID" --clientSecret "$env:CLIENT_SECRET" --tenant "$env:TENANT_ID"
# Select the authentication profile
pac auth select --name TestEngineAuth
- name: Run Test Engine tests
run: |
Write-Host "Running Test Engine tests..."
# Create output directory
$outputDir = "./TestResults"
New-Item -ItemType Directory -Path $outputDir -Force | Out-Null
# Run the tests
pac test run `
--test-plan-file "./TestPlan/testplan.te.yaml" `
--environment-id "$env:ENVIRONMENT_ID" `
--tenant "$env:TENANT_ID" `
--logConsole info `
--trx `
--outputDirectory $outputDir
if ($LASTEXITCODE -ne 0) {
Write-Error "Test execution failed with exit code $LASTEXITCODE"
exit $LASTEXITCODE
}
- name: Upload test results
uses: actions/upload-artifact@v3
if: always()
with:
name: test-results
path: ./TestResults
- name: Publish Test Results
uses: EnricoMi/publish-unit-test-result-action@v2
if: always()
with:
files: ./TestResults/**/*.trx
บทความที่เกี่ยวข้อง
เรียนรู้เกี่ยวกับไวยากรณ์ YAML ของ Test Engine
ตั้งค่าการตรวจสอบสิทธิ์สำหรับการทดสอบของคุณ
แอปพลิเคชันทดสอบแคนวาส, แอปพลิเคชันที่ขับเคลื่อนด้วยโมเดล หรือ Dataverse ส่วนขยาย
เข้าใจ Power Platform ALM