GraphQL API - какой-нибудь инструмент автоматизации для его тестирования? - PullRequest
0 голосов
/ 25 ноября 2018

Я хочу протестировать GraphQL API.Сейчас я использую GraphiQL, но я ищу какой-нибудь автоматизированный инструмент ... Похоже, что SOAPUI не поддерживает тестирование GraphQL.

Есть идеи?

Спасибо.

Ответы [ 4 ]

0 голосов
/ 18 июня 2019

Каратэ - это единственный инструмент с открытым исходным кодом, который объединяет автоматизацию тестирования API, макеты и тестирование производительности в единую унифицированную среду.

https://github.com/intuit/karate

0 голосов
/ 16 декабря 2018

Полное раскрытие: я основатель SaaS-компании, которая тестирует серверы GraphQL: https://OnlineOrNot.com

У вас есть три варианта, которые я видел:

  1. Платформа Apollo GraphQL .Он дает вам полноценную телеметрию для ваших отдельных распознавателей и может интегрироваться с VS Code, чтобы ваши разработчики знали, насколько дорогой их запрос в режиме реального времени.Вы заплатите за это.

  2. OnlineOrNot .Мы являемся скорее набором «черного ящика» для ваших запросов, который отлично подходит для определения того, когда служба GraphQL переходит в автономный режим, а не для точного определения того, где в функции распознавателя ваш запрос перестал работать (хотя мы и сообщаем вам разницу междуожидаемый результат и фактический результат)

  3. Напишите свой собственный.Для достаточно простого варианта использования это может иметь смысл, но если вы ищете богатый набор функций, то, вероятно, имеет смысл покупать, а не строить.

0 голосов
/ 29 мая 2019

Я использую SoapUI 5.4.0 (версия для сообщества) и не испытываю проблем при тестировании запросов GraphQL.Считайте их запросом отдыха и добавьте заголовок, например, Content-Type: application / graphql

, см. Изображение для всех деталей.

SoapUI GraphQL example

0 голосов
/ 25 ноября 2018

Что конкретно вы хотите протестировать?

У нас есть ряд автоматических проверок работоспособности, которые мы запускаем для каждой сборки:

  1. Является лисхема действительна (согласно graphql-js)?Это может быть на удивление легко испортить, если ваша реализация допускает, например, несколько определений с одним и тем же именем типа или любое другое количество скрытых ошибок.

  2. Является ли это критическим изменением схемы?Если это так, прервите сборку, если нет специального сообщения git commit, подтверждающего и принимающего его.С graphql-js это довольно просто - запустите запрос самоанализа для текущего производства, запустите его для текущей сборки и используйте встроенную функцию findBreakingChanges.

Обратите внимание, что graphql-js тесты не означают, что ваш сервер должен быть написан на JS - наш написан на ReasonML с использованием ocaml-graphql-server , а затем при сборке мы используем набор тестов узлов, чтобы поразить его как любой другойclient.

Наконец, кроме этого, у нас есть несколько тестов, которые запускают запросы / мутации для сквозного теста сервера API.В целом, это было довольно устойчиво к регрессиям.

И имейте в виду, что вы можете просто поразить ваш сервер GraphQL любым http-клиентом, не имеет , чтобы быть GraphQL-осведомленность в вашем тестовом наборе.Я бы рекомендовал этот маршрут в дополнение к проверкам работоспособности, о которых я упоминал выше.

...