Muistiinpano
Testimoduuli on vanhentunut , ja se poistetaan tulevassa versiossa. Käytä Power Platform Playwright -näytteitä Power Platformin ja Dynamics 365-palveluiden testien automatisointiominaisuuksiin.
Sovellusten elinkaaren hallinta (ALM) on kattava lähestymistapa sovellusten elinkaaren hallintaan alkuperäisestä konseptista kehitykseen, testaukseen, käyttöönottoon ja jatkuvaan ylläpitoon. Automatisoidun Power Platform testauksen sisällyttäminen Test Enginen avulla ALM-prosessiin varmistaa, että sovellukset testataan perusteellisesti jokaisessa kehitysvaiheessa, mikä johtaa laadukkaampiin julkaisuihin.
Testiautomaation ymmärtäminen ALM:ssä
Testiautomaatiolla on kriittinen rooli ALM-prosessissa:
-
Laadun varmistaminen – Varmista, että sovellukset toimivat odotetulla tavalla ennen käyttöönottoa
-
Riskien vähentäminen – Ongelmien havaitseminen varhaisessa vaiheessa ennen kuin ne saapuvat tuotantoympäristöihin
-
Jatkuvan integroinnin mahdollistaminen - Automaattisen koontiversion vahvistustestauksen tukeminen
-
Hallittujen käyttöönottojen helpottaminen - Laadukkaiden porttien lisääminen julkaisuputkiin
Power Apps testimoduulin avulla voit integroida automatisoidun testauksen nykyisiin Power Platform ALM -työnkulkuihisi riippumatta siitä, mitä CI/CD-työkaluja käytät.
Testiautomaation elinkaari
Testimoottori tukee täydellistä testauksen elinkaarta, joka integroituu ALM-prosesseihisi:
-
Kehitys – Luo ja suorita testejä paikallisesti sovelluskehityksen aikana
-
Koontiversion vahvistus – Suorita testejä osana automaattista koontiversion vahvistusta
-
Vapauta portit – Käytä testituloksia laatuportteina hallituissa käyttöönotoissa
-
Tuotannon todentaminen – Vahvista tuotantoympäristöjen kriittiset toiminnot
Testiautomaation aloittaminen ALM:ssä
Aloita Test Enginen sisällyttäminen ALM-prosesseihisi:
-
Luo testisuunnitelma - Suunnittele YAML-testisuunnitelmat ratkaisuillesi Power Platform
-
Suorita testejä paikallisesti - Varmista, että testit toimivat kehitysympäristössäsi
-
Määritä todennus – Määritä asianmukainen todennus paikallisille suoritus- ja putkiympäristöille
-
Integroi putkeesi - Yhdistä Test Engine olemassa olevaan ALM-putkeen
-
Ota käyttöön laatuportit - Käytä testituloksia ratkaisujen edistämisen ohjaamiseen
Vinkki
Aloita kriittisistä käyttäjäpoluista ja laajenna automaattisten testien kattavuutta vähitellen, kun tutustut Test Engineen paremmin.
Testimoottorin lähdekoodiversio (valinnainen)
Jos käytät Test Enginen lähdekoodiversiota, tarvitset myös:
Integrointiasetukset
Test Engine integroituu saumattomasti erilaisiin ALM-työkaluihin ja -prosesseihin
Voit muokata YAMLtiedostoja paikallisen editorin, kuten < >Visual Studio Code avulla. Voit suorittaa testit paikallisesti seuraavasti:
- Varmista, että sinulla on asennettuna Microsoft Power Platform CLI
- Jos käytät lähteenhallinnan integrointia , kloonaa projektisi paikalliseen koneeseen
- Käytä pac-testiajoa testin suorittamiseen
- Tarkista testin hyväksytyt/hylätyt tulokset
Azure CLI on välttämätön, jotta voit saada käyttöoikeustietueita yhteyden muodostamiseksi Dataverseen. Paikallisesti voit käyttää:
az login --allow-no-subscriptions
Voit helposti integroida Test Enginen Power Platform sisäisiin putkiin alkuperäisen integroidun kokemuksen saamiseksi:
Voit käynnistää automaattisten testien suorittamisen, kun käytät mukautettujen putkien isäntää:
- Luo pilvipalvelun työnkulku Power Automate, joka käynnistyy putkitapahtumien perusteella
- Yhdistä CI/CD-järjestelmään suorittaaksesi testit
- Käsittele testitulokset ja päivitä putkilinjan tila
Seuraavassa kaaviossa on esimerkki tästä integrointimallista:
Tämä työnkulku käyttää:
Mukautettu CI/CD-integrointi Power Automate kanssa
Organisaatioissa, joissa on olemassa olevia CI/CD-työkaluja, testimoduuli integroituu mukautettuihin putkiin Power Automate käyttämällä Power Platform Custom Host -ominaisuutta. Custom Host -lähestymistavan avulla voit:
- Määritä mukautettu putken isäntä, joka suorittaa automaattiset testit
- Luo Power Automate pilvipalvelutyönkulkuja, jotka käynnistyvät automaattisesti käyttöönottotapahtumista
- Suorita
pac test run komentoja suoraan pilvityönkuluista suorittaaksesi lähteen hallintaan tallennettuja testejä
- Yhdistä haluamaasi CI/CD-järjestelmään (Azure DevOps, GitHub Actions jne.)
- Hyväksynnän työnkulkujen toteuttaminen testitulosten perusteella
- Päivitä käyttöönoton tila testitulosten perusteella
Tämän integroinnin avulla voit ylläpitää olemassa olevia CI/CD-investointejasi ja lisätä samalla Test Enginen ominaisuuksia ALM-prosessiisi. Mukautettu isäntä toimii siltana alkuperäisten ALM-ominaisuuksien ja ulkoisen testausinfrastruktuurisi välillä Power Platform.
Voit laajentaa putkistoasi Power Platform mukautetulla isännällä tai integroida pac test run - komennon suoraan koontikomentosarjojen suorittamiseen.
Tässä on esimerkki Azure DevOps jakson YAML-tiedostosta, joka esittelee, miten testausmoduulin testejä määritetään ja suoritetaan Power Apps:
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()
Referenssikomponentit
Seuraavista viitekomponenteista voi olla hyötyä, kun luot automaatiotestiputkea.
Tässä on esimerkki GitHub Actions -työnkulusta, joka suorittaa saman testin suoritusprosessin:
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
Liittyvät artikkelit
Lisätietoja testimoduulin YAML-syntaksista
Todennuksen määrittäminen testejä varten
Testaa pohjaan perustuvia sovelluksia, mallipohjaisia sovelluksia tai Dataverse laajennuksia
Tutustu Power Platform ALM:ään