Коя страна да избера за тестване на REST API?

Разработвам REST API с помощта на Scala и Play Framework 2. Изглежда, че точно сега е подходящото време за писане на спецификации за приемане за тази уеб услуга. Има два вида потребители за този API: уеб сайт и приложение за ipad.

И така, въпросът е коя страна да избера, за да напиша спецификациите за приемане?


За да бъда много по-конкретен, под спецификации за приемане имам предвид такъв вид тестове:

"user" should {
  "be able to register with login, email and pass" in {
      ... // registration process here
   }
}

Ето моите списъци за проверка

Страната на сървъра (scala + specs2)

  • [+] лесен за интегриране в процеса на изграждане
  • [+] по-запознат със scala
  • [-] лесно да пропуснете някои специфични подробности за браузъра (например CORS)

Клиентска страна (js + прост ajax или някаква рамка за тестване)

  • [-] по-трудно за автоматизиране (изисква node.js, v8, phantomJS или нещо подобно)
  • [-] по-запознат със scala
  • [+] всички подробности за браузъра са взети предвид
  • [+] яжте собствената си кучешка храна. Възможност за използване на api от страна на сървъра като програмист от страна на клиента
  • [+] вид примери за програмисти от страна на клиента

person Alex Povar    schedule 30.09.2013    source източник


Отговори (2)


Според мен тестовете, които нарекохте „Сървърна страна“, биха могли да бъдат модулни тестове, те трябва да са бързи и интегрирани в процеса на изграждане, там трябва да тествате за коректността на API, а не за функции като CORS, които принадлежат на клиентската страна.

За клиентската страна ви препоръчвам да използвате Selenium IDE, това е приставка за браузър, която ви позволява да записвате действие и утвърждаване на това, което се случва на страницата, което ви позволява да възпроизведете всички действия по-късно, много по-бързо, отколкото човек би могъл да направи.

Все пак нямам опит в интегрирането на това в работен процес на компилация, така че ако трябва да имате и това в процеса на компилация, предлагам ви да оцените CasperJS, има чудесна документация и полезни функции за тестване.

Ако просто се нуждаете от тестове за приемане, определено бих се насочил към интерфейса.

person Alberto Zaccagni    schedule 30.09.2013

Вярвам, че за тест за приемане трябва да направите само тест от страна на сървъра, като използвате BDD рамка, за да направите това лесно.

Ако тествате чрез JavaScript, това звучи повече като интеграционен тест.

Така че си помислих, че в REST API Scope, за да сте сигурни, че вашият REST API е приемлив, трябва да внедрите тест, без да се интересувате кои са потребителите, и да тествате само ако простите заявки, идващи към вашия API, получават отговор.

Но в обхвата от страна на клиента трябва да гарантирате, че кодът, който използва respose на REST API, е добър, така че вие ​​макетирате своя REST API (за javascript препоръчвам Жасмин или Синон).

След това, за да тествате дали цялата система е правилна заедно, трябва да използвате инструмент като Seleniun.

Надявам се това да ви помогне

person Claudio Santos    schedule 30.09.2013