Ambil perhatian
Akses ke halaman ini memerlukan kebenaran. Anda boleh cuba log masuk atau menukar direktori.
Akses ke halaman ini memerlukan kebenaran. Anda boleh cuba menukar direktori.
Nota
Ciri pratonton bukan untuk kegunaan pengeluaran dan kefungsian mungkin terbatas. Ciri ini tersedia sebelum keluaran rasmi agar pelanggan boleh mendapat akses awal dan memberikan maklum balas.
Gambaran keseluruhan
Power Apps Test Engine menggunakan Playwright sebagai teknologi automasi penyemak imbas terasnya. Penyepaduan ini menyediakan Test Engine dengan keupayaan ujian yang berkuasa, boleh dipercayai dan merentas penyemak imbas sambil menambah beberapa lapisan abstraksi untuk memudahkan penciptaan ujian untuk Power Platform aplikasi.
Bagaimana Enjin Ujian meningkatkan Penulis Drama
Walaupun Playwright menawarkan keupayaan automasi penyemak imbas yang sangat baik, Test Engine memperluaskan keupayaan ini khusus untuk Power Platform:
| Peningkatan Enjin Ujian | Description |
|---|---|
| Abstraksi Peringkat Apl | Test Engine berfungsi dengan objek peringkat aplikasi dan bukannya elemen DOM, menjadikan ujian lebih berdaya tahan terhadap perubahan UI |
| Power Fx Integrasi | Test Engine menambah Power Fx sokongan, membolehkan pendekatan kod rendah untuk pengarang ujian |
| Pengesahan Terbina Dalam | Mekanisme Microsoft Entra pengesahan prabina mengendalikan senario capaian bersyarat dan |
| Dataverse Integrasi | Penyepaduan langsung dengan Dataverse membolehkan ujian hujung ke hujung yang komprehensif |
| Pembekal Khusus | Pembekal yang dioptimumkan untuk apl Kanvas dan apl dipacu Model |
Pelaksanaan teknikal
Bahagian berikut menerangkan cara Test Engine dibina berdasarkan asas automasi penyemak imbas Playwright dan menyepadukannya dengan Power Platform abstraksi tertentu, membolehkan automasi ujian yang teguh dan boleh diselenggara.
Asas automasi penyemak imbas
Test Engine menggunakan keupayaan teras Playwright untuk automasi penyemak imbas yang konsisten:
- Sokongan merentas penyemak imbas untuk Chrome, Firefox, dan Microsoft Edge
- Mekanisme menunggu yang boleh dipercayai yang secara automatik menunggu elemen siap
- Pemintasan permintaan rangkaian untuk mensimulasikan respons API
- Alat pengesanan dan penyahpepijatan untuk mendiagnosis kegagalan ujian
Integrasi seni bina Test Engine
- Lapisan Pembekal: Lapisan pembekal dalam Enjin Ujian antara muka terus dengan API Playwright untuk mengawal tingkah laku penyemak imbas
- Model Objek: Daripada bekerja dengan elemen DOM mentah, Enjin Ujian memetakan kepada model objek khusus aplikasi
- Power Fx Lapisan: Langkah ujian yang ditulis ditafsirkan Power Fx dan dilaksanakan melalui lapisan pembekal
Ciri-ciri teknikal utama
Bahagian berikut menyerlahkan ciri teknikal penting yang ditambahkan oleh Test Engine di atas Playwright, termasuk pemilih khusus apl, pengurusan konteks penyemak imbas dan akses terus kepada fungsi Playwright untuk senario lanjutan.
Pemilih khusus apl
Test Engine menggunakan pemilih khusus apl dan bukannya CSS atau XPath pemilih:
# 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();
Pengurusan konteks penyemak imbas
Test Engine menguruskan konteks penyemak imbas untuk menyokong pelbagai senario pengesahan:
# 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
Walaupun Test Engine mengabstraksi banyak interaksi Playwright, terdapat senario di mana mengakses keupayaan Playwright secara langsung boleh menjadi berharga. Test Engine menyediakan beberapa fungsi pratonton yang membolehkan interaksi langsung dengan Playwright dari dalam langkah ujian anda Power Fx .
Menggunakan fungsi Playwright dalam Test Engine
Test Engine termasuk fungsi pratonton berikut yang membolehkan anda menggunakan keupayaan pemilihan elemen Playwright:
| Function | Description | Contoh |
|---|---|---|
| Pratonton.Penulis DramaTindakan | Laksanakan tindakan pada elemen menggunakan CSS atau pemilih DOM | Preview.PlaywrightAction("//button", "click") Lihat Operasi Tindakan Penulis Drama Biasa |
| Pratonton.PlaywrightActionValue | Laksanakan tindakan yang memerlukan parameter nilai | Preview.PlaywrightActionValue("//input[@data-id='1']", "fill", "Hello") Lihat Operasi Nilai Tindakan Penulis Drama Biasa |
| Pratonton.Penulis DramaSkrip | Laksanakan skrip C# tersuai yang antara muka dengan Playwright | Preview.PlaywrightScript("sample.csx") Lihat Lanjutan: Skrip Penulis Drama Tersuai |
| Pratonton.Jeda | Jeda pelaksanaan ujian dan paparkan Pemeriksa Penulis Drama | Preview.Pause() |
Nota
Untuk menggunakan fungsi pratonton ini, anda mesti menambah fungsi pratonton pada senarai yang dibenarkan dalam bahagian tetapan ujian anda.
Operasi tindakan Penulis Drama biasa
Operasi berikut boleh dilakukan dengan Preview.PlaywrightAction:
| Tindakan | Description | Contoh |
|---|---|---|
click |
Pemilihan elemen menggunakan peristiwa klik | Preview.PlaywrightAction("//button[@id='submit']", "click") |
exists |
Semak sama ada elemen wujud | Preview.PlaywrightAction("//div[@class='error-message']", "exists") |
wait |
Tunggu sehingga elemen tersedia | Preview.PlaywrightAction("//table[@data-loading='false']", "wait") |
Operasi nilai tindakan penulis drama biasa
Operasi berikut boleh dilakukan dengan Preview.PlaywrightActionValue:
| Tindakan | Description | Contoh |
|---|---|---|
fill |
Isi medan borang dengan teks | Preview.PlaywrightActionValue("//input[@name='search']", "fill", "Product name") |
select |
Pilih pilihan daripada senarai pilihan | Preview.PlaywrightActionValue("//select", "select", "Option2") |
setAttribute |
Tetapkan atribut pada elemen | Preview.PlaywrightActionValue("//div", "setAttribute", "data-custom='value'") |
Bila hendak menggunakan fungsi Playwright langsung
Walaupun abstraksi peringkat aplikasi lebih diutamakan, fungsi Playwright langsung berguna dalam senario ini:
- Interaksi UI kompleks tidak dilindungi oleh fungsi Enjin Ujian standard
- Komponen pihak ketiga dalam Power Platform aplikasi yang memerlukan pengendalian khas
- Penyahpepijatan senario ujian kompleks di mana lebih kawalan diperlukan
- Pengesahan lanjutan keadaan atau sifat elemen
Contoh: Pendekatan gabungan
Contoh ini menunjukkan menggabungkan abstraksi peringkat apl dengan tindakan Penulis Drama 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 Tersuai
Untuk senario yang sangat khusus, anda boleh mencipta skrip Penulis Drama tersuai:
- Cipta
.csxfail dengan logik Penulis Drama tersuai anda - Rujukan diperlukan perhimpunan Penulis Drama
- Laksanakan struktur kelas yang diperlukan
- Panggil skrip daripada langkah ujian 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
}
}
Nota
Preview.PlaywrightScript hanya dilaksanakan untuk binaan nyahpepijat Test Engine yang dibina daripada sumber, bukan dalam alat yang dikeluarkan pac test run .
Integrasi dengan proses pembangunan
Bahagian berikut menerangkan cara Test Engine dan Playwright boleh digunakan dalam kedua-dua pembangunan tempatan dan persekitaran CI/CD, menyokong pelbagai aliran kerja daripada penyahpepijatan interaktif kepada pelaksanaan saluran paip automatik.
Pembangunan tempatan
Untuk pembangunan tempatan, Test Engine menyediakan persekitaran yang lengkap:
- Pelaksanaan penyemak imbas tempatan dengan keterlihatan UI
- Pelaksanaan ujian langkah demi langkah
- Log dan diagnostik terperinci
Penyepaduan CI/CD
Dalam persekitaran CI/CD, Test Engine boleh menjalankan Playwright dalam mod 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)"
Amalan terbaik
Apabila bekerja dengan penyepaduan Penulis Drama Test Engine:
- Fokus pada objek peringkat apl dan bukannya elemen DOM
- Gunakan Power Fx fungsi untuk logik kompleks dan bukannya JavaScript mentah
- Manfaatkan mekanisme pengesahan terbina dalam
- Simpan fungsi penulis drama langsung untuk senario di mana abstraksi peringkat aplikasi tidak mencukupi
- Semak ujian yang dijana untuk mengoptimumkan kebolehbacaan dan penyelenggaraan