コンボリプレイ使用ガイド
ドキュメントバージョン:20260729
本ドキュメントが対応するアプリバージョン:
- iOS:>= 3.13
- Android:>= 1.2.0
コンボリプレイ(Combo Replay)は、複数の HTTP/HTTPS リクエストを1つの「フロー」として編成し、依存関係に基づいて自動的に直列または並列実行します。API 連携テスト、回帰テスト、同一 API の異なる入力値の一括検証などに適しています。

1. 機能概要
| 機能 | 説明 |
|---|---|
| 複数リクエストの編成 | キャプチャ履歴からリクエストを選択し、キャンバス上で組み合わせ |
| 同一 API の複数ノード | 同一エンドポイントを複数回追加でき、各ノードで独立したプリセットパラメータを設定 |
| 依存関係 | 実行順序を制御(例:ログイン後に業務 API を呼び出し) |
| 依存性注入 | 上流レスポンスの token などを下流リクエストに自動入力 |
| 式注入 | タイムスタンプや UUID を動的生成、またはグローバル変数を使用 |
| 手動実行 | ワンタップでリプレイし、各ノードのリクエスト/レスポンス詳細を確認 |
| スケジュールタスク | Cron またはカスタム間隔で自動実行 |
2. クイックスタート
ステップ 1:まずキャプチャ
コンボリプレイのリクエストはキャプチャ履歴から取得します。先にアプリで HTTP/HTTPS リクエストを通常通りキャプチャしてください(WebSocket リクエストは追加できません)。
ステップ 2:ルールを作成
- コンボリプレイ リストを開く
- + をタップしてコンボリプレイルールを追加
- ルール名を入力(必須、デフォルトは
Combo Replay 260729のような形式) - 右下の + をタップしてキャンバスにリクエストを追加
- リストから必要なリクエストを選択

ステップ 3:実行
- ルールを保存(編集画面右上の ✓)
- リストで ルール名をタップ して実行画面を開く
- リプレイ実行 をタップ
実行完了後、ノードに成功/失敗の状態が表示されます。ノードをタップすると詳細を確認できます。

3. ルール管理
3.1 リスト情報
各ルールカードには以下が表示されます:
- ルール名
- ノード数
- パスプレビュー(最大3件)
- 依存関係数、パラメータマッピング数
- 最終更新日時
3.2 作成 / 編集 / 削除
| 操作 | 方法 |
|---|---|
| 作成 | リスト画面ナビゲーションバーの + |
| 編集 | 左スワイプ → 編集 |
| 削除 | 左スワイプ → 削除 |
| 保存 | 編集画面右上の ✓ |
ルールはローカルに保存されます。アプリのアンインストールやデータ削除で失われます。

4. コンボルールの編集
4.1 リクエストの追加
- 画面右下の + フローティングボタンをタップ
- URL / Method で検索可能
- Session、Host、タイプ、ステータスコードでフィルタ
同一 API を複数回追加可能:例として /api/order ノードを3つ追加し、正常系、境界値、異常パラメータをそれぞれテスト。
4.2 ノードメニュー
ノードをタップするとメニューが表示されます:
| メニュー | 機能 |
|---|---|
| 依存関係を設定 | リンクモードに入り、対象ノードをタップして依存関係を作成 |
| プリセットパラメータ | リクエストの Query / Header / Body を編集(実行画面でも変更可能だが、実行画面での変更は一時的) |
| 依存性注入 | 上流レスポンス → 下流リクエストのパラメータマッピングを設定 |
| 削除 | ノードと関連する依存関係、マッピングを削除 |
ノードをドラッグ して位置を調整;空白部分をタップ して選択解除またはリンクモードを終了。

5. プリセットパラメータ
ルール編集段階 で各ノードのテストデータを固定するために使用。特に「同一 API、異なる入力値」のシナリオに適しています。
5.1 操作手順
- ノードをタップ → プリセットパラメータ
- クエリパラメータ / リクエストヘッダー / リクエストボディ をそれぞれ編集
- すべて編集後、プリセットパラメータシート右上の ✓ をタップしてルールに保存
5.2 実行画面の「リクエストを変更」との違い
| プリセットパラメータ(編集画面) | リクエストを変更(実行画面) | |
|---|---|---|
| 入口 | ノードメニュー → プリセットパラメータ | 実行画面でノードをタップ |
| 永続化 | ルールに保存、次回も残る | 今回の実行のみ、ルールには書き戻さない |
| 用途 | 固定テストケース | 一時的な調整後に再実行 |
5.3 典型的な使い方:同一 API の複数シナリオ
ノード A: POST /api/login → body: 正常なアカウント
ノード B: POST /api/login → body: パスワード誤り
ノード C: POST /api/login → body: 空パスワード
(3ノードに依存関係なし → 並列実行)
5.4 式注入のサポート
参照:【8. 式注入】

6. 依存関係
6.1 意味
接続 A → B は:A は B に依存、B が先に実行され、A が後に実行されることを意味します。
矢印は 下流(A) から 上流(B) へ向かいます。
6.2 依存関係の作成
- 下流ノード をタップ → 依存関係を設定
- 上部に青いヒントが表示:「対象ノードをタップして依存関係を作成」
- 上流ノード をタップ
- 接続線が表示される
6.3 制限
- 同一の依存関係を重複して作成できない
- ループ を形成できない
- 接続線を削除すると、関連する パラメータマッピング も削除される
6.4 実行順序のイメージ
┌─ ノード B ─┐
ノード A ─┤ ├─ 並列(同一レイヤー)
└─ ノード C ─┘
↓
ノード D(A、C が両方成功した後に実行)
- 同一レイヤー(相互依存なし):並列実行
- 異なるレイヤー(依存関係あり):直列実行、前のレイヤーがすべて成功してから次のレイヤーを実行
- いずれかのレイヤーで失敗:以降のすべてのノードが スキップ とマーク
7. 依存性注入(パラメータマッピング)
上流レスポンスの token、userId などを下流リクエストに自動入力するために使用します。
7.1 前提条件
対象ノードには 少なくとも1つの上流依存関係 が必要です。ない場合は「上流ノードがありません。先に依存関係を作成してください」と表示されます。
7.2 設定手順
- 下流ノード をタップ → 依存性注入
- マッピングを追加 をタップし、以下を設定:
| 設定項目 | 説明 | 例 |
|---|---|---|
| ソースノード | どの上流からレスポンスを取得するか | ログインノード |
| 上流レスポンスから抽出 | レスポンスヘッダー / レスポンスボディの JSON パス | data.token |
| リクエストへ注入 | リクエストヘッダー / クエリパラメータ / リクエストボディ | ヘッダー Authorization |
| オプションのプレフィックス | 注入値の前に付加する文字列 | Bearer |
- マッピングを保存

7.3 典型的なシナリオ:ログイン + Token 付きリクエスト
[ログイン POST /login] ──→ [ユーザー情報取得 GET /user/profile]
│ ↑
レスポンス: data.token Authorization = Bearer ${注入された token}
- 2つのリクエストを追加
GET /user/profileで → 依存関係を設定 →POST /loginをタップGET /user/profileで → 依存性注入:- ソース:ログインノード、レスポンスボディ
data.token - ターゲット:ヘッダー
Authorization - プレフィックス:
Bearer
- ソース:ログインノード、レスポンスボディ
7.4 実行時の処理順序
プリセットパラメータ / リクエスト変更
↓
式注入(${method.timestamp()} など)
↓
依存性注入(パラメータマッピング)
↓
HTTP リクエスト送信
8. 式注入
リクエストヘッダー、クエリパラメータ、リクエストボディ に ${...} 式を記述すると、実行時に自動置換されます。
8.1 組み込みメソッド
| 式 | 置換結果 |
|---|---|
${method.timestamp()} | 現在のタイムスタンプ(ミリ秒) |
${method.uuid()} | UUID(小文字) |
${method.date()} | 日付、例:2026-07-29 |
${method.time()} | 時刻、例:14:30:00 |
${method.datetime()} | 日時、例:2026-07-29 14:30:00 |
例:
{
"requestId": "${method.uuid()}",
"timestamp": "${method.timestamp()}",
"date": "${method.date()}"
}
8.2 グローバル変数
${token}、${appId} など method. で始まらない式はグローバル変数です。
設定方法(実行画面):
- ルール内の任意のノードで
${variableName}式を使用 - 実行画面のステータスバー右側に 🌐 ボタンが表示される
- タップして各変数の値を入力
- 保存後 ルールと一緒に永続化(ルール削除時にクリア)
プリセットパラメータ、実行画面の「リクエストを変更」はいずれも式構文をサポート;実際の置換は「リプレイ実行」をタップした時点で行われます。
8.3 組み合わせ例
Header: X-Request-Id: ${method.uuid()}
Query: ts=${method.timestamp()}
Body: {"token": "${token}", "userId": "123"}
実行前に 🌐 で token の実際の値を入力してください。

9. 実行画面
9.1 画面構成

9.2 実行前
- ノードをタップ → リクエストを変更(今回の実行のみ、ルールには書き戻さない)
- グローバル変数式がある場合 → 🌐 をタップして変数値を入力
9.3 実行後
- ノードをタップ → 実行詳細(実際に送信されたリクエスト、レスポンス、所要時間、エラー情報)
- ナビゲーションバーの リセット(赤):すべての結果をクリアし、再編集・再実行可能
9.4 ノードの状態
| 状態 | 意味 |
|---|---|
| 灰色の円 | 実行待ち |
| 青色のプログレス | 実行中 |
| 緑色 ✓ | 成功(HTTP 2xx) |
| 赤色 ✗ | 失敗 |
| オレンジ色 − | スキップ(上流が失敗) |
9.5 成功判定
HTTP ステータスコード 200–299 を成功とみなし、それ以外は失敗とみなします。
10. 典型的なシナリオ集
シナリオ 1:同一 API の複数入力値を並列テスト
POST /api/order ノード1 body: {"type":"normal"}
POST /api/order ノード2 body: {"type":"edge"}
POST /api/order ノード3 body: {"type":"invalid"}
- 依存関係を作成しない → 3ノードが並列実行
- 各ノードで プリセットパラメータ により異なる body を設定
- 実行後に各ノードの結果を比較
シナリオ 2:ログインチェーン呼び出し
POST /login → GET /user → POST /order
│ ↑ ↑
└──── token を Authorization に注入 ─┘
- 依存関係を設定:
GET /userはPOST /loginに依存、POST /orderはGET /userに依存 GET /user、POST /orderで token マッピングを設定- 直列実行:ログイン → ユーザー情報取得 → 注文
シナリオ 3:動的パラメータ + 固定 Token
- Body に記述:
{"ts":"${method.timestamp()}","id":"${method.uuid()}"} - Header に記述:
Authorization: Bearer ${token} - 実行前に 🌐 で
tokenを入力 - 実行のたびにタイムスタンプと UUID が自動更新
11. よくある質問
Q:リクエストを追加したのに実行画面が空?
A:編集画面で ✓ をタップしてルールを保存し、リストから実行画面を開いてください。
Q:プリセットパラメータを変更したのに実行画面に反映されない?
A:編集画面でルールが保存されているか確認してください。実行画面の「リクエストを変更」は今回の実行にのみ影響し、プリセットパラメータを上書きしません。
Q:依存性注入が効かない?
A:確認事項:① 依存関係が作成されているか;② JSON パスがサンプルレスポンスと一致しているか;③ 上流ノードが成功したか;④ 式注入は依存性注入より先に実行されるため、順序に注意。
Q:グローバル変数が空に置換される?
A:実行画面で 🌐 をタップして変数値を入力・保存する必要があります。未入力の場合は空文字列に置換されます。
Q:なぜ一部のノードがスキップされる?
A:同一レイヤーまたは上流ノードの実行が失敗した場合、後続レイヤーのすべてのノードが「スキップ」とマークされます。
Q:WebSocket リクエストは追加できる?
A:できません。通常の HTTP/HTTPS リクエストのみサポートしています。
12. 操作早見表
| やりたいこと | 操作方法 |
|---|---|
| 新規ルール作成 | リスト + → 名前入力 → リクエスト追加 → ✓ |
| 同一 API で複数パラメータをテスト | 同一リクエストを複数回追加 → 各ノードで プリセットパラメータ |
| 実行順序を制御 | 依存関係を設定 → 上流ノードをタップ |
| token を自動付与 | 依存性注入 でマッピング設定 |
| 動的タイムスタンプ/UUID | パラメータに ${method.timestamp()} などを記述 |
| token などを共有設定 | ${token} を記述 → 実行画面 🌐 で入力 |
| 一時的にパラメータを変更して再実行 | 実行画面でノードをタップ → リクエストを変更 |
| リクエスト詳細を確認 | 実行後にノードをタップ |
| 再実行 | リセット → リプレイ実行 |