Разделы портала

Онлайн-тренинги

.
Cards — бесплатная песочница с GraphQL API
30.09.2024 00:00

Автор: Ольга Назина (Киселёва)

Если вы хотите пощупать GraphQL API с ТЗ на русском языке, то добро пожаловать в мою песочницу — систему Cards.

Тут есть пользователи и их банковские карты. Можно пополнить баланс банковской карты, можно переводить деньги с одной карты на другую. Есть графический интерфейс и API. Есть даже ролевая модель! И даже ТЗ есть, хоть и не супер подробное =)


Ссылки на GUI и API

Каждую ночь база дропается и пересоздается с нуля! Так что сохранить тестовые данные и обращаться к ним через время не получится, учтите это!

GUI

https://cards.bugred.ru/

API

GraphQL IDE (Apollo) — https://cards.bugred.ru/online (как вызвать запрос в Аполло, см ниже в блоке «Полезные материалы»)

URL API — https://cards.bugred.ru/graphql/default (в Аполло именно этот урл и зашит)

Обязательный заголовок (Headers), без него работать не будет:

  • Заголовок: Authorization

  • Значение: testbase-123

ТЗ

https://testbase.atlassian.net/wiki/spaces/GraphQL/pages/4427939842/Cards

(Я очень надеюсь, что удастся оставить анонимный доступ в конфлюенс, так как аналогов ему, увы, пока нет — Яга ещё не вышла в релиз, у Яндекса нет гостевого доступа... Ну если что, добавлю в статью данные для авторизации и буду думать где продублировать ТЗ)

Полезные материалы

Видео:

Как вызвать запрос GraphQL API за 10 минут (Apollo) — продублировано в ВК

Статьи:

Что такое GraphQL

Откуда это и зачем

Системы создавались для моих курсов по тестированию. Так уж повелось, что я сразу делаю две системы:

  1. Публичная, выложенная в открытый доступ — на ней я показываю примеры в лекции, по ней делаю статьи в блог / на Хабр для студентов, записываю видео для ютуб-канала.

  2. Закрытая — для домашних заданий.

Так было в прошлый раз (и так появилась система Users), и так осталось сейчас.

Система простенькая, в ней очень мало бизнес-логики, сделана на основе повседневных задач, поэтому её легко "понять". Пополнить баланс, перекинуть деньги на другой счет — вполне логичные действия, которые можно тестировать без подробного ТЗ.

Да, в студентах (вторая система, для домашек) логики чуть больше и она местами закручивается в такие узлы, что ух! Но надо признать, что для знакомства с API это и не нужно. Скорее, задел на будущее, чтобы рассматривать разные ситуации с точки зрения тест-дизайна. Так что кто знает, может я и вторую систему когда-нибудь «открою»...

При работе с GraphQL очень важна ролевая модель и разделение прав доступа. Обычно это делается через LDAP и всё такое, но у нас же тестовая система, так что мы пошли по простому пути и эмулировали роли через заголовки. Этого вполне достаточно, чтобы пощупать возможные ограничения, которые могут накладываться на систему в коде.

Ну и надо понимать, что ТЗ у нас — из реальной жизни. Именно в таком виде я отдавала ТЗ разработчику (только вместо конфлюенса гуглодока была). Обычно начинающие тестировщики не верят, что ТЗ может не быть, или написанное на коленке. Пока не начнут работать))

ТЗ достаточно часто бывает невнятное, поэтому моё лишь отражает реальность. Ну и по нему тоже можно работать, разработчик ведь всё сделал! И тестировать можно по такой скудной информации. Поэтому я буду потихоньку причесывать ТЗ, чтобы выглядело симпатичнее, но в целом и такого вполне хватает для разработки / тестирования.

Ну вроде всё рассказала, остальное см в ТЗ. А ещё ждите статей по GraphQL, ведь для этого карты и выпущены в общий доступ — чтобы писать по ним обучающие материалы!

PS — больше полезных статей ищите в моем блоге по метке «полезное». А полезные видео — на моем youtube-канале 

Обсудить в форуме