Kongsi melalui


Format YAML Power Apps Test Engine (pratonton)

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.

Ujian ditakrifkan dalam YAML mengikut garis panduan yang sama seperti yang dilakukan oleh Power Fx. Ketahui lebih lanjut tentang tatabahasa formula Power Fx YAML.

Lihat folder PowerApps-TestEngine/samples untuk contoh terperinci.

Definisi skema YAML

Hartanah Description
testSuite Mentakrifkan satu suite ujian, kes ujian dalam suite ujian dan konfigurasi khusus untuk suite ujian
Tetapan ujian Mentakrifkan seting untuk suite ujian yang digunakan semula merentas berbilang kes ujian
persekitaranPembolehubah Mentakrifkan pembolehubah yang berpotensi berubah apabila apl dialihkan merentas persekitaran yang berbeza

testSuite

Digunakan untuk mentakrifkan satu ujian.

Hartanah Jenis Description
persona rentetan Diperlukan. Pengguna yang log masuk untuk melakukan ujian. Mesti sepadan dengan persona yang disenaraikan dalam bahagian Pengguna .
testCases Kes Ujian Diperlukan. Mentakrifkan kes ujian dalam suite ujian. Kes ujian yang terkandung dalam suite ujian dijalankan secara berurutan. Keadaan apl dikekalkan merentas semua kes ujian dalam suite.
testSuiteName rentetan Diperlukan. Nama suite ujian.
appLogicalName rentetan Tidak wajib Nama logik apl yang akan dilancarkan. Ia boleh diperolehi daripada penyelesaian. Untuk apl kanvas, anda perlu menambahkannya pada penyelesaian untuk mendapatkannya. Lihat Cara mengenal pasti permohonan anda dalam pelan ujian
appId GUID Tidak wajib ID apl yang akan dilancarkan. Diperlukan dan digunakan hanya apabila appLogicalName tidak hadir. ID Apl hendaklah digunakan hanya untuk apl kanvas yang tiada dalam penyelesaian. Lihat Cara mengenal pasti permohonan anda dalam pelan ujian
networkRequestMocks RangkaianPermintaanEjekan Tidak wajib Mentakrifkan ejekan permintaan rangkaian yang diperlukan untuk ujian.
onTestCaseComplete rentetan Tidak wajib Mentakrifkan langkah yang perlu dicetuskan untuk setiap kes ujian dalam suite selepas kes selesai dilaksanakan.
onTestCaseStart rentetan Tidak wajib Mentakrifkan langkah yang perlu dicetuskan untuk setiap kes ujian dalam suite sebelum kes mula dilaksanakan.
onTestSuiteComplete rentetan Tidak wajib Mentakrifkan langkah yang perlu dicetuskan selepas suite selesai dilaksanakan.
testSuiteDescription rentetan Tidak wajib Maklumat tambahan menerangkan perkara yang dilakukan oleh suite ujian.

Bagaimana untuk mengenal pasti permohonan anda dalam pelan ujian

Anda perlu menetapkan sama ada appLogicalName atau appId untuk mengenal pasti permohonan anda. Yang anda gunakan bergantung pada sama ada apl anda ditakrifkan dalam penyelesaian.

Apabila anda mentakrifkan apl anda dalam penyelesaian, ujian anda kekal mudah alih merentas persekitaran. Tetapkan appLogicalName sifat untuk menunjukkan bahawa apl adalah berasaskan penyelesaian.

Untuk mencari nama logik apl:

  1. Buka penyelesaian yang mengandungi apl anda dalam Power Apps
  2. Gunakan Nama ( bukan Nama paparan) dalam senarai. Nilai nama termasuk awalan penyesuaian untuk penerbit penyelesaian.

Apl kendiri

Apabila apl anda tidak ditakrifkan dalam penyelesaian, anda perlu menggunakan sifat tersebut appId .

Untuk mencari ID apl:

  1. Cari apl dalam senarai Power Apps
  2. Buka Butiran dan perhatikan GUID ID Apl

RangkaianPermintaanEjekan

Hartanah Jenis Description
requestURL rentetan Diperlukan. URL permintaan yang mendapat respons olok-olok. Corak glob diterima
responseDataFile rentetan Diperlukan. Fail teks dengan kandungan respons olok-olok. Semua teks dalam fail ini dibaca sebagai respons
headers tatasusunan Tidak wajib Senarai medan pengepala dalam permintaan dalam format [fieldName: fieldValue]
method rentetan Tidak wajib Kaedah permintaan (GET, POST, dll.)
requestBodyFile rentetan Tidak wajib Fail teks dengan isi permintaan. Semua teks dalam fail ini dibaca sebagai isi permintaan

Untuk sifat pilihan, jika tiada nilai ditentukan, penghalaan digunakan untuk semua. Sebagai contoh, jika method null, kami menghantar semula respons olok-olok apa sahaja kaedahnya selagi sifat lain semuanya sepadan.

Untuk aplikasi Sharepoint/Dataverse/Connector, requestURL dan method boleh sama untuk semua permintaan. x-ms-request-method dan x-ms-request-url pengepala dalam mungkin perlu dikonfigurasikan dalam kes itu untuk mengenal pasti permintaan yang berbeza.

Kes Ujian

Hartanah Jenis Description
testCaseName rentetan Diperlukan. Nama kes ujian yang digunakan dalam melaporkan kejayaan dan kegagalan
testSteps Langkah-langkah Ujian Diperlukan. Satu set fungsi Power Fx yang menerangkan langkah-langkah yang diperlukan untuk melaksanakan kes ujian. Lihat contoh TestSteps
testCaseDescription Tidak Tidak wajib Maklumat tambahan menerangkan perkara yang dilakukan oleh kes ujian

Langkah-langkah Ujian

  • TestSteps boleh menggunakan mana-mana fungsi Test Engine Power Fx sedia ada atau fungsi ujian khusus yang ditakrifkan oleh rangka kerja ini.
  • Nilai hendaklah bermula dengan simbol paip (|) untuk membolehkan ungkapan YAML berbilang baris diikuti dengan tanda sama dengan (=) untuk menunjukkan bahawa ia adalah ungkapan Power Fx
  • Fungsi hendaklah dipisahkan dengan titik koma (;).
  • Komen boleh digunakan dan harus bermula dengan aksara garis miring terbalik berganda (//).

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");

Tetapan ujian

Digunakan untuk menentukan tetapan untuk ujian dalam pelan ujian.

Hartanah Jenis Description
browserConfigurations Konfigurasi Penyemak Imbas[] Diperlukan. Senarai konfigurasi penyemak imbas untuk diuji. Sekurang-kurangnya satu penyemak imbas mesti ditentukan.
extensionModules Modul sambungan Tidak wajib Mengandungi data tentang sambungan untuk didayakan.
filePath rentetan Tidak wajib Laluan fail ke fail yaml yang berasingan dengan semua tetapan ujian. Jika disediakan, ia akan mengatasi semua tetapan ujian dalam pelan ujian.
headless boolean Tidak wajib Lalai ialah benar. Jika ditetapkan kepada palsu, penyemak imbas muncul semasa pelaksanaan ujian.
locale rentetan Tidak wajib Sintaks tempatan/budaya di mana kes ujian atau langkah ujian ditulis. Jika tidak ditentukan, CultureInfo.CurrentCulture digunakan untuk tempatan secara lalai untuk menghuraikan langkah ujian. Lihat Pertimbangan rantau dan bahasa
recordVideo boolean Tidak wajib Lalai ialah salah. Jika ditetapkan kepada benar, rakaman video ujian ditangkap.
timeout Integer Tidak wajib Nilai tamat masa dalam milisaat. Lalai ialah 30,000 milisaat (30s). Jika sebarang operasi mengambil masa lebih lama daripada had tamat masa, ia menamatkan ujian dengan kegagalan.
powerFxTestTypes name value Pasangan Tidak wajib Senarai nama jenis dan definisi jenis Power Fx. Lihat contoh powerFxTestTypes
testFunctions description code Pasangan Tidak wajib Senarai penerangan dan definisi fungsi Power Fx. Lihat contoh testFunctions

Modul sambungan

Mengandungi data tentang sambungan untuk didayakan.

Hartanah Jenis Description
enable bool Sama ada modul sambungan didayakan atau tidak.
allowPowerFxNamespaces senarai Senarai ruang nama PowerFx untuk didayakan.
parameters Pasangan nilai utama Sifat dengan nilai untuk mengawal modul sambungan. Pada masa ini, hanya parameter boolean enableDataverseFunctions yang sah untuk ini.

Contoh ini menunjukkan cara mendayakan ruang nama PowerFx Preview :

testSettings:
  extensionModules:
    enable: true
    allowPowerFxNamespaces:
    - Preview

Ketahui lebih lanjut tentang fungsi pratonton

Pertimbangan wilayah dan bahasa

Test Engine menyokong pelbagai tetapan bahasa dan serantau seperti pemisah perpuluhan dan senarai. Sifat mengawal testSettings.locale tingkah laku ini. Untuk maklumat lanjut, lihat Sokongan Global dalam Microsoft Power Fx.

Lihat konfigurasi sampel ini pada repositori GitHubPowerApps-TestEngine:

Contoh powerFxTestTypes

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

Contoh ini menunjukkan cara mentakrifkan jenis Power Fx tersuai untuk digunakan dalam kes ujian anda. Jenis ditakrifkan ControlName sebagai rekod dengan satu Text medan, manakala Options jenis ditakrifkan sebagai jadual rekod, setiap satu mengandungi Name medan jenis Text dan Value medan jenis Number. Jenis tersuai boleh digunakan untuk mencipta senario ujian yang lebih kompleks dan khusus, meningkatkan fleksibiliti dan kuasa definisi ujian 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 ujian ini menunjukkan cara mentakrifkan fungsi Power Fx tersuai untuk digunakan dalam kes ujian anda. Fungsi ini WaitUntilVisible menggunakan pemilih DOM untuk menunggu sehingga kawalan tertentu kelihatan, menggunakan tindakan Playwright. Fungsi GetOptions mendapatkan semula pilihan untuk kawalan tertentu daripada Apl Didorong Model (MDA), menggunakan kawalan Power Fx. Fungsi tersuai ini meningkatkan fleksibiliti dan kuasa definisi ujian anda, membolehkan senario ujian yang lebih kompleks dan khusus.

Konfigurasi Penyemak Imbas

Setiap tetapan ujian memerlukan sekurang-kurangnya satu BrowserConfiguration.

Hartanah Jenis Description
browser rentetan Diperlukan. Pelayar yang akan dilancarkan semasa menguji. Sepatutnya sepadan dengan penyemak imbas yang disokong oleh Playwright.
device rentetan Tidak wajib Peranti untuk meniru semasa melancarkan penyemak imbas. Harus sepadan dengan peranti yang disokong oleh Penulis Drama
screenHeight Integer Tidak wajib Ketinggian skrin yang akan digunakan semasa melancarkan penyemak imbas. Jika ditentukan, screenWidth mesti juga ditentukan.
screenWidth Integer Tidak wajib Lebar skrin untuk digunakan semasa melancarkan penyemak imbas. Jika ditentukan, screenHeight mesti juga ditentukan.

persekitaranPembolehubah

Anda boleh menyimpan pelbagai jenis nilai sebagai nilai persekitaran, tetapi kes yang paling biasa ialah menyimpan maklumat kelayakan dengan senarai pengguna.

Pengguna

Untuk memastikan kelayakan disimpan dengan cara yang selamat, definisi ujian merujuk pengguna menggunakan .personaName Menyimpan kelayakan dalam fail pelan ujian tidak disokong.

Contoh:

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

Digunakan personaName sebagai sebahagian daripada definisi ujian untuk menunjukkan pengguna yang hendak menjalankan ujian.

Mekanisme storan kelayakan yang disokong

Untuk menyimpan kelayakan sebagai pembolehubah persekitaran, anda boleh mengesetkannya seperti berikut:

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

Dalam YAML, dua sifat perlu ditakrifkan untuk menunjukkan bahawa kelayakan pengguna ini disimpan dalam pembolehubah persekitaran:

  • emailKey: Pembolehubah persekitaran yang digunakan untuk menyimpan e-mel pengguna.

Contoh YAML:

    - personaName: "User1"
      emailKey: "user1Email"

Contoh PowerShell untuk mengesetkan kelayakan pengguna berdasarkan YAML:

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

Lihat juga

Gambaran keseluruhan Enjin Ujian Power Apps (pratonton)
Power Apps Fungsi Enjin Ujian Power Fx (pratonton)