Информация

Дата основания
Местоположение
Россия
Сайт
redmadrobot.ru
Численность
201–500 человек
Дата регистрации

Блог на Хабре

Обновить

Runscope: удобный тул для тестирования API

Блог компании RedmadrobotРазработка веб-сайтовРазработка мобильных приложенийТестирование веб-сервисовТестирование мобильных приложений
Tutorial
Рейтинг +31
Количество просмотров 31,2k Добавить в закладки 194 Читать комментарии 8
Комментарии 8
Просто оставлю пару ссылок:
• swagger.io
• github.com/brooklynDev/airborne (+rspec)
• github.com/lookout/lookout-rack-test (+cucumber).

Последние два, конечно, ruby-specific, но им совершенно все равно, кого тестировать. А тесты рядышком, не в облаке.
Спасибо!

Хочу добавить, что у тестов в облаке есть одно важное преимущество. Можно написать тест из нескольких запросов, поставить его на расписание (к примеру, один тест каждые полчаса) и мониторить API в любое время суток без перерывов. В таком случае не нужно держать свою машину включенной 24/7.
Прописывать условия для каждого поля в api — с ума сойти можно, как-нибудь автоматизируется это дело или никто так не запаривается с тестами?
На самом деле прописывать условия не так долго, как может показаться. Есть возможность продублировать какой-нибудь запрос из теста и пользоваться его условиями повторно (или редактировать их), но автоматизации в данном случае нет. Не совсем понимаю, как можно автоматизировать выставление условий для всех полей в API, если честно.

Еще один момент. К примеру, мы получаем вот такую строку и хотим проверить все её поля:
{
  "users":[
     {
       "firstName":"qqq",
       "lastName":"www"
     },
     .
     .
     .
     {
       "firstName":"aaa",
       "lastName":"zzz"
     }
   ]
}

В такой ситуации Assertions нам не помогут, но можно проверить firstName и lastName следующим скриптом:
var data = JSON.parse(response.body);
var users = data.users;
for (var user in users) {
    assert.isString(users[user].firstName);
    assert.isString(users[user].lastName);
}
На вид неплохая штука. А можно ли при помощи неё тестировать вебсокет?
К сожалению, нет.
Runscope достаточно часто добавляет новые фичи, так что вполне возможно, что такая функциональность появится в будущем, но сейчас только HTTP/HTTPS.
есть еще одна замечательная штука для тестирования API — PostMan
Runscope — это жопа.

Описывать большой апи через формы в веб интерфейсе…

Если что-то поменяется в запросе / ответе нужно вручную выискивать все эти запросы и вносить правки.

Кроме этого есть различные недочеты, например сравнить структуры данных быстро нельзя. Надо писать код на JS.

Пока не сделают полноценный импорт / экспорт — никому не советую тратить время.

Какой смысл это все городить и создавать сложнейший api test suite на скриптовом языке с ограниченными возможностями?

Только для того, чтобы иметь возможность запускать эти тесты бесплатно из облака по расписанию? Потратить на это месяц работы и получить unsupportable solution?

Лучше сделать то-же за день на любом полноценном языке, упаковать в docker контейнер и все делов.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.