유틸리티
Random (난수)
Section titled “Random (난수)”| 입력 | min, max (숫자), seed |
| 출력 | result |
op | 반환값 |
|---|---|
int | min 과 max 사이의 정수 |
float | 부동소수점 수 |
string | length 글자의 문자열 |
boolean | 불리언 |
pick | items 에서 뽑은 요소 하나 |
seed 필드(숫자 또는 문자열)는 추출을 결정적으로 만듭니다. 다양한
데이터를 쓰면서도 재현 가능한 테스트를 얻을 수 있게 해 주는 것이 바로 이것입니다.
결코 재현할 수 없는 {{$random…}} 헬퍼와의 결정적인 차이입니다.
Schema validate (스키마 검증)
Section titled “Schema validate (스키마 검증)”| 입력 | value, schema (문자열) |
| 출력 | valid, invalid, errors |
| 설정 | schema — draft-07, 2019-09 또는 2020-12 형식의 JSON Schema |
응답이 계약을 지키는지 확인하기에 가장 알맞은 도구입니다. errors 를 Log에
연결하십시오. 출력이 위반 사항을 하나하나 알려 주므로 CI 실패를 바로 활용할 수
있습니다.
HTTP 요청 ──response[body]──► Schema validate ├─ valid ──► (이후 처리) ├─ invalid ──► Throw └─ errors ──► LogRead file (파일 읽기)
Section titled “Read file (파일 읽기)”| 입력 | path (문자열) |
| 출력 | content (문자열) |
| 설정 | path — 절대 경로, 또는 열려 있는 .restorm 파일 기준의 상대 경로 |
시나리오가 사용자의 머신과 CI 사이에서 그대로 통하게 하려면 상대 경로를 쓰는 것이 좋습니다.
Write file (파일 쓰기)
Section titled “Write file (파일 쓰기)”| 입력 | path (문자열), content |
| 출력 | 없음 |
| 설정 | path, mode: replace (기본값) 또는 append |
Log (로그)
Section titled “Log (로그)”| 입력 | message (문자열), data |
| 출력 | 없음 |
| 설정 | level: debug, info, warn, error |
추적을 담당하는 바로 그 박스입니다. 실행 로그와
명령줄 출력에서 기본으로 표시되는
것은 이 박스의 항목뿐입니다. 엔진의 항목은 --all-logs 를 붙여야 추가됩니다.
다시 말해, Log로 기록한 내용이 CI의 아티팩트에서 다시 만나게 되는 내용입니다.
Assert (어서션)
Section titled “Assert (어서션)”| 입력 | a (관측한 값), b (기대한 값), message (문자열) |
| 출력 | then (성공), else (실패) |
| 설정 | operator, a, b, message |
사용할 수 있는 연산자는 다음과 같습니다.
eq · ne · lt · lte · gt · gte · contains · isString ·
isNumber · isBoolean · isArray · isObject · isNull · exists ·
isEmpty · matchesRegex · isOneOf · deepEquals · lengthEq ·
lengthGt · lengthLt
message 필드가 로그에서 실패를 이해할 수 있게 만들어 줍니다. “오류” 가 아니라
무엇을 기대했는지를 적으십시오.
Throw (오류 발생)
Section titled “Throw (오류 발생)”| 입력 | message (문자열) |
| 출력 | 없음 — 이 박스에는 done 포트가 없습니다 |
| 설정 | message |
실행을 의도적으로 실패시킵니다. CI에서 종료 코드 1을 내게 하는 것이 바로
이것입니다. 중요한 어서션의 else 출력이나 스키마 검증의 invalid 에
연결하십시오.