LINUX.ORG.RU

Java утилита для тестирования REST сервисов js-скриптами.

 , ,


0

2

У меня тут образовалось кучка проектов, в оных както надо автоматически проверять что мы ничего не сломали в API. А оное stateless, на какойто упоротой авторизации и с JSON.

Под такую задачу получается самым оптимальным это все тестировать из javascript, там и JSON как родной и писать всяко удобнее чем на баше.

Казалось бы взять nodejs и дергать наш сервис из оного, но сервис на java и тащить ноду не комильфо, да и с отладкой скриптов там черти что. Потому была набросана программка которая принимает директорию с js и запускает их на выполнение. При желании скрипты можно дебажить в NetBeans (теоретически и в idea, но похоже не в community версии).

Брать тут: https://github.com/wayerr/jsterest

Одно подергивание вашего любимого сервиса делается вот примерно так:

function test() {
  var request = {
    url:"http://localhost:8080/ui/token/login",
    method: "POST", // GET, POST & etc, by default - GET, or POST if it has data
    headers: {
      // set of headers, tool is use json 
      'Content-Type': 'application/json'
    },
    // request data, string or javascript object which is serialized to JSON
    data:{
      username:"admin",
      password:"password"
    },
    // optional function which can handle response, also it invoked before response logging 
    //   and can set `response.message` for example or do custom logging
    onResponse: function(request, response) {}
  };
  var resp = http.execute(request);
  console.debug("resp: ", resp);
  /*
  it prints json like follow:
  {
    code: 200,
    message: "OK", //server message
    headers: {
      "Content-Type":"application/json",
      "X-Other-Header":"header value"
    },
    contentType:"application/json",
    // string or java object (converted automatically when response content type is json)
    data: {...}
  }       
  */
}
★★★★★

Ответ на: комментарий от FeyFre

И как там сделать парочку запросов с предварительным получением токена с отдельного сервера?

subwoofer ★★★★★ ()

Какое-то тестирование, честно говоря, дебильное. Почему нельзя написать просто юнит тесты?

nikolnik ★★★ ()
Ответ на: комментарий от subwoofer

ТестСьют состоит из ТестКейсов-ов. Нулевой тест-кейс делает запрос куда хочет, парсит сохраняет результат в локальную пропертю, остальные тест-кейсы подставляют пропертю.
Да, там груви на борту, так реально сделать всё что угодно(по ССШ даже парсим логи на предмет отвала чего-нибудь нестандартного).

FeyFre ★★★★ ()
Ответ на: комментарий от FeyFre

Да, там груви на борту

Внезапно вопрос: зачем тогда тебе этот soapui, если все скатывается к боли или разбору жсона из груви? Может проще просто взять груви?

subwoofer ★★★★★ ()
Ответ на: комментарий от subwoofer

1. Для парсинга JSON/XML/SOAP/ответов из субд там есть всё из коробки, а если что-то ещё надо нестандартное - тогда подключаем тяжелую артиллерию. Сейчас реально на ~40 тесткейсов 1 на груви ибо коннектится по SSH, достает данные из файла, и пускает их дальше по тестам(там что-то типа двуфакторной авторизации которую надо пройти для получения токена).
2. А мне оно не надо, я разработчик а не тестировщик. Я своё тестирую самописными инструментам. Из 40 кейсов я сделал только тот который SSH лезет, остальные - девочка-тестировщик которая не блещет в общем то в программировании.

FeyFre ★★★★ ()
Ответ на: комментарий от FeyFre

А мне оно не надо, я разработчик а не тестировщик. Я своё тестирую самописными инструментам. Из 40 кейсов я сделал только тот который SSH лезет, остальные - девочка-тестировщик которая не блещет в общем то в программировании.

То есть ты меня к девочке-тестировщику приравнял?

subwoofer ★★★★★ ()
Ответ на: комментарий от subwoofer

Я тебе посоветовал инструмент. Привел пример из живого проекта. Использовать его или нет дело твоё. И опускать/поднимать себя к уровню девочек-тестировщиц тем более дело твоё.

FeyFre ★★★★ ()
Ответ на: комментарий от FeyFre

Я тебе посоветовал инструмент.

1. я не просил совета

2. ты сам им не пользуешься

3. ты посоветовал инструмент которым пользуются только твои девочки-волшебницы

Вывод?

subwoofer ★★★★★ ()

У нас на проекте были интеграционные тесты написанные тупо на RestTemplate и гоняли данные туда сюда по REST. Потом мы их сломали. Пока сидим на юнит-тестировании.

spoilt ★★ ()
Ответ на: комментарий от subwoofer

1. Ты просил. Мало того, оно тебя заинтересовало и ты начал задавать уточняющие вопросы.
2. Потому-что для моих задач его мало. Слишком мало. Оно может не всё.
3. Я посоветовал инструмент которым могут пользоваться ДАЖЕ девочки-тестировщицы. Взяли себе моду додумывать слова.
Вывод: ты зашел сюда потроллить?

FeyFre ★★★★ ()
Ответ на: комментарий от FeyFre

Ты просил.

Ты адекватен вообще? Топик про самопальную утилиту.

Мало того, оно тебя заинтересовало

Черт, ты точно в своей уютненькой вселенной живешь.

subwoofer ★★★★★ ()
Ответ на: комментарий от subwoofer

Понял. Был неправ. На ночь глядя проглядел существенную часть сообщения. В избежание говносрача участие в теме прекращаю.

FeyFre ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.