Narzędzia
Losowanie
Section titled “Losowanie”| Wejścia | min, max (liczby), seed |
| Wyjścia | result |
op | Zwraca |
|---|---|
int | Liczbę całkowitą z zakresu od min do max |
float | Liczbę zmiennoprzecinkową |
string | Ciąg o długości length znaków |
boolean | Wartość logiczną |
pick | Element wylosowany z items |
Pole seed (liczba lub ciąg znaków) czyni losowanie deterministycznym:
właśnie dzięki temu dane pozostają zróżnicowane, a test powtarzalny. To
zasadnicza różnica względem helperów {{$random…}}, które nigdy nie są
powtarzalne.
Walidacja schematu
Section titled “Walidacja schematu”| Wejścia | value, schema (ciąg znaków) |
| Wyjścia | valid, invalid, errors |
| Konfiguracja | schema — JSON Schema w wersji draft-07, 2019-09 albo 2020-12 |
Najlepsze narzędzie do sprawdzenia, czy odpowiedź respektuje swój kontrakt.
Wyjście errors warto podłączyć do bloku Log: wypisuje ono szczegółowo
każde naruszenie, dzięki czemu niepowodzenie w ciągłej integracji daje się od
razu wykorzystać.
Żądanie HTTP ──response[body]──► Walidacja schematu ├─ valid ──► (dalej) ├─ invalid ──► Throw └─ errors ──► LogOdczyt pliku
Section titled “Odczyt pliku”| Wejścia | path (ciąg znaków) |
| Wyjścia | content (ciąg znaków) |
| Konfiguracja | path — bezwzględna albo względna wobec otwartego pliku .restorm |
Ścieżka względna jest właściwym wyborem, aby scenariusz pozostał przenośny między maszyną lokalną a ciągłą integracją.
Zapis pliku
Section titled “Zapis pliku”| Wejścia | path (ciąg znaków), content |
| Wyjścia | brak |
| Konfiguracja | path, mode: replace (domyślnie) albo append |
Log (dziennik)
Section titled “Log (dziennik)”| Wejścia | message (ciąg znaków), data |
| Wyjścia | brak |
| Konfiguracja | level: debug, info, warn, error |
To główny blok zapewniający śledzenie przebiegu. Tylko jego wpisy są
domyślnie wyświetlane w dzienniku wykonania oraz na wyjściu
wiersza poleceń — wpisy samego
silnika dochodzą wyłącznie z opcją --all-logs.
Inaczej mówiąc: to, co zapisze akcja Log, znajdzie się w artefaktach przebiegu ciągłej integracji.
Assert (asercja)
Section titled “Assert (asercja)”| Wejścia | a (wartość zaobserwowana), b (wartość oczekiwana), message (ciąg znaków) |
| Wyjścia | then (powodzenie), else (niepowodzenie) |
| Konfiguracja | operator, a, b, message |
Dostępne operatory:
eq · ne · lt · lte · gt · gte · contains · isString ·
isNumber · isBoolean · isArray · isObject · isNull · exists ·
isEmpty · matchesRegex · isOneOf · deepEquals · lengthEq ·
lengthGt · lengthLt
Pole message sprawia, że niepowodzenie staje się zrozumiałe w dzienniku:
warto wpisać w nim, czego się oczekiwano, a nie samo „błąd”.
Throw (zgłoszenie błędu)
Section titled “Throw (zgłoszenie błędu)”| Wejścia | message (ciąg znaków) |
| Wyjścia | brak — ten blok nie ma portu done |
| Konfiguracja | message |
Celowo doprowadza wykonanie do niepowodzenia. To właśnie ta akcja daje kod
wyjścia 1 w ciągłej integracji: podłącza się ją do wyjścia else krytycznych
asercji albo do invalid walidacji schematu.