【第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画面


⚙️ ステップ2:Toscaでトークンを取得するTestCaseを作る
-
Tosca CommanderのModulesで「POST /oauth/token」を選択
-
右クリック → Create TestCase
-
RequestのBodyに以下のように設定:
- grant_type = client_credentials
- client_id = myapp
- client_secret = abc123
-
TestCaseを実行し、レスポンスを確認。
成功すると、Responseノードに access_token が含まれます。
ステップ3:トークンを抽出してBufferに保存する
トークンは次のAPIで使うため、Toscaの「Buffer機能」を使って値を一時保存します。
- TestCase内の
Response → access_tokenを右クリック - Context Menu → Buffer → Save value to Buffer を選択
- Buffer名を
AccessTokenに設定
これで、次のAPIリクエスト内で {B[AccessToken]} として参照できます。
💡 ヒント:
Bufferはテスト実行中にのみ有効です。
複数シナリオで再利用したい場合は、Test Configuration Parameter(TCP)で管理すると便利です。
ステップ4:トークンを利用して保護されたAPIを呼び出す
次に、取得したトークンを使って、保護されたエンドポイントにアクセスします。
例:GET /user/profile
- API ScanにてRequestメッセージを作成しTestCaseを作成
- Request Headerに以下を追加:
| Header名 | 値 |
| ------------- | --------------------- |
| Authorization | Bearer ${AccessToken} |
- 実行すると、ToscaはBuffer内の値を動的に展開し、認証済みリクエストを送信します。
🧠 ステップ5:複数API間でトークンを連携する(シナリオ化)
- 認証API(POST /oauth/token)でトークンを取得 → Bufferに保存
- 別のAPI(POST Cloud_Execution)でBuffer値を利用
TestCase: Token Chain Scenario
├── Step 1: POST Okta Request (Save token)
└── Step 2: POST Cloud Execution (Use token)
💡 応用:
トークンの有効期限がある場合、実行前に「トークン再取得用TestCase」を呼び出す構成も可能です。
⚠️ よくあるエラーと対処法
| 症状 | 原因 | 対処法 |
|---|---|---|
| 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テスト実行で共通トークンを自動的に再利用できます。
実装例
- Test Caseの最上位に「Token取得TestCase」を追加
- その後に各API TestCaseを配置
これにより、テスト実行時にトークンが取得され、以降のすべてのAPIテストで利用可能になります。
まとめ
今回は、トークン認証が必要なAPIをToscaでテストする方法を解説しました。
✅ 本記事のポイント:
- OAuth2やBearer Tokenの構造を理解
- 認証APIからトークンを取得
- トークンをBufferに保存して次のリクエストへ引き継ぐ
- 実行リストを活用して再利用を自動化
これにより、実運用レベルのAPIテスト(認証付きREST API)をTosca上で構築できます。
🔮 次回予告
第5回:APIテストを自動実行・統合する
- CLI(ToscaCI)からのAPIテスト実行
- Jenkins / AzureDevOpsとの連携



