10 стъпки Как да автоматизирате ефективно тестване на API ~

Преди да прочетете тази публикация, уверете се, че имате поне един от тези проблеми:

  1. Имате ли проблеми или все още правите тестване на API ръчно?
  2. Работите ли като QA / QE / TE / SET, като често използвате Postman / Insomnia / Paw, за да тествате крайните точки на API на REST API, защото не знаете точно как да тествате крайните си точки автоматично?
  3. Работите ли като QA / QE / TE / SET, който иска да отдели теста от приложението?

Основната цел на тази публикация е да реши всички проблеми, споменати по-горе, като автоматизира тестването на API и го интегрира с Jenkins CI. По-лесно е, отколкото си мислите, ако изберете правилните инструменти и техники за тази работа.

Предварителни условия

  1. Node.js: Node.js е изпълнение на JavaScript, създадено на V8 JavaScript двигателя на Chrome. Node.js използва управляван от събития, не блокиращ I / O модел, който го прави лек и ефективен. Пакетната екосистема на Node.js, npm, е най-голямата екосистема на библиотеки с отворен код в света.
  2. Mocha: Mocha е рамка за тестване на JavaScript, която прави асинхронното тестване лесно.
  3. Чай: За разлика от Жасмин, за допълване на Mocha трябва да се използва допълнителна библиотека с твърдения. Chai е твърдяща библиотека, която ви позволява да изберете интерфейса за твърдение, който най-много ви харесва, включително „твърдя“, „очаквайте“ и „трябва“.
  4. SuperTest: SuperTest е разширение на SuperAgent, лека библиотека за заявки HTTP AJAX. SuperTest осигурява абстракции на високо ниво за тестване на отговорите на API на node.js с лесни за разбиране твърдения.
  5. Docker: Docker е отворена платформа за разработчици и sysadmins за изграждане, изпращане и изпълнение на разпределени приложения, независимо дали на лаптопи, виртуални виртуални центрове за данни или облака.
  6. Jenkins CI: Jenkins е сървър за автоматизация с отворен код, написан на Java. Дженкинс помага за автоматизирането на нечовешката част от целия процес на разработка на софтуер, с вече общи неща като непрекъсната интеграция, но чрез допълнително овластяване на екипи за изпълнение на техническата част на непрекъсната доставка.

Този урок предполага, че вече имате:

  1. Node.js и докер инсталиран на вашата машина.
  2. Приложение с API, който искате да тествате, вече работи. (Ето примерното приложение https://github.com/rifkyalikiki/example-api-app)
  3. Jenkins CI вече е инсталиран.

ДА ЗАПОЧВАМЕ

  1. Създайте вашата папка за тестов проект. Например: example-api-testing
  2. Създайте package.json файл, за да добавите всички зависимости.

3. Инсталирайте всички зависимости, като стартирате тези команди.

cd your_test_project_folder
npm инсталирайте -g mocha
npm инсталиране

Папката node_modules трябва да бъде добавена към вашата папка за тестов проект и всички зависимости трябва да бъдат успешно инсталирани.

4. Създайте тестова папка в папката на вашия тестов проект.

cd your_test_project_folder
mkdir тест

Трябва да се извика директорията тест за Mocha, за да се намерят тестови файлове, които да се стартират.

5. Създайте първия си тестов файл за API

Можете да назовете вашите мока файлове каквото и да било. ако обаче тествате множество крайни точки, които са свързани с набори от модели, препоръчвам да ги наречете „yourModel_test.js“. За този пример просто създайте файл user_test.js в тестовата директория. Не забравяйте да зададете и вашия URL адрес на API на глобална променлива. Ще се обаждате на тази променлива, когато правите вашите RESTful заявки, използвайки SuperTest.

6. Нека стартираме първия си тест на API, като стартирате тези команди

cd your_test_project_folder
npm старт
или
cd your_test_project_folder
JUNIT_REPORT_PATH = тест-резултат / резултат.xml JUNIT_REPORT_STACK = 1 мока - време на изчакване 25000 - цвят - репортер моха-дженкинс-репортер

Ето и резултата от теста

резултати от теста от терминалresult.xml

7. Създайте entrypoint.sh, за да поставите вашата тестова команда.

8. Създайте dockerfile, който ще се използва в Jenkins CI.

9. Създайте вашите предмети за работа в Jenkins

Нов предмет на работа на ДженкинсЕлемент за работа на Дженкинс (1)Елемент за работа на Дженкинс (2)Елемент за работа на Дженкинс (3)

Първо можете да пренебрегнете предупреждението за резултата от теста, то ще изчезне, след като стартираме задачата.

След това щракнете върху бутона SAVE, за да създадете заданието.

10. Пуснете вашия Jenkins Job и вижте резултатите от теста.

Извършете работата на джинкините, като кликнете върху бутона за възпроизвежданеРезултат от теста от работата на dnkins

Резултатите от моите тестове ще бъдат различни от вас, защото аз вече изпълних задачата, докато пиша този пост.

Поздравления, успешно сте автоматизирали вашето тестване на API сега. Следващата публикация ще дам представа за идеята ми да създадете своя собствена рамка за тестване.

Честит тест!

Източник: http://developmentnow.com/2015/02/05/make-your-node-js-api-bulletproof-how-to-test-with-mocha-chai-and-supertest/