Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.
Aplikacje oparte na rozwiązaniach (zalecane)
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:
- Otwieranie rozwiązania zawierającego aplikację w usłudze Power Apps
- 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:
- Znajdź aplikację na liście usługi Power Apps
- 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
-
TestStepsMoż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:
- W przypadku regionów używających średników jako separatorów listy
- W przypadku regionów używających przecinków jako separatorów dziesiętnych
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)