Начало работы с RestAssured.Net |
09.02.2023 00:43 |
Автор: Баз Дейкстра (Bas Dijkstra) В этой серии коротких статей я хочу поделиться рядом примеров использования RestAssured.Net для создания тестов REST/GraphQL API.
Все примеры из статьи можно найти на GitHub. ВведениеЯ начал разрабатывать эту библиотеку по двум причинам:
Я годами восхищался библиотекой Java REST Assured, и решил портировать ее на C#. Йохан, создатель REST Assured, любезно дал мне разрешение использовать название и вдохновляться DSL "оригинальной" REST Assured, и даже дал мне ряд ценных подсказок и советов. Еще раз огромное спасибо! Начало работыНачать работать с RestAssured.NET очень просто:
Если вы работали с REST Assured в Java, то создание HTTP GET-вызова к конечной точке и проверка кода статуса ответа (я называю это "Hello, World!" в мире API-тестирования) должно выглядеть очень знакомым: [Test] Как можно видеть, при помощи всего одной читабельной строки кода можно создать и выполнить HTTP-вызов, а также получить и проверить ответ. Для логирования деталей ответа в консоль можно сделать так: [Test] Это вернет следующий результат, включающий код статуса, заголовки, тело ответа и его скорость: HTTP 200 (OK) RestAssured.Net также позволяет проверять заголовки ответов, и там есть служебные методы верификации заголовка ответа Content-Type. Тут можно узнать больше о верификации заголовков ответов. Верификация элементов тела ответаДля верификации элементов тела ответа JSON нужно задать две вещи: выражение JsonPath, извлекающее элемент для верификации, и ожидание от его значения. Вот как извлечь значение одного элемента и проверить, что оно точно совпадает с предустановленным: [Test] Как можно видеть, RestAssured.Net использует NHamcrest для выражения ожиданий от значений свойств ответа. Это позволяет гибко настраивать конкретные ожидания от конкретных свойств ответа, включая коды статуса и значения заголовков и тела. Пример посложнее: верификация, что список мест содержит точное совпадение с конкретным местом: [Test] В следующей статье серии мы посмотрим, как задавать параметры запроса и пути и пользоваться ими для создания параметризованных тестов с RestAssured.Net. |