Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Catatan
Fitur pratinjau tidak dibuat untuk penggunaan produksi dan mungkin memiliki fungsionalitas yang dibatasi. Fitur ini tersedia sebelum rilis resmi agar pelanggan bisa memperoleh akses awal dan memberikan tanggapan.
Gambaran Umum
Power Apps Test Engine menggunakan Playwright sebagai teknologi otomatisasi browser intinya. Integrasi ini memberi Test Engine kemampuan pengujian yang kuat, andal, dan lintas browser sambil menambahkan beberapa lapisan abstraksi untuk menyederhanakan pembuatan pengujian untuk Power Platform aplikasi.
Bagaimana Test Engine menyempurnakan Playwright
Meskipun Playwright menawarkan kemampuan otomatisasi browser yang sangat baik, Test Engine memperluas kemampuan ini secara khusus untuk Power Platform:
| Peningkatan Mesin Uji | Description |
|---|---|
| Abstraksi Tingkat Aplikasi | Test Engine bekerja dengan objek tingkat aplikasi, bukan elemen DOM, membuat pengujian lebih tahan terhadap perubahan UI |
| Power Fx Integrasi | Test Engine menambahkan Power Fx dukungan, memungkinkan pendekatan low-code untuk penulisan pengujian |
| Otentikasi Bawaan | Menangani Microsoft Entra mekanisme autentikasi bawaan dan skenario akses bersyarat |
| Dataverse Integrasi | Integrasi langsung dengan Dataverse memungkinkan pengujian end-to-end yang komprehensif |
| Penyedia Khusus | Penyedia yang dioptimalkan untuk aplikasi Canvas dan aplikasi berbasis Model |
Implementasi teknis
Bagian berikut menjelaskan bagaimana Test Engine dibangun di atas fondasi otomatisasi browser Playwright dan mengintegrasikannya dengan Power Platform abstraksi tertentu, memungkinkan otomatisasi pengujian yang kuat dan dapat dipelihara.
Fondasi otomatisasi browser
Test Engine menggunakan kemampuan inti Playwright untuk otomatisasi browser yang konsisten:
- Dukungan lintas browser untuk Chrome, Firefox, dan Microsoft Edge
- Mekanisme tunggu andal yang secara otomatis menunggu elemen siap
- Intersepsi permintaan jaringan untuk mensimulasikan respons API
- Alat pelacakan dan penelusuran kesalahan untuk mendiagnosis kegagalan pengujian
Integrasi arsitektur Test Engine
- Lapisan Penyedia: Lapisan penyedia di Test Engine berinteraksi langsung dengan API Playwright untuk mengontrol perilaku browser
- Model Objek: Alih-alih bekerja dengan elemen DOM mentah, Test Engine memetakan ke model objek khusus aplikasi
- Power Fx Lapisan: Langkah-langkah pengujian yang ditulis ditafsirkan Power Fx dan dijalankan melalui lapisan penyedia
Fitur teknis utama
Bagian berikut menyoroti fitur teknis penting yang ditambahkan Test Engine di atas Playwright, termasuk pemilih khusus aplikasi, manajemen konteks browser, dan akses langsung ke fungsi Playwright untuk skenario lanjutan.
Pemilih khusus aplikasi
Test Engine menggunakan pemilih khusus aplikasi, bukan CSS pemilih XPath :
# Test Engine (using app-level selectors)
- testSteps: |
Select(Button1)
# Equivalent in raw Playwright (using DOM selectors)
Select(Button1)
# page.locator('div[data-control-name="Button1"]').click();
Manajemen konteks browser
Test Engine mengelola konteks browser untuk mendukung berbagai skenario autentikasi:
# Test Engine handles browser context automatically
pac test run `
--provider canvas `
--test-plan-file testplan.te.yaml `
--tenant $tenantId `
--environment-id $environmentId
Fungsi Penulis Drama Langsung
Meskipun Test Engine mengabstraksi banyak interaksi Playwright, ada skenario di mana mengakses kemampuan Playwright secara langsung bisa berharga. Test Engine menyediakan beberapa fungsi pratinjau yang memungkinkan interaksi langsung dengan Playwright dari dalam langkah pengujian Anda Power Fx .
Menggunakan fungsi Playwright di Test Engine
Test Engine menyertakan fungsi pratinjau berikut yang memungkinkan Anda menerapkan kemampuan pemilihan elemen Playwright:
| Function | Description | Contoh |
|---|---|---|
| Pratinjau.Penulis DramaAksi | Menjalankan tindakan pada elemen menggunakan CSS atau pemilih DOM | Preview.PlaywrightAction("//button", "click") Lihat Operasi Aksi Penulis Drama Umum |
| Pratinjau.PlaywrightActionValue | Menjalankan tindakan yang memerlukan parameter nilai | Preview.PlaywrightActionValue("//input[@data-id='1']", "fill", "Hello") Lihat Operasi Nilai Aksi Penulis Drama Umum |
| Pratinjau.Penulis DramaSkrip | Eksekusi skrip C# kustom yang berinteraksi dengan Playwright | Preview.PlaywrightScript("sample.csx") Lihat Lanjutan: Skrip Penulis Drama Kustom |
| Pratinjau.Jeda | Jeda eksekusi pengujian dan tampilkan Inspektur Penulis Drama | Preview.Pause() |
Catatan
Untuk menggunakan fungsi pratinjau ini, Anda harus menambahkan fungsi pratinjau ke daftar yang diizinkan di bagian pengaturan pengujian Anda.
Operasi aksi Penulis Drama Umum
Operasi berikut dapat dilakukan dengan Preview.PlaywrightAction:
| Tindakan | Description | Contoh |
|---|---|---|
click |
Pemilihan elemen menggunakan peristiwa klik | Preview.PlaywrightAction("//button[@id='submit']", "click") |
exists |
Memeriksa apakah ada elemen | Preview.PlaywrightAction("//div[@class='error-message']", "exists") |
wait |
Tunggu elemen tersedia | Preview.PlaywrightAction("//table[@data-loading='false']", "wait") |
Operasi nilai aksi Playwright umum
Operasi berikut dapat dilakukan dengan Preview.PlaywrightActionValue:
| Tindakan | Description | Contoh |
|---|---|---|
fill |
Mengisi bidang formulir dengan teks | Preview.PlaywrightActionValue("//input[@name='search']", "fill", "Product name") |
select |
Pilih opsi dari daftar pilihan | Preview.PlaywrightActionValue("//select", "select", "Option2") |
setAttribute |
Mengatur atribut pada elemen | Preview.PlaywrightActionValue("//div", "setAttribute", "data-custom='value'") |
Kapan menggunakan fungsi penulis drama langsung
Meskipun abstraksi tingkat aplikasi lebih disukai, fungsi penulis drama langsung berguna dalam skenario berikut:
- Interaksi UI kompleks yang tidak tercakup dalam fungsi Test Engine standar
- Komponen pihak ketiga dalam Power Platform aplikasi yang memerlukan penanganan khusus
- Men-debug skenario pengujian kompleks di mana diperlukan lebih banyak kontrol
- Validasi lanjutan status atau properti elemen
Contoh: Pendekatan gabungan
Contoh ini menunjukkan menggabungkan abstraksi tingkat aplikasi dengan tindakan Playwright langsung:
testSteps: |
# Use app-level abstraction for Power Apps control
Select(SubmitButton);
# Use direct Playwright action for a third-party component
Preview.PlaywrightAction("//div[@class='custom-calendar']//button[@data-day='15']", "click");
# Wait for a specific condition using Playwright
Preview.PlaywrightAction("//div[@data-status='complete']", "wait");
# Resume using app-level abstractions
Assert(Label1.Text = "Submission Complete");
Lanjutan: Skrip Penulis Drama Kustom
Untuk skenario yang sangat khusus, Anda dapat membuat skrip Playwright kustom:
- Buat
.csxfile dengan logika Playwright kustom Anda - Referensi yang diperlukan Rakitan Playwright
- Menerapkan struktur kelas yang diperlukan
- Panggil skrip dari langkah pengujian Anda
// sample.csx
#r "Microsoft.Playwright.dll"
#r "Microsoft.Extensions.Logging.dll"
using Microsoft.Playwright;
using Microsoft.Extensions.Logging;
public class PlaywrightScript {
public static void Run(IBrowserContext context, ILogger logger) {
Execute(context, logger).Wait();
}
public static async Task Execute(IBrowserContext context, ILogger logger) {
var page = context.Pages.First();
// Custom Playwright logic here
}
}
Catatan
Preview.PlaywrightScript hanya diimplementasikan untuk build debug Test Engine yang dibuat dari sumber, bukan di alat yang dirilis pac test run .
Integrasi dengan proses pengembangan
Bagian berikut menjelaskan bagaimana Test Engine dan Playwright dapat digunakan di pengembangan lokal dan lingkungan CI/CD, mendukung berbagai alur kerja mulai dari penelusuran kesalahan interaktif hingga eksekusi alur otomatis.
Pembangunan lokal
Untuk pengembangan lokal, Test Engine menyediakan lingkungan yang lengkap:
- Eksekusi browser lokal dengan visibilitas UI
- Eksekusi pengujian langkah demi langkah
- Log dan diagnostik terperinci
Integrasi CI/CD
Di lingkungan CI/CD, Test Engine dapat menjalankan Playwright dalam mode tanpa kepala:
# Example Azure DevOps pipeline step
- task: PowerShell@2
displayName: 'Run Test Engine Tests'
inputs:
script: |
pac test run `
--provider canvas `
--test-plan-file "$(Build.SourcesDirectory)/tests/testplan.te.yaml" `
--tenant "$(TenantId)" `
--environment-id "$(EnvironmentId)"
Praktik terbaik
Saat bekerja dengan integrasi Playwright Test Engine:
- Berfokus pada objek tingkat aplikasi, bukan elemen DOM
- Gunakan Power Fx fungsi untuk logika kompleks daripada JavaScript mentah
- Manfaatkan mekanisme autentikasi bawaan
- Cadangkan fungsi Playwright langsung untuk skenario di mana abstraksi tingkat aplikasi tidak mencukupi
- Tinjau pengujian yang dihasilkan untuk mengoptimalkan keterbacaan dan pemeliharaan