Note
Η μηχανή δοκιμής έχει καταργηθεί και θα καταργηθεί σε μελλοντική έκδοση. Χρησιμοποιήστε τα δείγματα Power Platform Playwright για δυνατότητες αυτοματισμού δοκιμών στο Power Platform και στις υπηρεσίες Dynamics 365.
Η Διαχείριση κύκλου ζωής εφαρμογών (ALM) είναι μια ολοκληρωμένη προσέγγιση για τη διαχείριση του κύκλου ζωής των εφαρμογών από την αρχική ιδέα έως την ανάπτυξη, τη δοκιμή, την ανάπτυξη και τη συνεχή συντήρηση. Στο πλαίσιο Power Platform, η ενσωμάτωση αυτοματοποιημένων δοκιμών με τη μηχανή δοκιμών στη διαδικασία ALM διασφαλίζει ότι οι εφαρμογές δοκιμάζονται διεξοδικά σε κάθε στάδιο ανάπτυξης, με αποτέλεσμα εκδόσεις υψηλότερης ποιότητας.
Κατανόηση της αυτοματοποίησης δοκιμών στο ALM
Η αυτοματοποίηση δοκιμών διαδραματίζει κρίσιμο ρόλο στη διαδικασία ALM με:
-
Διασφάλιση ποιότητας - Επαλήθευση ότι οι εφαρμογές λειτουργούν όπως αναμένεται πριν από την ανάπτυξη
-
Μείωση του κινδύνου - Εντοπισμός προβλημάτων νωρίς πριν φτάσουν σε περιβάλλοντα παραγωγής
-
Ενεργοποίηση συνεχούς ενσωμάτωσης - Υποστήριξη αυτοματοποιημένων δοκιμών επαλήθευσης κατασκευής
-
Διευκόλυνση ελεγχόμενων αναπτύξεων - Προσθήκη ποιοτικών πυλών για την απελευθέρωση αγωγών
Με Power Apps μηχανισμό δοκιμών, μπορείτε να ενσωματώσετε αυτοματοποιημένες δοκιμές στις υπάρχουσες ροές εργασιών ALM του Power Platform, ανεξάρτητα από τα εργαλεία CI/CD που χρησιμοποιείτε.
Κύκλος ζωής αυτοματισμού δοκιμής
Ο μηχανισμός δοκιμών υποστηρίζει έναν πλήρη κύκλο ζωής δοκιμών που ενσωματώνεται στις διαδικασίες ALM:
-
Ανάπτυξη- Δημιουργήστε και εκτελέστε δοκιμές τοπικά κατά την ανάπτυξη εφαρμογών
-
Επικύρωση κατασκευής- Εκτελέστε δοκιμές ως μέρος της αυτοματοποιημένης επαλήθευσης κατασκευής
-
Πύλες απελευθέρωσης - Χρησιμοποιήστε τα αποτελέσματα των δοκιμών ως ποιοτικές πύλες για ελεγχόμενες αναπτύξεις
-
Επαλήθευση παραγωγής- Επικύρωση κρίσιμης λειτουργικότητας σε περιβάλλοντα παραγωγής
Γρήγορα αποτελέσματα με τον αυτοματισμό δοκιμών στο ALM
Για να ξεκινήσετε με την ενσωμάτωση του Test Engine στις διαδικασίες ALM:
-
Δημιουργήστε το σχέδιο δοκιμής σας - Σχεδιάστε σχέδια δοκιμών YAML για τις λύσεις σας Power Platform
-
Εκτελέστε δοκιμές τοπικά - Επαληθεύστε ότι οι δοκιμές λειτουργούν στο περιβάλλον ανάπτυξής σας
-
Ρύθμιση ελέγχου ταυτότητας - Διαμορφώστε τον κατάλληλο έλεγχο ταυτότητας για τα τοπικά περιβάλλοντα εκτέλεσης και διοχέτευσης
-
Ενσωμάτωση με τον αγωγό σας - Συνδέστε τη μηχανή δοκιμής στον υπάρχοντα αγωγό ALM
-
Εφαρμογή πυλών ποιότητας - Χρησιμοποιήστε τα αποτελέσματα των δοκιμών για να ελέγξετε την προώθηση λύσεων
Συμβουλή
Ξεκινήστε με κρίσιμες διαδρομές χρήστη και σταδιακά επεκτείνετε την αυτοματοποιημένη κάλυψη δοκιμών καθώς εξοικειώνεστε περισσότερο με το Test Engine.
Έκδοση πηγαίου κώδικα του μηχανισμού δοκιμής (προαιρετικό)
Εάν χρησιμοποιείτε την έκδοση πηγαίου κώδικα του μηχανισμού δοκιμής, θα χρειαστείτε επίσης:
Επιλογές ενοποίησης
Το Test Engine ενσωματώνεται απρόσκοπτα με διάφορα εργαλεία και διαδικασίες ALM
Μπορείτε να χρησιμοποιήσετε ένα τοπικό πρόγραμμα επεξεργασίας, όπως το Visual Studio Code για να επεξεργαστείτε τα αρχεία YAML για να συντάξετε τις δοκιμές μηχανισμού δοκιμών. Για να εκτελέσετε τις δοκιμές τοπικά:
- Βεβαιωθείτε ότι έχετε εγκαταστήσει το Microsoft Power Platform CLI
- Εάν χρησιμοποιείτε ενοποίηση ελέγχου προέλευσης, κλωνοποιήστε το έργο σας στον τοπικό υπολογιστή σας
- Χρησιμοποιήστε τη δοκιμαστική εκτέλεση pac για να εκτελέσετε τη δοκιμή σας
- Ελέγξτε τα αποτελέσματα επιτυχίας / αποτυχίας της δοκιμής
Το Azure CLI είναι απαραίτητο για την απόκτηση διακριτικών πρόσβασης για τη σύνδεση στο Dataverse. Τοπικά, μπορείτε να χρησιμοποιήσετε:
az login --allow-no-subscriptions
Μπορείτε εύκολα να ενσωματώσετε το Test Engine με Power Platform τους ενσωματωμένους αγωγούς του για μια εγγενή ολοκληρωμένη εμπειρία:
-
Αγωγοί λύσεων- Προσθέστε αυτοματοποιημένες δοκιμές στις διοχετεύσεις λύσεων για να διασφαλίσετε την ποιότητα σε κάθε στάδιο
-
Περιβαλλοντική στρατηγική - Δοκιμή σε περιβάλλοντα ανάπτυξης και δοκιμών πριν από την προώθηση στην παραγωγή
-
Πρότυπα διοχέτευσης- Χρησιμοποιήστε πρότυπα διοχέτευσης για να τυποποιήσετε τις δοκιμές σε ολόκληρο τον οργανισμό σας
Μπορείτε να ενεργοποιήσετε την εκτέλεση αυτοματοποιημένων δοκιμών όταν χρησιμοποιείτε έναν κεντρικό υπολογιστή προσαρμοσμένων αγωγών:
- Δημιουργήστε μια ροή cloud στο Power Automate που ενεργοποιείται με βάση τα συμβάντα της διοχέτευσης.
- Συνδεθείτε στο σύστημα CI/CD για να εκτελέσετε τις δοκιμές
- Επεξεργασία αποτελεσμάτων δοκιμών και ενημέρωση της κατάστασης διοχέτευσης
Το παρακάτω διάγραμμα δείχνει ένα παράδειγμα αυτού του μοτίβου ενσωμάτωσης:
Αυτή η ροή χρησιμοποιεί:
Προσαρμοσμένη ενοποίηση CI/CD με Power Automate
Για οργανισμούς με υπάρχοντα εργαλεία CI/CD, η μηχανή δοκιμής ενοποιείται με προσαρμοσμένες διοχετεύσεις μέσω Power Automate χρησιμοποιώντας τη δυνατότητα Power Platform Custom Host δυνατότητα. Με την προσέγγιση προσαρμοσμένου εξυπηρετητή, μπορείτε να κάνετε τα εξής:
- Ορίστε έναν προσαρμοσμένο κεντρικό υπολογιστή διοχέτευσης που εκτελεί τις αυτοματοποιημένες δοκιμές σας
- Δημιουργία Power Automate ροών cloud που ενεργοποιούνται αυτόματα από συμβάντα ανάπτυξης
- Εκτέλεση
pac test run εντολών απευθείας από ροές cloud για την εκτέλεση δοκιμών που είναι αποθηκευμένες στο στοιχείο ελέγχου προέλευσης
- Συνδεθείτε στο σύστημα CI/CD που προτιμάτε (Azure DevOps, GitHub Actions κ.λπ.)
- Υλοποίηση ροών εργασίας έγκρισης με βάση τα αποτελέσματα των δοκιμών
- Ενημέρωση κατάστασης ανάπτυξης με βάση τα αποτελέσματα των δοκιμών
Αυτή η ενσωμάτωση σάς επιτρέπει να διατηρήσετε τις υπάρχουσες επενδύσεις CI / CD ενώ προσθέτετε τις δυνατότητες του Test Engine στη διαδικασία ALM. Ο προσαρμοσμένος κεντρικός υπολογιστής λειτουργεί ως γέφυρα μεταξύ Power Platform των εγγενών δυνατοτήτων ALM και της εξωτερικής υποδομής δοκιμών σας.
Μπορείτε να επεκτείνετε τη διοχέτευση χρησιμοποιώντας Power Platform προσαρμοσμένο κεντρικό υπολογιστή ή να ενσωματώσετε απευθείας την εντολή εκτέλεσης δοκιμής pac για να εκτελέσετε τα σενάρια δημιουργίας σας.
Ακολουθεί ένα παράδειγμα ενός αρχείου YAML διοχέτευσης Azure DevOps που παρουσιάζει τον τρόπο ρύθμισης και εκτέλεσης 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()
Στοιχεία αναφοράς
Τα ακόλουθα στοιχεία αναφοράς μπορεί να είναι χρήσιμα καθώς δημιουργείτε τη διοχέτευση δοκιμής αυτοματισμού.
Ακολουθεί ένα παράδειγμα μιας 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
Σχετικά άρθρα
Μάθετε σχετικά με τη σύνταξη Test Engine YAML
Ρύθμιση ελέγχου ταυτότητας για τις δοκιμές σας
Δοκιμάστε εφαρμογές καμβά, εφαρμογές βάσει μοντέλου ή επεκτάσεις Dataverse
Κατανόηση του Power Platform ALM