Cервис позволяющий локально тестировать HTTP клиент. Разработан на OneScript + WINOW. Поддерживает бо́льшую часть эндпоинтов httpbin.org.
opm install httpbin
Тестирование через asserts и 1connector
test.os:
#Использовать asserts
#Использовать 1connector
#Использовать httpbin
Перем HttpBin;
&Инициализация
Процедура ПередЗапускомТестов() Экспорт
HttpBin = Новый HttpBin();
HttpBin.Запустить();
КонецПроцедуры
&Завершение
Процедура ПослеЗапускаТестов() Экспорт
HttpBin.Остановить();
КонецПроцедуры
&Тест
Процедура ТестДолжен_ПроверитьПараметрыЗапроса() Экспорт
ПараметрыЗапроса = Новый Структура();
ПараметрыЗапроса.Вставить("key", "value");
Ответ = КоннекторHTTP.Get(HttpBin.URL() + "/get", ПараметрыЗапроса);
Ожидаем.Что(Ответ.КодСостояния).Равно(200);
Ожидаем.Что(Ответ.Заголовки["Content-Type"]).Содержит("application/json");
Ожидаем.Что(Ответ.Json()["args"]["key"]).Равно("value");
КонецПроцедуры
Приложение на фреймворке autumn
МойЖелудь.os:
#Использовать 1connector
#Использовать httpbin
&Пластилин
Перем HttpBin;
Функция ВыполнитьДействие() Экспорт
HttpBin.Запустить();
Ответ = КоннекторHTTP.Get(HttpBin.URL() + "/get");
HttpBin.Остановить();
КонецФункции
&Желудь
Процедура ПриСозданииОбъекта()
КонецПроцедуры
Запуск сервиса через команду run: httpbin run
Опции команды:
-h
, --host
- имя хоста / IP адрес сервиса
-p
, --port
- порт сервиса
На стартовой странице сервиса (адрес по умолчанию: http://127.0.0.1:3334
) доступна визуальная документация API, а также возможность отправки запросов и получения ответов.
Сервис по умолчанию запускается по адресу 127.0.0.1:3334
в фоновом режиме и с ожиданием завершения запуска сервиса.
Класс реализован с текучим интерфейсом.
Метод | Описание |
---|---|
Запустить() |
Запускает сервис |
Остановить() |
Останавливает сервис |
URL() |
Возвращает адрес сервиса |
УстановитьПорт(<Порт>) |
Устанавливает порт сервиса |
УстановитьХост(<Хост>) |
Устанавливает хост сервиса |
ЗапускатьВФоне(<Флаг>) |
Запуск сервиса будет выполнен в фоновом режиме |
ОжидатьЗапуск(<Флаг>) |
Ожидать завершение запуска сервиса, запущенного в фоновом режиме |
На данный момент нет поддержки https.
Эндпоинт | oscript-httpbin | httpbin.org |
---|---|---|
/ip |
✅ | ✅ |
/uuid |
✅ | ✅ |
/uuid/:n |
✅ | ❌ |
/user-agent |
✅ | ✅ |
/headers |
✅ | ✅ |
/get |
✅ | ✅ |
/post |
✅ | ✅ |
/put |
✅ | ✅ |
/patch |
✅ | ✅ |
/delete |
✅ | ✅ |
/anything |
✅ | ✅ |
/anything/:anything |
✅ | ✅ |
/base64/:value |
✅ | ✅ |
/encoding/utf8 |
✅ | ✅ |
/gzip |
❌ | ✅ |
/deflate |
❌ | ✅ |
/brotli |
❌ | ✅ |
/status/:code |
✅ | ✅ |
/response-headers?key=val |
✅ | ✅ |
/redirect/:n |
✅ | ✅ |
/redirect-to?url=foo |
✅ | ✅ |
/redirect-to?url=foo&status_code=307 |
✅ | ✅ |
/relative-redirect/:n |
✅ | ✅ |
/absolute-redirect/:n |
✅ | ✅ |
/cookies |
✅ | ✅ |
/cookies/set?name=value |
✅ | ✅ |
/cookies/set/:name/:value |
✅ | ✅ |
/cookies/delete?name |
✅ | ✅ |
/basic-auth/:user/:passwd |
✅ | ✅ |
/hidden-basic-auth/:user/:passwd |
✅ | ✅ |
/digest-auth/:qop/:user/:passwd/:algorithm |
❌ | ✅ |
/digest-auth/:qop/:user/:passwd |
❌ | ✅ |
/bearer |
✅ | ✅ |
/stream/:n |
❌ | ✅ |
/delay/:n |
✅ | ✅ |
/drip?numbytes=n&duration=s&delay=s&code=code |
❌ | ✅ |
/range/:n?duration=s&chunk_size=code |
❌ | ✅ |
/html |
✅ | ✅ |
/robots.txt |
✅ | ✅ |
/deny |
✅ | ✅ |
/cache |
✅ | ✅ |
/cache/:n |
✅ | ✅ |
/etag/:etag |
✅ | ✅ |
/bytes/:n |
✅ | ✅ |
/stream-bytes/:n |
❌ | ✅ |
/links/:n |
✅ | ✅ |
/links/:n/:offset |
✅ | ✅ |
/image |
✅ | ✅ |
/image/png |
✅ | ✅ |
/image/jpeg |
✅ | ✅ |
/image/webp |
✅ | ✅ |
/image/svg |
✅ | ✅ |
/forms/post |
✅ | ✅ |
/xml |
✅ | ✅ |
/json |
✅ | ✅ |