Встречайте - RestAssured.Net |
14.06.2023 00:00 |
Автор: Баз Дейкстра (Bas Dijkstra) Возможно, вы знаете, что я фанат библиотеки REST Assured для Java – особенно из-за простоты ее использования при создании читабельных, но мощных тестов для HTTP API. К тому же с тех самых пор, как я работал над SDK Python и C# для платформы TestProject, я размышлял о создании и публикации своей собственной открытой библиотеки. Почему? Отчасти потому, что я люблю сообщество открытого исходного кода, а отчасти – потому что я искренне убежден, что надо благодарить делом и "платить вперед"; а отчасти потому, что я считаю это ценным опытом, а также хорошим способом попрактиковаться и отточить навыки разработки. Объединяем все это с тем фактом, что, несмотря на крайнюю полезность RestSharp, я годами искал библиотеку, которая будет так же облегчать создание API-тестов на C#, как и REST Assured на Java – и мы получим идею переноса REST Assured в C#. Так и родился RestAssured.Net. На этих выходных я выпустил версию 0.4.1, и это первый бета-релиз (после ряда альфа-релизов) – а это значит, что я считаю ее готовой для обкатки тестовым сообществом. Вот самые важные ссылки: Посмотрим, как воспользоваться RestAssured.Net для создания тестов REST API. Начало работыВот что вам нужно, чтобы начать работу с RestAssured.Net:
using static RestAssuredNet.RestAssuredNet; - и вы готовы к бою! Первый тестТем, кто имеет опыт работы с REST Assured в Java, этот синтаксис, возможно, покажется очень знакомым: [Test] Синтаксис Gherkin "Если – Когда – Тогда" красиво делит наш тест (а это всего лишь одна строчка кода) на три внятных секции: настройка запроса (Given), выполнение вызова HTTP (When) и обработка и/или проверка ответа (Then). Тут я не буду демонстрировать все возможности RestAssured.Net, так как большинство из них (если не все) проиллюстрировано примерами в руководстве пользователя, но вот неполный список поддерживаемого: Для запросов:
Для ответов:
Продемонстрирую, как легко пользоваться RestAssured.NET – вот пример такого обратного преобразования: [Test] А это внедрение класса TodoItem: public class TodoItem Что теперь?Будут добавляться новые возможности, поэтому следите за релизами – они должны выходить достаточно регулярно в ближайшие недели/месяцы. На данный момент мне в основном нужны люди из сообществ тестировщиков и C#-разработки, желающие попользоваться библиотекой, рассказать мне о своих впечатлениях и, что важнее всего, проблемах, с которыми они столкнулись, и функциях, которых им не хватает. Пожалуйста, не молчите и создайте задачу на GitHub, если видите потенциал для улучшения – я уверен, там есть что добавить и/или улучшить. |