1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

トークン認証付きAPIをテストする | Tricentis ToscaでAPIテストを実行してみたシリーズ#3

Posted at

【第3回】トークン認証付きAPIをテストする

Tricentis ToscaでAPIテストを実行してみたシリーズ


本記事は「ToscaでAPIテストを実行してみた」シリーズの第3回になります。

有効なTricentis Toscaのライセンスを保持している事を前提に記載しております。


今回の目的

前回は、ToscaでAPIモジュールからテストケースを作成し、実際にAPIを呼び出してレスポンスを検証しました。
今回は、OAuth2やBearer Tokenなどの「トークン認証が必要なAPI」をToscaでテストする方法を紹介します。

実務でのAPIテストでは、ほとんどのエンドポイントが認証・認可を必要とします。
Toscaでは、トークンを取得し、次のリクエストに引き継ぐ仕組みを簡単に構築できます。


トークン認証とは?

トークン認証は、ユーザーやアプリケーションがサーバーにアクセスする際に、一時的な「鍵(トークン)」を利用する仕組みです。

代表的な方式:

認証方式 仕組み 使用例
Bearer Token 固定のAPIトークンをHeaderで送信 内部API、テスト環境
OAuth2.0 認証APIでトークンを発行→利用 Microsoft Graph、Salesforce、SAPなど
JWT (JSON Web Token) トークン内に署名付き情報を保持 多くのモダンWebサービス

ステップ1:トークン取得用APIを確認する

多くのシステムでは、最初に「認証API」でトークンを取得し、そのトークンを別のAPIに引き渡す必要があります。

例:OAuth2の認証リクエスト

POST https://example.com/oauth/token
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials&client_id=myapp&client_secret=abc123

レスポンス例:

{
  "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "token_type": "Bearer",
  "expires_in": 3600
}

実際にToscaのAPI Scan画面で実装すると以下のようになります。
Request画面
image.png
image.png

レスポンス画面
image.png


⚙️ ステップ2:Toscaでトークンを取得するTestCaseを作る

  1. Tosca CommanderのModulesで「POST /oauth/token」を選択

  2. 右クリック → Create TestCase

  3. RequestのBodyに以下のように設定:

    • grant_type = client_credentials
    • client_id = myapp
    • client_secret = abc123
  4. TestCaseを実行し、レスポンスを確認。

成功すると、Responseノードに access_token が含まれます。


ステップ3:トークンを抽出してBufferに保存する

トークンは次のAPIで使うため、Toscaの「Buffer機能」を使って値を一時保存します。

  1. TestCase内の Response → access_token を右クリック
  2. Context Menu → Buffer → Save value to Buffer を選択
  3. Buffer名を AccessToken に設定

これで、次のAPIリクエスト内で {B[AccessToken]} として参照できます。

💡 ヒント:
Bufferはテスト実行中にのみ有効です。
複数シナリオで再利用したい場合は、Test Configuration Parameter(TCP)で管理すると便利です。


ステップ4:トークンを利用して保護されたAPIを呼び出す

次に、取得したトークンを使って、保護されたエンドポイントにアクセスします。

例:GET /user/profile

  1. API ScanにてRequestメッセージを作成しTestCaseを作成
  2. Request Headerに以下を追加:

    | Header名 | 値 |
    | ------------- | --------------------- |
    | Authorization | Bearer ${AccessToken} |

image.png

  1. 実行すると、ToscaはBuffer内の値を動的に展開し、認証済みリクエストを送信します。

image.png


🧠 ステップ5:複数API間でトークンを連携する(シナリオ化)

  1. 認証API(POST /oauth/token)でトークンを取得 → Bufferに保存
  2. 別のAPI(POST Cloud_Execution)でBuffer値を利用
TestCase: Token Chain Scenario
 ├── Step 1: POST Okta Request  (Save token)
 └── Step 2: POST Cloud Execution  (Use token)

💡 応用:
トークンの有効期限がある場合、実行前に「トークン再取得用TestCase」を呼び出す構成も可能です。


image.png

⚠️ よくあるエラーと対処法

症状 原因 対処法
401 Unauthorized トークンが不正または期限切れ 再発行APIを呼び出す or Headerを再設定
invalid_grant client_id / secretの誤り APIキー情報を再確認
JSON parse error レスポンス形式が異なる JSON Path設定を修正
Buffer展開されない Buffer名の誤記 ${AccessToken} の表記を再確認

🧩 ステップ6:Bearer Tokenの自動化と再利用

Toscaでは、Bufferを使うことでトークン管理を自動化できます。
さらに、Test Case に認証ステップを最初に追加しておくと、すべてのAPIテスト実行で共通トークンを自動的に再利用できます。

実装例

  1. Test Caseの最上位に「Token取得TestCase」を追加
  2. その後に各API TestCaseを配置

これにより、テスト実行時にトークンが取得され、以降のすべてのAPIテストで利用可能になります。


まとめ

今回は、トークン認証が必要なAPIをToscaでテストする方法を解説しました。

✅ 本記事のポイント:

  • OAuth2やBearer Tokenの構造を理解
  • 認証APIからトークンを取得
  • トークンをBufferに保存して次のリクエストへ引き継ぐ
  • 実行リストを活用して再利用を自動化

これにより、実運用レベルのAPIテスト(認証付きREST API)をTosca上で構築できます。


🔮 次回予告

第5回:APIテストを自動実行・統合する

  • CLI(ToscaCI)からのAPIテスト実行
  • Jenkins / AzureDevOpsとの連携

📚 参考リンク


1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?