Udostępnij przez


Rozszerzalność aparatu testowego (wersja zapoznawcza)

Notatka

Funkcje w wersji zapoznawczej nie są przeznaczone do użytku w środowiskach produkcyjnych i mogą mieć ograniczoną funkcjonalność. Te funkcje są udostępniane przed oficjalnym wydaniem, dzięki czemu klienci mogą szybciej uzyskać do nich dostęp i przekazać opinie na ich temat.

Omówienie

Power Apps Test Engine oferuje solidną strukturę rozszerzalności, która pozwala na rozszerzenie podstawowych możliwości testowania za pomocą różnych punktów rozszerzeń. Z tego artykułu dowiesz się:

  • Jak firma Microsoft podpisuje i weryfikuje rozszerzenia innych firm
  • Jak działa model rozszerzalności przy użyciu zarządzanej struktury rozszerzalności (MEF)
  • Opcje tworzenia własnych rozszerzeń przez organizacje

Składniki podpisane przez firmę Microsoft

Ważne

W fazie publicznej wersji zapoznawczej polecenie uruchomienia testu pac ładuje tylko rozszerzenia podpisane przez firmę Microsoft. Taka konstrukcja zapewnia bezpieczeństwo, stabilność i wydajność platformy Test Engine.

Firma Microsoft tworzy, podpisuje i weryfikuje składniki pierwszej firmy, aby upewnić się, że spełniają one standardy jakości i zabezpieczeń. Do tych składników należą:

  • Podstawowi dostawcy uwierzytelniania
  • Dostawcy aplikacji kanwy i aplikacji opartych na modelu
  • Standardowe Power Fx funkcje i akcje

Ramy rozszerzalności (MEF)

Aparat testowy używa zarządzanej struktury rozszerzalności (MEF) w celu włączenia architektury podłączanej. Ta struktura umożliwia trzy podstawowe typy rozszerzeń:

Rozszerzenia uwierzytelniania

Rozszerzenia uwierzytelniania umożliwiają różne sposoby uwierzytelniania za pomocą Power Platform:

  • Uwierzytelnianie stanu pamięci — domyślna metoda uwierzytelniania oparta na przeglądarce
  • Uwierzytelnianie oparte na certyfikatach — do wykonywania testów nieinterakcyjnych
  • Niestandardowi dostawcy uwierzytelniania — dla wyspecjalizowanych scenariuszy uwierzytelniania

Aby uzyskać więcej informacji, zobacz Uwierzytelnianie w module Test Engine.

Rozszerzenia dostawcy

Rozszerzenia dostawcy umożliwiają testowanie różnych typów aplikacji:

  • Dostawca aplikacji kanwy — do testowania Power Apps aplikacji kanwy
  • Dostawca aplikacji oparty na modelu — do testowania Dataverse aplikacji opartych na modelu
  • Power Fx Dostawca - Do niezależnego wykonywania Power Fx instrukcji
  • Dostawca portalu- Do automatyzacji operacji w Power Apps

Aby uzyskać więcej informacji, zobacz Aplikacje kanwy, Aplikacje sterowane modelem i Dataverse Rozszerzenia.

Power Fx Rozszerzenia

Power Fx Rozszerzenia dodają nowe możliwości testowania za pomocą funkcji niestandardowych:

  • Funkcje zdefiniowane przez użytkownika — funkcje niskokodowe zdefiniowane w planie testów
  • Implementacje funkcji ReflectionFunction języka C# — funkcje niestandardowe zaimplementowane w modułach języka C#

Aby uzyskać więcej informacji, zobacz Power Fx Functions i C# ReflectionFunction Implementacje.

Opcje rozwoju rozszerzenia

Organizacje mają wiele opcji rozszerzania Test Engine:

Korzystanie z wersji open source

Test Power Apps Engine jest dostępny jako projekt open source na licencji MIT. Własne firmy Microsoft, zespoły innych firm i organizacje mogą:

  • Tworzenie nowych dostawców dla wyspecjalizowanych scenariuszy testowych
  • Opracowywanie niestandardowych mechanizmów uwierzytelniania
  • Tworzenie nowych implementacji funkcji ReflectionFunction języka C#
  • Tworzenie modułów, które rozszerzają podstawową funkcjonalność
  • Przesyłanie wkładów do rozpatrzenia w produkcie podstawowym

Power Fx Funkcje zdefiniowane przez użytkownika

W przypadku prostszych scenariuszy można tworzyć funkcje zdefiniowane przez użytkownika bezpośrednio w planach testów:

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())

Niestandardowe funkcje języka C# Power Fx z funkcją ReflectionFunction

W przypadku bardziej złożonych scenariuszy organizacje mogą opracowywać niestandardowe funkcje języka C#, implementując ReflectionFunction klasę i rejestrując je za pomocą modułu:

// 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...
}

Współpraca z zespołem Test Engine

Organizacje, które opracowują wartościowe rozszerzenia za pomocą silnika testowego typu open source, mogą rozważyć utworzenie żądania ściągnięcia dla swoich rozszerzeń, aby udostępnić je w oficjalnym produkcie. Proces ten zazwyczaj obejmuje:

  1. Rozwój - Utwórz rozszerzenie za pomocą silnika testowego typu open source
  2. Walidacja — dokładnie przetestuj swoje rozszerzenie we własnym środowisku
  3. Współpraca - Współpracuj z zespołem Core Test Engine, aby ocenić rozszerzenie
  4. Integracja — w przypadku zatwierdzenia firma Microsoft podpisuje i integruje rozszerzenie z produktem

Ten model współpracy umożliwia innowacje przy jednoczesnym zachowaniu bezpieczeństwa i niezawodności oficjalnego produktu Test Engine.

Techniczne punkty integracji

W poniższych sekcjach opisano, w jaki sposób rozszerzalność aparatu testowego integruje się z podstawowymi technologiami, takimi jak Playwright i cykl życia funkcji. Zrozumienie tych punktów integracji pomaga w efektywnym opracowywaniu i wdrażaniu rozszerzeń niestandardowych.

Integracja z dramaturgiem

Power Apps Test Engine jest zbudowany na bazie Playwright, który stanowi podstawę do automatyzacji przeglądarki. Niestandardowe rozszerzenia mogą wchodzić w interakcje z IBrowserContext firmy Playwright, aby tworzyć zaawansowane możliwości testowania oparte na przeglądarce.

Cykl życia funkcji

Nowe rozszerzenia są zgodne z cyklem życia funkcji:

  1. Przestrzeń nazw w wersji zapoznawczej — nowe rozszerzenia są najpierw dostępne w przestrzeni nazw w wersji zapoznawczej na potrzeby wczesnego testowania
  2. Przestrzeń nazw TestEngine — po walidacji rozszerzenia są przenoszone do podstawowej przestrzeni nazw TestEngine

Korzyści z modelu rozszerzalności

Model rozszerzalności zapewnia znaczące korzyści:

  • Standaryzacja — komponenty podpisane przez firmę Microsoft zapewniają stałą jakość i bezpieczeństwo
  • Innowacyjność – model open source pozwala na innowacje kierowane przez społeczność
  • Elastyczność - Organizacje mogą tworzyć specjalistyczne rozszerzenia dla unikalnych wymagań
  • Integracja - Cenne rozszerzenia są brane pod uwagę do włączenia do oficjalnego produktu