ЧТО есть тестирование бекенда и что такое REST?

Уже не первый раз на собеседовании мне говорят - “тестирование UI, каким бы оно не было это конечно хорошо, но мы ищем человека на тестирование бекенда.” - и начинаю спрашивать - знаете ли вы что такое REST и как тестировать api?

Я сам Python использую. В качестве обучения, учился писать unittests при помощи одноименной библиотеки. У фреймворка django есть так называемый язык запросов djangoORM, по сути это набор методов для работы с объектами, по сути это api фреймворка. Я написал 3 юнит теста, которые создают объект, редактируют его и удаляют - все это делается во временной базе данных и потом после прогона трется. Значит ли это что я тестировал бекенд?

Вы столько слов написали вообще ненужных. От вас всего лишь требуется написать тесты на методы REST API в приложении и все. И да, про unittests вообще никому не говорите и начинайте тихо учить PyTest - быстрее адекватную команду найдете

2 лайка

А не могли бы посоветовать что-нибудь почитать годное про это. Хочется научится, не знаю просто с чего начать. Буду вам очень благодарен.

Судя по тому что ты написал, то тебе нехватает теоретических знаний того как вообще устроены веб сервисы и какие типы тестирования существуют.
Для начала я бы ознакомился с теорией:

  • Что такое веб сервисы и как они устроены.
  • Как они общаются между собой. (Тут же будет и ваш REST)
  • Подробнее почитай про REST протокол ( Что такое request-response, Виды методов вызова (GET, POST), что такое request и response body, что такое header, content-type и т.д)
  • Посмотри как выглядит JSON формат, в РЭСТ’е обычно используется именно он
  • Потом посмотри виды тестирование и чем они отличаются: Unit, Integration, Acceptance, Smoke и т.д ( Потому что если ты скажешь на собеседовании что ты пишешь юнит тесты, тебя не поймут.)
  • Потом уже гугли Rest api testing.
4 лайка

Отлично. Спасибо большое. Может есть какие-то материалы, который вам помогли понять все это? Книги, видео, статьи, тематические ресурсы? Есть чем поделиться?

В любом случае спасибо и за это.

ну еще в малом проценте вместо JSON могут использовать XML.

Хз как по поводу питона, я использую rest-assured для java, поищи курсы на udemy + инет и youtube. Еще добавлю, что надо будет почитать про аутентификацию и ее виды вот хотя бы это Обзор способов и протоколов аутентификации в веб-приложениях / Habr, про форматы какие существуют для обмена Json, Xml, какие есть коды состояния у HTTP и вообще про протокол HTTP.

Если шарите джанго, можете создать свой рест апи за минут 20. Начните с этого ролика.
Самый простой тест на питоне может выглядеть так:

import requests


def test_privat_currency():
    url = 'https://api.privatbank.ua/p24api/pubinfo?json&exchange&coursid=5'
    r = requests.get(url)
    assert r.status_code == 200 and r.json()[0]['buy'] == '26.05000'

Это GET запрос к апи привата (обмен валют). Проверяете, что респонс от сервера успешный (код 200) и что значение такое-то.
Не программно это можно сделать постменом вот так:

1 лайк

А вообще советую такую книжку. Там и про создание/тестирование веб сервисов (рест), юнит тестирование (то, что делали вы: “3 юнит теста, которые создают объект, редактируют его и удаляют - все это делается во временной базе данных и потом после прогона трется”) и проч. И все это на базе питона и джанго.

1 лайк

Огромное вам спасибо). Буду читать и пробовать.

пожалуйста