Bagikan melalui


Ekstensibilitas Mesin Uji (pratinjau)

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 memiliki kerangka kerja ekstensibilitas yang kuat yang memungkinkan kemampuan pengujian inti diperluas melalui berbagai titik ekstensi. Artikel ini menjelaskan:

  • Cara Microsoft menandatangani dan memvalidasi ekstensi pihak pertama
  • Cara kerja model ekstensibilitas menggunakan Kerangka Kerja Ekstensibilitas Terkelola (MEF)
  • Opsi bagi organisasi untuk membuat ekstensi mereka sendiri

Komponen yang ditandatangani Microsoft

Penting

Selama fase pratinjau publik, perintah pac test run hanya memuat ekstensi yang ditandatangani Microsoft. Desain ini memastikan keamanan, stabilitas, dan kinerja platform Test Engine.

Microsoft membangun, menandatangani, dan memvalidasi komponen pihak pertama untuk memastikannya memenuhi standar kualitas dan keamanan. Komponen-komponen ini meliputi:

  • Penyedia autentikasi inti
  • Penyedia aplikasi kanvas dan aplikasi berbasis model
  • Fungsi dan tindakan standar Power Fx

Kerangka kerja ekstensibilitas (MEF)

Test Engine menggunakan Kerangka Kerja Ekstensibilitas Terkelola (MEF) untuk mengaktifkan arsitektur yang dapat dicolokkan. Kerangka kerja ini memungkinkan tiga jenis ekstensi utama:

Ekstensi autentikasi

Ekstensi autentikasi memungkinkan berbagai cara untuk mengautentikasi dengan Power Platform:

  • Autentikasi Status Penyimpanan - Metode autentikasi berbasis browser default
  • Autentikasi berbasis sertifikat - Untuk eksekusi pengujian non-interaktif
  • Penyedia Autentikasi Kustom- Untuk skenario autentikasi khusus

Untuk informasi selengkapnya, lihat Autentikasi di Mesin Pengujian.

Ekstensi penyedia

Ekstensi penyedia memungkinkan pengujian berbagai jenis aplikasi:

  • Penyedia Aplikasi Kanvas- Untuk menguji Power Apps aplikasi kanvas
  • Penyedia Aplikasi Berbasis Model- Untuk menguji Dataverse aplikasi berbasis model
  • Power Fx Penyedia - Untuk mengeksekusi Power Fx pernyataan secara independen
  • Penyedia Portal - Untuk mengotomatiskan operasi di Power Apps

Untuk informasi selengkapnya, lihat Aplikasi Kanvas, Aplikasi Berbasis Model, dan Dataverse Ekstensi.

Power Fx Ekstensi

Power Fx Ekstensi menambahkan kemampuan pengujian baru melalui fungsi kustom:

  • Fungsi yang ditentukan pengguna- Fungsi kode rendah yang ditentukan dalam rencana pengujian
  • Implementasi C# ReflectionFunction- Fungsi kustom yang diterapkan dalam modul C#

Untuk informasi selengkapnya, lihat Power Fx Implementasi Fungsi danC# ReflectionFunction.

Opsi pengembangan ekstensi

Organisasi memiliki beberapa opsi untuk memperluas Test Engine:

Menggunakan versi open source

Power Apps Test Engine tersedia sebagai proyek open source di bawah lisensi MIT. Microsoft pihak pertama, tim pihak ketiga, dan organisasi dapat:

  • Membuat penyedia baru untuk skenario pengujian khusus
  • Mengembangkan mekanisme autentikasi kustom
  • Membangun implementasi C# ReflectionFunction baru
  • Membuat modul yang memperluas fungsionalitas inti
  • Kirimkan kontribusi untuk dipertimbangkan dalam produk inti

Power Fx fungsi yang ditentukan pengguna

Untuk skenario yang lebih sederhana, Anda dapat membuat fungsi yang ditentukan pengguna secara langsung dalam rencana pengujian:

testSuite:
  testCases:
    - testCaseName: "Test with custom functions"
      userDefineFunctions:
        - name: "FormatDateString"
          parameters: [date]
          expression: "Text(date, 'yyyy-MM-dd')"
      steps:
        # Use the custom function in your test steps
        - action: PowerFxTestStep
          expression: FormatDateString(Now())

Fungsi C# Power Fx kustom dengan ReflectionFunction

Untuk skenario yang lebih kompleks, organisasi dapat mengembangkan fungsi C# kustom dengan mengimplementasikan ReflectionFunction kelas dan mendaftarkannya melalui modul:

// Define your function class
public class SampleFunction : ReflectionFunction
{
    public SampleFunction() : base(DPath.Root.Append(new DName("Preview")), "Sample", FormulaType.Blank)
    {
    }

    public BlankValue Execute()
    {
        Console.WriteLine("Sample function executed");
        return BlankValue.NewBlank();
    }
}

// Register your function in a module
[Export(typeof(ITestEngineModule))]
public class TestEngineSampleModule : ITestEngineModule
{
    public void RegisterPowerFxFunction(PowerFxConfig config, ITestInfraFunctions testInfraFunctions, 
        ITestWebProvider testWebProvider, ISingleTestInstanceState singleTestInstanceState, 
        ITestState testState, IFileSystem fileSystem)
    {
        config.AddFunction(new SampleFunction());
    }
    
    // Implement other required interface methods...
}

Kolaborasi dengan tim Test Engine

Organisasi yang mengembangkan ekstensi berharga menggunakan Mesin Pengujian sumber terbuka dapat mempertimbangkan untuk membuat permintaan tarik untuk ekstensi mereka agar tersedia di produk resmi. Prosesnya biasanya melibatkan:

  1. Pengembangan- Buat ekstensi Anda menggunakan Mesin Uji sumber terbuka
  2. Validasi - Uji ekstensi Anda secara menyeluruh di lingkungan Anda sendiri
  3. Kolaborasi - Bekerja dengan tim Core Test Engine untuk mengevaluasi ekstensi
  4. Integrasi - Jika disetujui, Microsoft menandatangani dan mengintegrasikan ekstensi ke dalam produk

Model kolaborasi ini memungkinkan inovasi sekaligus menjaga keamanan dan keandalan produk Test Engine resmi.

Poin integrasi teknis

Bagian berikut menjelaskan bagaimana ekstensibilitas Test Engine terintegrasi dengan teknologi inti seperti Playwright dan siklus hidup fitur. Memahami poin integrasi ini membantu Anda mengembangkan dan menerapkan ekstensi kustom secara efektif.

Integrasi penulis drama

Power Apps Test Engine dibangun di atas Playwright, yang menyediakan dasar untuk otomatisasi browser. Ekstensi khusus dapat berinteraksi dengan IBrowserContext Playwright untuk membuat kemampuan pengujian berbasis browser yang canggih.

Siklus Hidup Fitur

Ekstensi baru mengikuti Siklus Hidup Fitur:

  1. Namespace Pratinjau- Ekstensi baru pertama kali tersedia di namespace Pratinjau untuk pengujian awal
  2. Namespace TestEngine- Setelah validasi, ekstensi berpindah ke namespace inti TestEngine

Manfaat model ekstensibilitas

Model ekstensibilitas memberikan manfaat yang signifikan:

  • Standarisasi - Komponen yang ditandatangani Microsoft memastikan kualitas dan keamanan yang konsisten
  • Inovasi - Model open source memungkinkan inovasi berbasis komunitas
  • Fleksibilitas- Organisasi dapat membuat ekstensi khusus untuk persyaratan unik
  • Integrasi - Ekstensi berharga dipertimbangkan untuk dimasukkan ke dalam produk resmi