Директивы .http
Путь указывает на часть ответа.
| Путь | Значение |
|---|---|
status |
HTTP-код ответа, например 200 |
duration |
Время от отправки запроса до получения всего тела, в миллисекундах |
body |
Всё тело: разобранный JSON или текст как есть, если это не JSON |
body.user.name |
Поле JSON-объекта |
body.items[0] |
Элемент массива, нумерация с нуля |
body["key with spaces"] |
Поле, имя которого не простое слово |
headers.content-type |
Заголовок ответа; регистр имени не важен |
Индексировать можно только body. Если тело не JSON, доступен только сам body.
Операторы
Заголовок раздела «Операторы»> assert <путь> <оператор> <значение>> assert <путь> exists| Оператор | Истинно, когда |
|---|---|
== |
равно |
!= |
не равно; также истинно, если пути нет |
< <= > >= |
сравнение чисел; строки сравниваются по алфавиту |
contains |
строка содержит подстроку, массив — элемент, объект — ключ |
exists |
путь есть в ответе (без значения) |
Значения
Заголовок раздела «Значения»Значение после оператора — JSON-литерал:
> assert status == 200> assert body.name == "Viktor"> assert body.active == true> assert body.deleted_at == null> assert body.tags contains "admin"Если это не валидный JSON, значение считается строкой, поэтому для простых слов кавычки не обязательны:
> assert body.state == active — то же, что == "active".
Числа и строки из цифр сравниваются как числа — удобно для заголовков, которые всегда строки:
> assert headers.content-length < 1024> save <имя> = <путь>Имя переменной может содержать буквы, цифры, _ и -. Строки сохраняются как есть, остальное —
компактным JSON. Если пути нет, запрос считается упавшим.