DEV Community

Cover image for Testfullyとは?
Akira
Akira

Posted on • Originally published at apidog.com

Testfullyとは?

API出荷後も監視できるPostman代替ツールを探しているなら、Testfullyは候補になります。Testfullyは単なるリクエスト送信ツールではなく、APIテスト、CI/CD実行、本番監視までを1つのワークフローにまとめるためのプラットフォームです。

今すぐApidogを試す

この記事では、Testfullyを実装目線で整理します。何ができるのか、APIクライアント・自動テスト・監視がどうつながるのか、CLIをCI/CDにどう組み込むのか、PostmanやInsomniaから何を移行できるのかを解説します。最後に、API設計やモックも必要な場合にApidogがどこに適合するかも確認します。

Testfullyとは?

Testfully(testfully.io)は、APIテスト、監視、ドキュメント作成のためのプラットフォームです。デスクトップアプリとブラウザGUIクライアントに加えて、ノーコード自動テストとスケジュール監視を提供します。

Testfully画面

Testfullyの基本的な使い方は次の流れです。

  1. APIリクエストを作成する
  2. 環境変数や認証を設定する
  3. レスポンスにアサーションを追加する
  4. フォルダー単位でテストスイート化する
  5. CLIまたはスケジュール実行で継続的に検証する
  6. 失敗時にSlack、SMS、PagerDutyなどへ通知する

つまり、API構築中のテストだけでなく、公開後の監視にも同じテスト資産を使えます。

TestfullyはWindows、macOS、Linuxで動作し、ブラウザ版もあります。利用形態は2つです。

  • オフラインモード: データをローカルマシンに保持
  • クラウドモード: チームコラボレーション向け

どちらのモードでも同じ機能セットを使えるため、オフラインを選んでも機能が削られるわけではありません。

APIクライアント全般を比較したい場合は、REST APIクライアントのまとめも参考になります。

Testfullyの3つの柱

Testfullyは、次の3つに分けて考えると理解しやすくなります。

  1. APIクライアント
  2. ノーコード自動テスト
  3. スケジュール監視とアラート

それぞれが独立しているのではなく、リクエスト作成から監視まで段階的につながります。

1. APIクライアント

TestfullyのAPIクライアントでは、REST、GraphQL、XMLベースのHTTP APIを扱えます。

基本的な作業は次の通りです。

Collection
└── Folder
    ├── Login API
    ├── Get User API
    └── Update Profile API
Enter fullscreen mode Exit fullscreen mode

リクエストはコレクションとフォルダーで整理します。環境と変数を使えば、URLやトークンを直接書き換えずに実行先を切り替えられます。

例:

{{baseUrl}}/api/users/{{userId}}
Enter fullscreen mode Exit fullscreen mode

環境ごとに値を分けます。

local:
  baseUrl = http://localhost:3000

staging:
  baseUrl = https://staging.example.com

production:
  baseUrl = https://api.example.com
Enter fullscreen mode Exit fullscreen mode

認証についてはOAuth2を含む設定が組み込まれています。UIだけで表現しにくい前処理やレスポンス処理が必要な場合は、JavaScriptスクリプトで補完できます。

よくある実装フローは次のようなものです。

  1. POST /login を実行
  2. レスポンスからアクセストークンを取得
  3. トークンを変数に保存
  4. 次の保護されたAPIで Authorization ヘッダーに利用
Authorization: Bearer {{accessToken}}
Enter fullscreen mode Exit fullscreen mode

このようなリクエストチェイニングにより、「ログイン → トークン取得 → 認証付きAPI実行」のようなE2E寄りのAPI検証を組み立てられます。

オフラインファーストのAPIクライアントを探している場合は、最高のオフラインAPIクライアントのガイドも参考になります。

2. ノーコード自動テスト

Testfullyでは、単発のリクエストにアサーションを追加して、繰り返し実行できるテストに変換できます。

たとえば、次のようなチェックをリクエストに追加します。

  • ステータスコードが 200 である
  • レスポンス時間が一定以下である
  • JSONレスポンスに特定のキーが存在する
  • レスポンス本文の値が期待値と一致する

イメージとしては、次のような検証です。

Status code is 200
Response body contains user.id
Response body user.email equals expected email
Enter fullscreen mode Exit fullscreen mode

ノーコードでアサーションを作れるため、テストフレームワークを管理したくないQA担当者やプロダクトエンジニアでも扱いやすい構成です。

一方で、カスタムロジックが必要な場合はJavaScriptも使えます。たとえば、レスポンス値を加工して次のリクエストに渡すような処理にも対応できます。

Testfullyはテスト実行履歴も保持します。これにより、次のような調査がしやすくなります。

  • どのデプロイ後にAPIが失敗し始めたか
  • 特定エンドポイントの失敗が一時的か継続的か
  • 回帰がいつ発生したか
  • チームに失敗履歴を共有できるか

単にリクエストを送るだけならAPIクライアントで十分です。しかし、同じチェックを継続的に実行したい場合は、保存可能な自動テストが必要になります。

3. スケジュールされた監視とアラート

Testfullyの大きな特徴は、作成したテストをスケジュール実行し、失敗時に通知できることです。

たとえば、次のような用途に使えます。

  • 本番APIのヘルスチェック
  • ログインAPIの定期確認
  • 決済APIなど重要フローの疎通確認
  • GraphQLエンドポイントのレスポンス検証
  • ステージング環境のリリース前確認

通知先として、メール、SMS、Slack、PagerDutyを利用できます。PagerDuty連携は、オンコール体制があるチームにとって特に重要です。APIチェックが失敗したときに、担当者へ自動でページングできます。

実装上のポイントは、テスト用に書いたアサーションをそのまま本番監視に使えることです。

通常は、APIテストと監視ツールで同じチェックを二重に作ることがあります。Testfullyでは、以下のように同じテストを流用できます。

API request
  ↓
Assertions
  ↓
Test suite
  ↓
Scheduled monitor
  ↓
Alert
Enter fullscreen mode Exit fullscreen mode

この監視レイヤーが、一般的なリクエストクライアントとの大きな違いです。

CI/CD用Testfully Run CLI

ローカルマシンでしか実行されないAPIテストは、デプロイ時の回帰を見逃しやすくなります。TestfullyではCLIを使って、保存済みリクエストやフォルダーをCI/CDパイプラインから実行できます。

CLIはnpmからインストールします。

npm install -g @testfully/cli
Enter fullscreen mode Exit fullscreen mode

基本コマンドは次の形式です。

testfully run [options] -- [files]
Enter fullscreen mode Exit fullscreen mode

たとえば、エクスポートしたJSONファイルを実行します。

testfully run rick-and-morty.json
Enter fullscreen mode Exit fullscreen mode

CI/CDで使う場合は、JUnit XMLレポートを出力すると便利です。

testfully run rick-and-morty.json \
  --reporters junit \
  --reporter-junit-export ./junit-report.xml
Enter fullscreen mode Exit fullscreen mode

Testfully CLIのレポーターは主に次の2つです。

レポーター 用途
cli 人間が読みやすいコンソール出力
junit CIツールが解析できるJUnit XML出力

JUnit XMLを出力すれば、GitHub Actions、GitLab CI、Jenkinsなどでテスト結果をビルド結果に反映できます。

GitHub Actionsに組み込む場合のイメージは次の通りです。

name: API Tests

on:
  push:
    branches:
      - main

jobs:
  api-test:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v4

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: 20

      - name: Install Testfully CLI
        run: npm install -g @testfully/cli

      - name: Run API tests
        run: |
          testfully run rick-and-morty.json \
            --reporters junit \
            --reporter-junit-export ./junit-report.xml
Enter fullscreen mode Exit fullscreen mode

Testfully CLIはNode.jsパッケージとして動作するため、Nodeが使えるランナーであれば導入しやすい構成です。また、クラウドリソースを必須とせずホスト上で実行できるため、インターネットアクセスがない環境でのローカルAPIテストにも対応しやすくなります。

APIテストをパイプライン化する設計については、APIテストのCI/CDベストプラクティスも参考になります。

インポートサポート:PostmanとInsomnia

既存のAPIコレクションがある場合、ツール移行で最も負担になるのはリクエストの再作成です。TestfullyはPostmanとInsomniaからのインポートに対応しているため、この作業を軽減できます。

移行対象として期待できるものは次の通りです。

  • 既存のリクエスト
  • コレクション構造
  • フォルダー構成
  • 環境情報
  • 変数設定

これにより、PostmanやInsomniaで作成済みのAPI資産を、手作業で一から作り直す必要がありません。

移行を検討している場合は、Postmanの代替ツールの比較も確認すると判断しやすくなります。

Testfullyの料金

料金は変更される可能性があるため、契約前に公式ページで最新情報を確認してください。以下は、Testfullyの料金ページに基づく執筆時点の構造です。

プラン 料金 対象
Developer(無料) $0 1つのオフラインと1つのクラウドワークスペース、最大5ユーザー、無制限のコレクションランナー、すべてのコア機能、CLI
Team $14 /ユーザー/月(年間払い) 無制限のワークスペース、オフラインワークスペースのGit連携、カスタムロール、シークレット管理
Enterprise $29 /ユーザー/月(年間払い) SSO、SCIM、監査ログ、カスタムRBAC、コンプライアンスレポート(SOC 2 Type 2、ISO 27001:2022、HIPAA)

無料のDeveloperプランにはCLIと無制限のコレクションランナーが含まれます。個人開発者や小規模チームが検証を始めるには十分な内容です。

有料プランでは、チーム運用、ガバナンス、シークレット管理、コンプライアンス関連の機能が追加されます。

Testfullyは誰が使うべきか?

Testfullyは、次のようなチームに向いています。

  • APIテストと本番監視を1つのツールで管理したい
  • Slack、SMS、PagerDutyなどでAPI障害を通知したい
  • ノーコードでAPIテストを作成したい
  • 必要に応じてJavaScriptでカスタム処理も書きたい
  • オフラインでもフル機能のAPIクライアントを使いたい
  • PostmanまたはInsomniaから移行したい
  • CI/CDでAPIチェックを自動実行したい

一方で、主な用途がアドホックなリクエスト送信だけであれば、より軽量な無料APIクライアントで十分な場合もあります。

Testfullyを選ぶ理由は、単なるリクエスト送信ではなく、テストと監視を同じワークフローで扱える点にあります。

Apidogが適合する場所

Testfullyはテストと監視に強みがあります。一方で、API設計、モック、ドキュメント作成まで含めて管理したい場合は、より広いAPIライフサイクルを扱うツールも検討対象になります。

Apidogは、設計、テスト、モック、ドキュメント作成を1か所で扱うオールインワンAPIプラットフォームです。

Apidogでは次のような作業を行えます。

  • ビジュアルOpenAPIデザイナーでAPI契約を設計
  • ノーコードでモックサーバーを生成
  • ビジュアルアサーションで自動テストシナリオを作成
  • インタラクティブなAPIドキュメントを公開
  • REST、GraphQL、gRPC、WebSocket、SOAP、Socket.IOを扱う
  • デスクトップアプリ、Webアプリ、CLIから利用する

CI/CDでは、apidog run コマンドで保存済みのテストシナリオやスイートをパイプラインから実行できます。

サポートされる実行オプションには、次のようなものがあります。

  • clihtmljsonjunit レポーター
  • -d によるデータ駆動型実行
  • -e による環境選択

詳細は、Apidog CLI完全ガイドと、コマンドラインからREST APIをテストする方法で確認できます。

違いはスコープです。

  • Testfully: APIテストとスケジュール監視に焦点。オンコール通知を含む本番監視が強み。
  • Apidog: API設計、モック、ドキュメント、テストを含むAPI契約ライフサイクルに焦点。

Apidogは、Testfullyのようなオンコールページング付きのスケジュール本番監視を提供していません。したがって、選択基準はワークフローです。

  • 本番監視とアラートを重視するならTestfully
  • 仕様設計、モック、ドキュメント、テストをまとめたいならApidog

FAQ

Testfullyは無料ですか?

はい。無料のDeveloperプランが$0で提供されています。1つのオフラインと1つのクラウドワークスペース、最大5ユーザー、無制限のコレクションランナー、すべてのコア機能、CLIが含まれます。有料プランはTeamエディションで月額$14/ユーザー(年間払い)からです。

TestfullyにはCLIがありますか?

はい。Testfully CLIはnpmからインストールできます。

npm install -g @testfully/cli
Enter fullscreen mode Exit fullscreen mode

保存済みリクエストやフォルダーは、次のコマンドで実行できます。

testfully run [options] -- [files]
Enter fullscreen mode Exit fullscreen mode

CI/CD向けに clijunit レポーターをサポートしています。

Testfullyはどのプロトコルをサポートしていますか?

Testfullyクライアントは、HTTP上でREST、GraphQL、XMLをサポートしています。また、環境、変数、リクエストチェイニング、OAuth2、JavaScriptスクリプトを扱えます。

TestfullyはPostmanからインポートできますか?

はい。TestfullyはPostmanとInsomniaの両方からコレクションをインポートできます。既存のリクエストや環境を手作業で再構築せずに移行できます。

Testfullyは通常のAPIクライアントと何が異なりますか?

最大の違いは組み込みの監視機能です。Testfullyは作成したテストをスケジュール実行し、APIが失敗した場合にメール、SMS、Slack、PagerDutyで通知できます。多くのAPIクライアントはリクエスト送信が中心で、監視レイヤーまでは持っていません。

TestfullyはPostmanの良い代替ツールですか?

はい。特にAPIテストと本番監視を1つのツールで扱いたい場合、Testfullyは有力な選択肢です。より広い比較については、APIテストに最適なPostmanの代替ツールのまとめも参考になります。

Top comments (0)