Udostępnij przez


Format YAML aparatu testowego usługi Power Apps (wersja zapoznawcza)

Uwaga / Notatka

Funkcje w wersji zapoznawczej nie są przeznaczone do użytku w środowiskach produkcyjnych i mogą mieć ograniczoną funkcjonalność. Te funkcje są dostępne przed oficjalną wersją, aby klienci mogli uzyskać wczesny dostęp i przekazać opinię.

Testy są definiowane w języku YAML zgodnie z tymi samymi wytycznymi co usługa Power Fx. Dowiedz się więcej na temat gramatyki formuł YAML usługi Power Fx.

Aby uzyskać szczegółowe przykłady, zobacz folder PowerApps-TestEngine/samples .

Definicje schematu YAML

Majątek Description
testSuite Definiuje jeden zestaw testów, przypadki testowe w zestawie testów i konfigurację specyficzną dla zestawu testów
testSettings Definiuje ustawienia zestawu testów, które są ponownie używane w wielu przypadkach testowych
environmentVariables Definiuje zmienne, które mogą potencjalnie ulec zmianie w miarę przenoszenia aplikacji w różnych środowiskach

testSuite

Służy do definiowania jednego testu.

Majątek Typ Description
persona ciąg To jest wymagane. Użytkownik, który jest zalogowany w celu wykonania testu. Musi być zgodna z osobą wymienioną w sekcji Użytkownicy .
testCases Testowe litery To jest wymagane. Definiuje przypadki testowe w zestawie testów. Przypadki testowe zawarte w zestawach testów są uruchamiane sekwencyjnie. Stan aplikacji jest zachowywany we wszystkich przypadkach testowych w pakiecie.
testSuiteName ciąg To jest wymagane. Nazwa zestawu testów.
appLogicalName ciąg Opcjonalny. Logiczna nazwa aplikacji, która ma zostać uruchomiona. Można go uzyskać z rozwiązania. W przypadku aplikacji kanwy należy dodać ją do rozwiązania, aby je uzyskać. Zobacz How to identify your application in the test plan (Jak zidentyfikować aplikację w planie testowym)
appId Przewodnik Opcjonalny. Identyfikator aplikacji, która ma zostać uruchomiona. Wymagane i używane tylko wtedy, gdy appLogicalName nie jest obecne. Identyfikator aplikacji powinien być używany tylko dla aplikacji kanwy, które nie są w rozwiązaniu. Zobacz How to identify your application in the test plan (Jak zidentyfikować aplikację w planie testowym)
networkRequestMocks NetworkRequestMocks Opcjonalny. Definiuje makiety żądań sieciowych potrzebne do testu.
onTestCaseComplete ciąg Opcjonalny. Definiuje kroki, które należy wyzwolić dla każdego przypadku testowego w zestawie po zakończeniu wykonywania przypadku.
onTestCaseStart ciąg Opcjonalny. Definiuje kroki, które należy wyzwolić dla każdego przypadku testowego w zestawie przed rozpoczęciem wykonywania przypadku.
onTestSuiteComplete ciąg Opcjonalny. Definiuje kroki, które należy wyzwolić po zakończeniu wykonywania pakietu.
testSuiteDescription ciąg Opcjonalny. Dodatkowe informacje opisują, co robi pakiet testów.

Jak zidentyfikować aplikację w planie testów

Musisz ustawić opcję appLogicalName lub appId zidentyfikować aplikację. Którego używasz, zależy od tego, czy aplikacja jest zdefiniowana w rozwiązaniu.

Podczas definiowania aplikacji w ramach rozwiązań testy pozostają przenośne w różnych środowiskach. appLogicalName Ustaw właściwość , aby wskazać, że aplikacja jest oparta na rozwiązaniu.

Aby zlokalizować nazwę logiczną aplikacji:

  1. Otwieranie rozwiązania zawierającego aplikację w usłudze Power Apps
  2. Użyj nazwy (nie nazwy wyświetlanej) na liście. Wartość nazwy zawiera prefiks dostosowywania wydawcy rozwiązania.

Aplikacje autonomiczne

Jeśli aplikacja nie jest zdefiniowana w rozwiązaniu appId , musisz użyć właściwości .

Aby zlokalizować identyfikator aplikacji:

  1. Znajdź aplikację na liście usługi Power Apps
  2. Otwórz pozycję Szczegóły i zanotuj identyfikator GUID identyfikatora aplikacji

NetworkRequestMocks

Majątek Typ Description
requestURL ciąg To jest wymagane. Adres URL żądania, który otrzymuje pozorną odpowiedź. Wzorce globu są akceptowane
responseDataFile ciąg To jest wymagane. Plik tekstowy z pozorną zawartością odpowiedzi. Cały tekst w tym pliku jest odczytywany jako odpowiedź
headers macierz Opcjonalny. Lista pól nagłówka w żądaniu w formacie [fieldName: fieldValue]
method ciąg Opcjonalny. Metoda żądania (GET, POST itp.)
requestBodyFile ciąg Opcjonalny. Plik tekstowy z treścią żądania. Cały tekst w tym pliku jest odczytywany jako treść żądania

W przypadku właściwości opcjonalnych, jeśli nie określono żadnej wartości, routing ma zastosowanie do wszystkich. Jeśli na przykład method ma wartość null, wysyłamy z powrotem pozorną odpowiedź niezależnie od tego, jaka jest metoda, o ile wszystkie pozostałe właściwości są zgodne.

W przypadku aplikacji requestURLmethod sharepoint/Dataverse/Connector może być taka sama dla wszystkich żądań. x-ms-request-method w x-ms-request-url nagłówkach i w nagłówkach może być konieczne skonfigurowanie w tym przypadku w celu zidentyfikowania różnych żądań.

Testowe litery

Majątek Typ Description
testCaseName ciąg To jest wymagane. Nazwa przypadku testowego używanego w raportowaniu powodzenia i niepowodzenia
testSteps TestSteps To jest wymagane. Zestaw funkcji Power Fx opisujący kroki wymagane do wykonania przypadku testowego. Zobacz Przykładowe kroki testowe
testCaseDescription Nie. Opcjonalny. Dodatkowe informacje opisują, co robi przypadek testowy

TestSteps

  • TestSteps Może używać dowolnych istniejących funkcji Power Fx aparatu testowego lub określonych funkcji testowych zdefiniowanych przez tę platformę.
  • Wartość powinna zaczynać się od symbolu potoku (|), aby zezwolić na wielowierszowe wyrażenia YAML, a następnie znak równości (=), aby wskazać, że jest to wyrażenie Power Fx
  • Funkcje powinny być oddzielone średnikami (;).
  • Komentarze mogą być używane i powinny zaczynać się od podwójnych znaków ukośnika odwrotnego (//).

Przykładowe kroki testowe

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

Służy do definiowania ustawień testów w planie testów.

Majątek Typ Description
browserConfigurations BrowserConfiguration[] To jest wymagane. Lista konfiguracji przeglądarki do przetestowania. Należy określić co najmniej jedną przeglądarkę.
extensionModules extensionModules Opcjonalny. Zawiera dane dotyczące rozszerzeń do włączenia.
filePath ciąg Opcjonalny. Ścieżka pliku do oddzielnego pliku yaml ze wszystkimi ustawieniami testu. Jeśli zostanie podana , zastąpi wszystkie ustawienia testu w planie testu.
headless typ logiczny (boolowski) Opcjonalny. Wartość domyślna to true. Jeśli ustawiono wartość false, przeglądarka zostanie wyświetlona podczas wykonywania testu.
locale ciąg Opcjonalny. Składnia ustawień regionalnych/kultury, w której są zapisywane przypadki testowe lub kroki testowe. Jeśli nie określono, CultureInfo.CurrentCulture jest używany dla ustawień regionalnych domyślnie na potrzeby analizowania kroków testowych. Zobacz Zagadnienia dotyczące regionu i języka
recordVideo typ logiczny (boolowski) Opcjonalny. Wartość domyślna to „false”. Jeśli ustawiono wartość true, przechwycono nagranie wideo z testu.
timeout liczba całkowita Opcjonalny. Wartość limitu czasu w milisekundach. Wartość domyślna to 30 000 milisekund (30 s). Jeśli jakakolwiek operacja trwa dłużej niż limit czasu, kończy test w niepowodzeniu.
powerFxTestTypes name value para Opcjonalny. Lista nazw typów i definicji typu Power Fx. Zobacz przykład powerFxTestTypes
testFunctions description code para Opcjonalny. Lista opisów i definicji funkcji Power Fx. Zobacz przykład funkcji testowych

extensionModules

Zawiera dane dotyczące rozszerzeń do włączenia.

Majątek Typ Description
enable bool Określa, czy moduły rozszerzeń są włączone.
allowPowerFxNamespaces list Lista przestrzeni nazw programu PowerFx do włączenia.
parameters pary klucz-wartość Właściwości z wartościami do sterowania modułami rozszerzeń. Obecnie tylko parametr logiczny enableDataverseFunctions jest prawidłowy.

W tym przykładzie pokazano, jak włączyć przestrzeń nazw Programu PowerFx Preview :

testSettings:
  extensionModules:
    enable: true
    allowPowerFxNamespaces:
    - Preview

Dowiedz się więcej o funkcjach w wersji zapoznawczej

Zagadnienia dotyczące regionów i języków

Aparat testowy obsługuje różne ustawienia językowe i regionalne, takie jak separatory dziesiętne i separatory list. Właściwość testSettings.locale steruje tymi zachowaniami. Aby uzyskać więcej informacji, zobacz Global Support in Microsoft Power Fx (Obsługa globalna w programie Microsoft Power Fx).

Zapoznaj się z tymi przykładowymi konfiguracjami w repozytoriumPowerApps-TestEngine GitHub:

przykład powerFxTestTypes

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

W tym przykładzie pokazano, jak zdefiniować niestandardowe typy Power Fx do użycia w przypadkach testowych. Typ ControlName jest definiowany jako rekord z pojedynczym Text polem, podczas gdy Options typ jest definiowany jako tabela rekordów, z których każdy zawiera Name pole typu Text i Value pole typu Number. Typy niestandardowe mogą służyć do tworzenia bardziej złożonych i określonych scenariuszy testowych, zwiększając elastyczność i możliwości definicji testów.

przykład funkcji testowych

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

W tych przykładach funkcji testowych pokazano, jak zdefiniować niestandardowe funkcje Power Fx do użycia w przypadkach testowych. Funkcja WaitUntilVisible używa selektora DOM do oczekiwania na widoczność określonej kontrolki przy użyciu akcji Odtwórz. Funkcja GetOptions pobiera opcje określonej kontrolki z aplikacji opartej na modelu (MDA), korzystając z kontrolki Power Fx. Te funkcje niestandardowe zwiększają elastyczność i możliwości definicji testów, co pozwala na bardziej złożone i specyficzne scenariusze testowe.

Konfiguracja przeglądarki

Każdy testSettings wymaga co najmniej jednego BrowserConfiguration.

Majątek Typ Description
browser ciąg To jest wymagane. Przeglądarka, która ma zostać uruchomiona podczas testowania. Powinna być zgodna z przeglądarkami obsługiwanymi przez Playwrighta.
device ciąg Opcjonalny. Urządzenie do emulowania podczas uruchamiania przeglądarki. Powinny być zgodne z urządzeniami obsługiwanymi przez playwrighta
screenHeight liczba całkowita Opcjonalny. Wysokość ekranu do użycia podczas uruchamiania przeglądarki. W przypadku określenia screenWidth należy również określić.
screenWidth liczba całkowita Opcjonalny. Szerokość ekranu do użycia podczas uruchamiania przeglądarki. W przypadku określenia screenHeight należy również określić.

environmentVariables

Można przechowywać różne typy wartości jako wartości środowiskowe, ale najczęstszym przypadkiem jest przechowywanie informacji o poświadczeniach z listą użytkowników.

users

Aby zapewnić, że poświadczenia są przechowywane w bezpieczny sposób, definicja testu odwołuje się do użytkowników przy użyciu elementu personaName. Przechowywanie poświadczeń w plikach planu testów nie jest obsługiwane.

Przykład:

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

Element personaName jest używany jako część definicji testu, aby wskazać, który użytkownik ma uruchomić test jako.

Obsługiwane mechanizmy przechowywania poświadczeń

Aby przechowywać poświadczenia jako zmienne środowiskowe, można je ustawić w następujący sposób:

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

W języku YAML należy zdefiniować dwie właściwości, aby wskazać, że poświadczenia tego użytkownika są przechowywane w zmiennych środowiskowych:

  • emailKey: zmienna środowiskowa używana do przechowywania wiadomości e-mail użytkownika.

Przykład YAML:

    - personaName: "User1"
      emailKey: "user1Email"

Przykładowy program PowerShell do ustawiania poświadczeń użytkownika na podstawie kodu YAML:

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

Zobacz także

Omówienie aparatu testowego usługi Power Apps (wersja zapoznawcza)
Power Apps Funkcje aparatu Power Fx testowego (wersja zapoznawcza)