タイムトラベル
タイムトラベルとは
Mimicry のタイムトラベル機能は、API 通信・画面録画・デバイス情報を 1 つの .mimicry ファイルにパッケージ化する機能です。
録画したファイルは共有でき、受け取った人も同じ通信・画面・デバイス情報を確認できます。リプレイビューアで画面と通信ログを同期して見られ、CLI で録画の改変や切り詰め、動画の書き出しもできます。
Charles や Proxyman の HAR エクスポートとは異なり、通信データ・画面録画・デバイス情報を 1 ファイルにまとめ、ビューアで画面と通信を同期して見られます。
録画
通信ログ画面の録画ボタンから録画を開始します。

録画モード
通信のみ
HTTP/HTTPS の通信データのみを記録します。
通信 + 画面録画
通信データに加えて、デバイスの画面を動画として同時に録画します。
画面録画対応デバイス
| デバイス | 対応状況 |
|---|---|
| iPhone 実機 | 対応(Mimicry Capture アプリ経由) |
| iOS シミュレータ | 対応 |
| Android 実機 | 対応 |
| Android エミュレータ | 対応 |
録画の流れ
録画中はすべての通信が記録されます。録画中はステータスバーに表示されます。
GUI の録画開始ダイアログには、通信の絞り込みはありません。ドメインで絞るときは、CLI の mimicry recording start --domain を使います。
停止すると .mimicry ファイルとして保存されます。
上限: 録画は、停止したときに通信ログから作られます。そのため、通信ログと同じく最新の 1000 件が上限で、それより古い通信は録画に入りません。10 MiB を超えるレスポンス本文は、録画から省かれます。
.mimicry ファイル
録画は .mimicry 形式で保存されます。不具合の再現に必要な情報がすべて 1 ファイルにパッケージ化されています。
API 通信
リクエストとレスポンスの全データ (URL、メソッド、ヘッダー、ボディ、ステータスコード)
画面録画
デバイス画面の動画 (mp4)。通信とタイムスタンプで同期されています。
デバイス情報
デバイスの種類(実機 / シミュレータ)、モデル名、OS バージョン
HAR との違い: HAR はテキスト形式の通信ログです。.mimicryは通信データに加えて画面録画とデバイス情報も 1 ファイルに入り、ビューアで画面と通信を同期して見られます。
録画ライブラリ
保存した録画は録画ライブラリに並びます。録画ごとにエントリ数、ファイルサイズ、通信ログを確認できます。

リプレイビューア
録画した画面と通信ログを同期して見るための専用ウィンドウです。
分割表示
動画プレーヤーとエントリリストを上下または左右に分割して表示します。
タイムラインバー
各リクエストの発生タイミングをタイムライン上に可視化します。
再生速度
0.5x / 1x / 1.5x / 2x の再生速度から選択できます。
書き出し・共有・トリミング
ビューアのヘッダーから、HAR / .mimicry / mp4 への書き出し、共有、前後のトリミングができます。mp4 は画面録画があるときだけ選べます。ビューアでのトリミングは元に戻せません。
録画の編集と書き出し
ビューアでの書き出しとトリミングに加えて、録画は CLI の mimicry recording でも編集できます。
mutate
録画の内容を改変します。
trim
録画の前後を切り詰めます。上書き前の内容は .mimicry.bak として 1 世代だけ残ります。範囲にエントリが 1 件も残らない場合は、--allow-empty を付けないと拒否されます。
export-video
画面録画を動画として書き出します。
共有
.mimicry ファイルを渡すだけで、不具合の再現に必要な情報をすべて共有できます。
共有方法
AirDrop
Slack
Git
メール
受け取った側の操作
.mimicry ファイルをダブルクリック、または Mimicry にドラッグ&ドロップ
リプレイビューアで画面録画と API 通信を同期して、不具合の様子を確認
ポイント: 録画した時点の通信と画面がそのまま入っているので、サーバーの状態が変わった後でも、当時の様子を見返せます。
ユースケース
バグ再現の共有
「自分の環境では再現しない」を解消します。不具合が発生した通信・画面・デバイス情報がすべてパッケージ化されているため、受け取った開発者は、サーバーの状態が変わった後でも同じ通信と画面を確認できます。
QA が不具合発生時に録画
.mimicry ファイルをチケットに添付
開発者がファイルを開いて通信と画面を確認し、修正
コードレビューの効率化
画面と通信を同期して動作確認。レビュアーが実際の挙動を素早く把握できます。