Bagikan melalui


Format YAML Mesin Uji Power Apps (pratinjau)

Nota

Fitur pratinjau tidak dibuat untuk penggunaan produksi dan mungkin memiliki fungsionalitas yang dibatasi. Fitur-fitur ini tersedia sebelum rilis resmi sehingga pelanggan bisa mendapatkan akses awal dan memberikan umpan balik.

Pengujian didefinisikan dalam YAML mengikuti panduan yang sama seperti power Fx. Pelajari selengkapnya tentang tata bahasa rumus Power Fx YAML.

Lihat folder PowerApps-TestEngine/samples untuk contoh terperinci.

Definisi skema YAML

Harta benda Description
testSuite Mendefinisikan satu rangkaian pengujian, kasus pengujian di rangkaian pengujian dan konfigurasi khusus untuk rangkaian pengujian
testSettings Menentukan pengaturan untuk rangkaian pengujian yang digunakan kembali di beberapa kasus pengujian
environmentVariables Menentukan variabel yang berpotensi berubah saat aplikasi di-port di berbagai lingkungan

testSuite

Digunakan untuk menentukan satu pengujian.

Harta benda Tipe Description
persona string Dibutuhkan. Pengguna yang masuk untuk melakukan pengujian. Harus cocok dengan persona yang tercantum di bagian Pengguna .
testCases TestCases Dibutuhkan. Mendefinisikan kasus pengujian di rangkaian pengujian. Kasus pengujian yang terkandung dalam rangkaian pengujian dijalankan secara berurutan. Status aplikasi dipertahankan di semua kasus pengujian di suite.
testSuiteName string Dibutuhkan. Nama rangkaian pengujian.
appLogicalName string Optional. Nama logis aplikasi yang akan diluncurkan. Ini dapat diperoleh dari solusi. Untuk aplikasi kanvas, Anda perlu menambahkannya ke solusi untuk mendapatkannya. Lihat Cara mengidentifikasi aplikasi Anda dalam rencana pengujian
appId Panduan Optional. ID aplikasi yang akan diluncurkan. Diperlukan dan digunakan hanya saat appLogicalName tidak ada. ID Aplikasi harus digunakan hanya untuk aplikasi kanvas yang tidak ada dalam solusi. Lihat Cara mengidentifikasi aplikasi Anda dalam rencana pengujian
networkRequestMocks NetworkRequestMocks Optional. Menentukan tiruan permintaan jaringan yang diperlukan untuk pengujian.
onTestCaseComplete string Optional. Menentukan langkah-langkah yang perlu dipicu untuk setiap kasus pengujian dalam rangkaian setelah kasus selesai dieksekusi.
onTestCaseStart string Optional. Menentukan langkah-langkah yang perlu dipicu untuk setiap kasus pengujian dalam rangkaian sebelum kasus mulai dieksekusi.
onTestSuiteComplete string Optional. Menentukan langkah-langkah yang perlu dipicu setelah rangkaian selesai dijalankan.
testSuiteDescription string Optional. Informasi tambahan menjelaskan apa yang dilakukan rangkaian pengujian.

Cara mengidentifikasi aplikasi Anda dalam rencana pengujian

Anda perlu mengatur salah satu appLogicalName atau appId untuk mengidentifikasi aplikasi Anda. Yang Anda gunakan bergantung pada apakah aplikasi Anda ditentukan dalam solusi.

Saat Anda menentukan aplikasi dalam solusi, pengujian Anda tetap portabel di seluruh lingkungan. Atur appLogicalName properti untuk menunjukkan bahwa aplikasi berbasis solusi.

Untuk menemukan nama logis aplikasi:

  1. Buka solusi yang berisi aplikasi Anda di Power Apps
  2. Gunakan Nama (bukan Nama tampilan) dalam daftar. Nilai nama menyertakan awalan kustomisasi untuk penerbit solusi.

Aplikasi mandiri

Saat aplikasi Anda tidak ditentukan dalam solusi, Anda perlu menggunakan appId properti .

Untuk menemukan ID aplikasi:

  1. Temukan aplikasi di daftar Power Apps
  2. Buka Detail dan catat GUID ID Aplikasi

NetworkRequestMocks

Harta benda Tipe Description
requestURL string Dibutuhkan. URL permintaan yang mendapatkan respons tiruan. Pola glob diterima
responseDataFile string Dibutuhkan. File teks dengan konten respons tiruan. Semua teks dalam file ini dibaca sebagai respons
headers array Optional. Daftar bidang header dalam permintaan dalam format [fieldName: fieldValue]
method string Optional. Metode permintaan (GET, POST, dll.)
requestBodyFile string Optional. File teks dengan isi permintaan. Semua teks dalam file ini dibaca sebagai isi permintaan

Untuk properti opsional, jika tidak ada nilai yang ditentukan, perutean berlaku untuk semua. Misalnya, jika method null, kami mengirim kembali respons tiruan apa pun metodenya selama properti lain semuanya cocok.

Untuk aplikasi Sharepoint/Dataverse/Connector, requestURL dan method bisa sama untuk semua permintaan. x-ms-request-method dan x-ms-request-url di header perlu dikonfigurasi dalam hal ini untuk mengidentifikasi permintaan yang berbeda.

TestCases

Harta benda Tipe Description
testCaseName string Dibutuhkan. Nama kasus pengujian yang digunakan dalam melaporkan keberhasilan dan kegagalan
testSteps TestSteps Dibutuhkan. Sekumpulan fungsi Power Fx yang menjelaskan langkah-langkah yang diperlukan untuk melakukan kasus pengujian. Lihat contoh TestSteps
testCaseDescription Tidak. Optional. Informasi tambahan menjelaskan apa yang dilakukan kasus pengujian

TestSteps

  • TestSteps dapat menggunakan fungsi Test Engine Power Fx yang ada atau fungsi pengujian tertentu yang ditentukan oleh kerangka kerja ini.
  • Nilai harus dimulai dengan simbol pipa (|) untuk memungkinkan ekspresi YAML multibaris diikuti dengan tanda sama dengan (=) untuk menunjukkan bahwa itu adalah ekspresi Power Fx
  • Fungsi harus dipisahkan oleh titik koma (;).
  • Komentar dapat digunakan dan harus dimulai dengan karakter garis miring terbalik ganda (//).

Contoh TestSteps

testCases:
   - testCaseName: Fill in a city name and do the search
   testSteps: |
      = Screenshot("connectorapp_loaded.png");
         SetProperty(TextInput1.Text, "Atlanta");
         Select(Button1);
         Assert(Label4.Text = "You are seeing the mock response", "Validate the output is from the mock");
         Screenshot("connectorapp_end.png");

testSettings

Digunakan untuk menentukan pengaturan untuk pengujian dalam rencana pengujian.

Harta benda Tipe Description
browserConfigurations BrowserConfiguration[] Dibutuhkan. Daftar konfigurasi browser yang akan diuji. Setidaknya satu browser harus ditentukan.
extensionModules extensionModules Optional. Berisi data tentang ekstensi yang akan diaktifkan.
filePath string Optional. Jalur file ke file yaml terpisah dengan semua pengaturan pengujian. Jika disediakan, itu akan mengambil alih semua pengaturan pengujian dalam rencana pengujian.
headless Boolean Optional. Nilai default adalah benar. Jika diatur ke false, browser muncul selama eksekusi pengujian.
locale string Optional. Sintaks lokal/budaya tempat kasus pengujian atau langkah pengujian ditulis. Jika tidak ditentukan, CultureInfo.CurrentCulture digunakan untuk lokal secara default untuk mengurai langkah-langkah pengujian. Lihat Pertimbangan wilayah dan bahasa
recordVideo Boolean Optional. Secara default adalah false. Jika diatur ke true, rekaman video pengujian akan diambil.
timeout bilangan bulat Optional. Nilai batas waktu dalam milidetik. Defaultnya adalah 30.000 milidetik (30 detik). Jika ada operasi yang memakan waktu lebih lama dari batas waktu habis, operasi mengakhiri pengujian dalam kegagalan.
powerFxTestTypes name value pasang Optional. Daftar nama jenis dan definisi jenis Power Fx. Lihat contoh powerFxTestTypes
testFunctions description code pasang Optional. Daftar deskripsi dan definisi fungsi Power Fx. Lihat contoh testFunctions

extensionModules

Berisi data tentang ekstensi yang akan diaktifkan.

Harta benda Tipe Description
enable bool Apakah modul ekstensi diaktifkan atau tidak.
allowPowerFxNamespaces daftar Daftar namespace PowerFx yang akan diaktifkan.
parameters pasangan nilai kunci Properti dengan nilai untuk mengontrol modul ekstensi. Saat ini, hanya parameter boolean enableDataverseFunctions yang valid untuk ini.

Contoh ini memperlihatkan cara mengaktifkan namespace PowerFx Preview :

testSettings:
  extensionModules:
    enable: true
    allowPowerFxNamespaces:
    - Preview

Pelajari selengkapnya tentang fungsi pratinjau

Pertimbangan wilayah dan bahasa

Test Engine mendukung berbagai pengaturan bahasa dan regional seperti pemisah desimal dan daftar. Properti testSettings.locale mengontrol perilaku ini. Untuk informasi selengkapnya, lihat Dukungan Global di Microsoft Power Fx.

Lihat konfigurasi sampel ini di repositori GitHubPowerApps-TestEngine:

contoh powerFxTestTypes

powerFxTestTypes:
 - name: ControlName
   value: |
      {ControlName: Text} 
 - name: Options
   value: |
      [{Name: Text, Value: Number}]   

Contoh ini menunjukkan cara menentukan jenis Power Fx kustom untuk digunakan dalam kasus pengujian Anda. Jenis didefinisikan ControlName sebagai rekaman dengan satu Text bidang, sementara Options jenis didefinisikan sebagai tabel rekaman, masing-masing berisi Name bidang jenis Text dan Value bidang jenis Number. Jenis kustom dapat digunakan untuk membuat skenario pengujian yang lebih kompleks dan spesifik, meningkatkan fleksibilitas dan kekuatan definisi pengujian Anda.

contoh testFunctions

testFunctions:
 - description: Wait until control is visible using Document Object Model (DOM) selector
   code: |
    WaitUntilVisible(control: Text): Void = 
      Preview.PlaywrightAction(Concatenate("//div[@data-id='", control, "']"), "wait");
 - description: Get the options for a control using Power Fx control from Model Driven App (MDA)
   code: |
    GetOptions(control: ControlName): Options =
      Preview.GetOptions(control);

Contoh fungsi pengujian ini menunjukkan cara menentukan fungsi Power Fx kustom untuk digunakan dalam kasus pengujian Anda. Fungsi ini WaitUntilVisible menggunakan pemilih DOM untuk menunggu hingga kontrol tertentu terlihat, menggunakan tindakan Playwright. Fungsi GetOptions mengambil opsi untuk kontrol tertentu dari Model Driven App (MDA), menggunakan kontrol Power Fx. Fungsi kustom ini meningkatkan fleksibilitas dan kekuatan definisi pengujian Anda, memungkinkan skenario pengujian yang lebih kompleks dan spesifik.

BrowserConfiguration

Setiap testSettings memerlukan setidaknya satu BrowserConfiguration.

Harta benda Tipe Description
browser string Dibutuhkan. Browser yang akan diluncurkan saat pengujian. Harus cocok dengan browser yang didukung oleh Playwright.
device string Optional. Perangkat yang akan ditiru saat meluncurkan browser. Harus cocok dengan perangkat yang didukung oleh Playwright
screenHeight bilangan bulat Optional. Tinggi layar yang akan digunakan saat meluncurkan browser. Jika ditentukan, screenWidth juga harus ditentukan.
screenWidth bilangan bulat Optional. Lebar layar yang akan digunakan saat meluncurkan browser. Jika ditentukan, screenHeight juga harus ditentukan.

environmentVariables

Anda dapat menyimpan berbagai jenis nilai sebagai nilai lingkungan, tetapi kasus yang paling umum adalah menyimpan informasi kredensial dengan daftar pengguna.

users

Untuk memastikan kredensial disimpan dengan cara yang aman, definisi pengujian mereferensikan pengguna menggunakan personaName. Menyimpan kredensial dalam file paket pengujian tidak didukung.

Contoh:

environmentVariables:
    - users:
        - personaName: "User1"
          emailKey: "user1Email"
        - personaName: "User2"
          emailKey: "user2Email"

personaName digunakan sebagai bagian dari definisi pengujian untuk menunjukkan pengguna apa yang akan menjalankan pengujian.

Mekanisme penyimpanan kredensial yang didukung

Untuk menyimpan kredensial sebagai variabel lingkungan, Anda dapat mengaturnya sebagai berikut:

# In PowerShell - replace variableName and variableValue with the correct values
$env:variableName = "variableValue"

Dalam YAML, dua properti perlu didefinisikan untuk menunjukkan bahwa kredensial pengguna ini disimpan dalam variabel lingkungan:

  • emailKey: Variabel lingkungan yang digunakan untuk menyimpan email pengguna.

Contoh YAML:

    - personaName: "User1"
      emailKey: "user1Email"

Contoh PowerShell untuk mengatur kredensial pengguna berdasarkan YAML:

$env:user1Email = "someone@example.com"

Lihat juga

Gambaran umum Mesin Uji Power Apps (pratinjau)
Power Apps Fungsi Test Engine Power Fx (pratinjau)