web-dev-qa-db-ja.com

GraphQL API-それをテストするための自動化ツールはありますか?

GraphQLAPIをテストしたい。今のところ、GraphiQLを使用していますが、自動化されたツールを探しています... SOAPUIはGraphQLテストをサポートしていないようです。

何か案は?

ありがとう。

4
Eden G.

基本的に、私が見たいくつかのオプションがあります。

  1. ApolloのGraphQLプラットフォーム 。個々のリゾルバーで本格的なテレメトリを提供し、VS Codeと統合して、クエリのコストをリアルタイムで開発者に知らせることができます。しかし、あなたはそれを支払うでしょう。

  2. HoneyCombDataDog などの観察ツールも有料です。

  3. あなた自身を書いてください。十分に単純なユースケースの場合は理にかなっているかもしれませんが、豊富な機能セットを探している場合は、構築するよりも購入する方が理にかなっています。

1
RozenMD

SoapUI 5.4.0(community edition)を使用していますが、GraphQLリクエストのテストに問題はありません。それらをRestリクエストとして扱い、ヘッダーを追加します。コンテンツタイプ:application/graphql

詳細は画像をご覧ください。

SoapUI GraphQL example

2

自動テストには https://github.com/ohler55/graphql-test-tool/gtt があります。これはgoで記述されていますが、スタンドアロンアプリケーションとして、任意のGraphQLサーバーで使用できます。ユニットテストとCIに使用します。

0
Peter Ohler

具体的には、何をテストしますか?

ビルドごとに実行する自動化されたサニティチェックテストがいくつかあります。

  1. スキーマは有効ですか(graphql-jsによる)?実装で次のことが可能であれば、これは驚くほど簡単に混乱する可能性があります。同じタイプ名の複数の定義、またはその他の数の微妙なバグ。

  2. これは重大なスキーマの変更ですか?もしそうなら、それを承認して受け入れる特定のgit commitメッセージがない限り、ビルドを中断します。 graphql-jsを使用すると、これは非常に簡単です。現在の本番環境に対してイントロスペクションクエリを実行し、現在のビルドに対して実行して、組み込みのfindBreakingChanges関数を使用します。

graphql-jsテストは、サーバーをJSで作成する必要があるという意味ではないことに注意してください。サーバーはReasonMLで ocaml-graphql-server を使用して作成され、ビルド時にノードテストを使用します。他のクライアントと同じようにヒットするスイート。

最後に、それ以外にも、エンドツーエンドのAPIサーバーテストのクエリ/変更を実行するテストがいくつかあります。全体として、これはこれまでのところ回帰に対して非常に堅牢です。

また、任意のhttpクライアントでGraphQLサーバーにアクセスするだけでよいことを覚えておいてください。テストスイートには、GraphQLを認識する必要はありません。上記のサニティチェックに加えて、このルートをお勧めします。

0
sgrove