Перейти к содержимому

Аудит и оптимизация QA-процессов
онлайн, начало 29 января
Тестирование безопасности
онлайн, начало 27 января
Школа Тест-Аналитика
онлайн, начало 27 января
Тестирование мобильных приложений
онлайн, начало 27 января
Фотография

Выбор архитектуры тестов для тестирования REST API


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 8

#1 Arrioh

Arrioh

    Новый участник

  • Members
  • Pip
  • 14 сообщений
  • ФИО:Nikolai P

Отправлено 17 февраля 2017 - 09:48

Привет.

 

Подскажите, пожалуйста, какую архитектуру для тестирования REST API лучше выбрать?

 

Использую Python и библиотеки  unittest, json, requests...

 

Для написания функциональных тестов, на базе Selenium, я использовал такие "мейнстримовые" паттерны как PageObject и Singleton...

 

Возможно есть какое-то популярный стандарт паттернов для REST API тестов

 

Спасибо


  • 0

#2 baxatob

baxatob

    Опытный участник

  • Members
  • PipPipPipPip
  • 258 сообщений
  • ФИО:Юрий
  • Город:Riga

Отправлено 17 февраля 2017 - 10:42

Использую Python и библиотеки  unittest, json, requests...

 

Исчерпывающий выбор. 

 

Если нужно парсить хтмл, который сервер возвращает, то добавьте еще BeautifulSoup к списку библиотек.


  • 1

#3 Arrioh

Arrioh

    Новый участник

  • Members
  • Pip
  • 14 сообщений
  • ФИО:Nikolai P

Отправлено 17 февраля 2017 - 10:53

 

Использую Python и библиотеки  unittest, json, requests...

 

Исчерпывающий выбор. 

 

Если нужно парсить хтмл, который сервер возвращает, то добавьте еще BeautifulSoup к списку библиотек.

 

А как лучше организовать файлы и классы, чтобы это все дело не превратилось в кашу со временем? Каждый тест в отдельный файл и запускать все это через 1 обобщающий класс?


  • 0

#4 aid

aid

    Опытный участник

  • Members
  • PipPipPipPip
  • 448 сообщений
  • ФИО:Николай


Отправлено 17 февраля 2017 - 12:15

Лично я переработал пэйдж обжект. В итоге получилась такая структура - Класс с описанием АПИ и используемых методов. Далее - Класс с логикой. Ну а дальше сами тесты, с параметрами которые нужны (опционально). На py.test делать удобнее, логичнее связать всё это красиво.


  • 1

#5 Arrioh

Arrioh

    Новый участник

  • Members
  • Pip
  • 14 сообщений
  • ФИО:Nikolai P

Отправлено 12 мая 2017 - 15:19

Решил не создавать новую тема а спросить тут же:

Учитывая выбранную связку, какой подход к валидации ключей полученого ответа (json) вы используете? Например когда в ответе 200+ строк "ключ":"значение"

Писать руками проверку на каждую строку jsona?


  • 0

#6 baxatob

baxatob

    Опытный участник

  • Members
  • PipPipPipPip
  • 258 сообщений
  • ФИО:Юрий
  • Город:Riga

Отправлено 13 мая 2017 - 06:52

У нас есть библиотека шаблонов ответов. 

Получаем ответ, берем шаблон и в цикле сравниваем значения ключей ответа со значениями из шаблона. 


  • 1

#7 Spock

Spock

    Гуру

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 13 мая 2017 - 10:10

1. из JSONa генерируем схему (перед этим подобрать хороший генератор, они разные, кому-то подойдёт один, кому-то другой)

2. проверяем на правильность и правим схему руками, так как многие генераторы делают немного не такие схемы какие надо

3. на каждый элемент добавляем свойство что "лишних элементов быть не должно", таким образом будем фейлить если какие-то новые ключи появятся без нашего ведома

4. в итоге получаем список схем, каждая схема в своём файле

5. каждый ответ валидируем соответственной схемой

 

Заметим, что схемами проверяется только структура и тип переменных и тому подобное, именно значения что например "аккаунт" равен "а1" схемой не проверяются

 

Бизнес проверки надо делать отдельно


  • 1

#8 Arrioh

Arrioh

    Новый участник

  • Members
  • Pip
  • 14 сообщений
  • ФИО:Nikolai P

Отправлено 13 мая 2017 - 20:43

Спасибо! Будем пробывать
  • 0

#9 catrun

catrun

    Новый участник

  • Members
  • Pip
  • 35 сообщений
  • ФИО:Болк Кейт

Отправлено 19 мая 2017 - 07:54

Мы используем Python+Suds+UnitTest. 

Но сейчас большая проблема с распараллеливанием тестов. Как вы решили эту проблему?


  • 0


Программирование на С# для тестировщиков
онлайн
Автоматизатор мобильных приложений
онлайн
Selenium WebDriver: полное руководство
онлайн
Программирование на Python для тестировщиков
онлайн



Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Яндекс.Метрика
Реклама на портале