滑らかさとフォアグラウンドメモリの測定
App KPI Visualizerツールは、アプリの主なパフォーマンス指標である フォアグラウンドメモリおよびUIとビデオの滑らかさをモニタリングして最適化するために役立ちます。
フォアグラウンドメモリ
アプリがアクティブなときの常駐セットサイズ(RSS)を測定します。これには、共有メモリとプライベートRAMメモリが含まれます。フォアグラウンドメモリをモニタリングすると、次のような処理の実行中のメモリ消費量を検出できます。
- アプリの起動
- フォアグラウンドとバックグラウンド間の遷移
- メモリを大量に消費する操作
UIとビデオの滑らかさ
次の操作における滑らかさのパフォーマンスを追跡します。
- UI操作
- ビデオの再生品質
滑らかさが低い場合、UIの遅延やビデオフレームのドロップが発生し、ユーザー体験が損なわれる可能性があります。
アプリのパフォーマンスを評価するプロセスには、次の手順が含まれます。
このプロセスに従うことで、ユーザーに影響が及ぶ前に、滑らかさの問題とフォアグラウンドメモリが大量に消費される状況を検出して解決できます。
前提条件
アプリのUIと、動画ストリーミングの流動性を測定する前に次の手順を実行します。
- Vega Videoアプリをダウンロード、ビルド、インストールします。
Vega Videoアプリの指示に従ってください。
Vega Videoアプリをダウンロードしたら、samplesディレクトリにあるサンプルのテストシナリオを確認します。テストシナリオの作成では、2つのテストシナリオについて説明しています。アプリ固有の要件に合わせてガイダンスに従ってください。
Vega Videoアプリのドキュメント(GitHubで近日公開予定)の指示に従ってください。
アプリをダウンロードしたら、samplesディレクトリにあるサンプルのテストシナリオを確認します。アプリ固有の要件に合わせてガイダンスに従ってください。
ebe0252fc(リンク切れを更新)
-
AppiumサーバーとAppium Vegaドライバーをインストールします。
Vegaとの統合に向けたAppiumのインストールにあるステップ1~4に従って作業します。
Appiumは、スクリプトを記述してアプリの滑らかさを測定するために必要となる自動化ツールです。
-
Appium Inspector(英語のみ)をダウンロードします。
UI操作の記録
-
Appium Inspectorによるアプリの検査の手順1~6に従います。
記録の開始 -
[Start Recording] アイコンをクリックして、アプリでのUI操作を開始します。
UI操作の記録 -
画面の左側のパネルで、[Tap/Swipe by Coordinate ([+])]アイコンをクリックします。
テストシナリオスクリプトの生成
KPIを正確に測定するには、テストシナリオを作成して、次の目的に合ったUI操作を定義します。
- フォアグラウンドメモリのモニタリング
- UIの滑らかさの評価
- ビデオの滑らかさの評価
テストシナリオにより、実際のユーザー操作パターンを反映したKPI測定値を得ることができます。
テストシナリオスクリプトを生成するには
-
VS Codeでコマンドパレットを開きます。
Mac: Shift + Command ⌘ + P
Linux: Shift + Ctrl + P
コマンドパレット -
「Kepler: Generate test scenario template」と入力します。
ファイル名を指定します -
テストシナリオスクリプトのファイル名を指定します。
テンプレートを生成すると、VS Codeにメッセージが表示されます。
テンプレート生成が成功したことを示すメッセージ このテンプレートの言語はPythonです。テンプレート内には、次の2つのメンバーを含むTestRunnerクラスがあります。
prep(青の枠内)run(赤の枠内)
TestRunner テスト中、各メンバーは次の役割を果たします。
-
prep- 実際のテストシナリオを実行する前に必要な準備をすべて行います。たとえば、ビデオを再生する場合は、アプリのビデオカルーセルに移動してビデオを再生するコードを、このメンバー関数内に定義する必要があります。
prepの例は、テストシナリオの作成に示されています。 -
run- テストケースのUI操作とアクションを定義します。たとえば、ビデオを再生し、一定時間におけるビデオ再生の滑らかさを測定する場合は、sleep関数を呼び出して、必要な時間が経過するまで待機します。
テストシナリオの作成
以下の各タブに、アプリ内でのUI操作とビデオストリーミングをシミュレートするテストシナリオを示します。
Amazon Fire TV Stickには、黒い円形の方向パッド(D-Pad)が付いたリモコンが付属しています。
このセクションでは、D-Pad入力をシミュレートして、アプリ内のUIコンポーネントを切り替えるテストシナリオを作成します。リモコンのD-Padの機能を模倣するコードを記述します。アプリユーザーは、D-Padを押すことでオプションを切り替えたり、選択を特定の方向に移動したりできます。アプリのUIを操作する場合と同じナビゲーションエクスペリエンスを、コードで実現する必要があります。
D-Pad入力をシミュレートするには、次の手順を実行します。
-
Appium Inspectorで、[Commands] タブに移動し、[Execute Script] > [executeScript] を選択します。
このアクションは、Appium InspectorからVegaデバイスにUI操作コマンドを送信します。
-
リモコンのD-Padキーを押す操作をシミュレートするには、
executeScriptメソッドに次の引数を指定します。
-
executeScriptCommand - D-Padキーの押下を表すキーイベントを送信するには、
jsonrpc: injectInputKeyEventを使用します。 -
jsonArgument - 次のプロパティを持つJSONオブジェクトを指定します。
-
inputKeyEvent(文字列)- D-Padの方向を表すキーイベントの値。D-Padに対応するコードを調べるには、「Appiumコマンド」のD-Padナビゲーションのセクションを参照してください。
-
holdDuration(数値)- D-Padキーを押したままにした状態をシミュレートする時間(ミリ秒単位)。単一の押下を表すには0を使用します。
たとえば、以下のコードをコピーしてjsonArgumentに追加すると、D-Padの「下」コマンドを、押下時間を0秒として送信します。
-
[[{"inputKeyEvent": "108", "holdDuration": 0}]]
例:
-
テストシナリオテンプレートを生成し、Appium Inspectorから記録されたUI操作をテンプレートにコピーします。
テストシナリオスクリプトの生成の手順に従ってください。
-
Appium Inspectorに戻ります。
-
[Recorder] タブをクリックして、記録されたコードを確認します。
このテストシナリオの目標は次のとおりです。
-
アプリを準備完了状態で起動する。この段階ではUI操作は必要ありません。
-
D-Padキーを送信してページ上でUIフォーカスを動かしながら、アプリのUIの滑らかさを測定する。
Appium Inspectorの [Recorder] ボックスからコードをコピーする場合、prepメンバー関数には何も定義する必要はありません。Recorderは、記録セッション中にユーザーが実行したアプリのUI操作をキャプチャします。記録されたUI操作を表すコードをrunメンバー関数に貼り付けます。このコードにより、テストの実行中にアプリ上で同じUI操作が実行されます。
次の画像では、同じD-Padキー押下イベントをループ処理で5回送信することで、ユーザー入力の繰り返しをシミュレートしています。
このセクションの内容
- Vega Videoアプリからビデオをストリーミングするテストシナリオを作成します。
- ビデオ再生の滑らかさと、初回フレーム表示までの時間(TTFVF)を測定します。
- Appium Inspectorを使用してVega Videoアプリを操作し、そのやりとりを記録します。
- 記録された操作を、「テストシナリオスクリプトの作成」で生成されたテストシナリオテンプレートにコピーします。
Vega Videoアプリからのビデオの再生をシミュレートするには
-
Appium Inspectorで、[Tap/Swipe by Coordinate]([+])アイコンをクリックします。
カーソルが十字形に変わります。
-
UI操作を開始したいアプリのUI要素をクリックします。
UI操作の開始 ヒント: アプリが画面の左側のパネルに表示されます。 - ストリーミングするテストビデオのサムネイルを見つけます。
- テストビデオのサムネイルをタップして、ビデオプレーヤー画面を開きます。
- [再生] ボタンをタップしてビデオのストリーミングを開始します。
- Appium Inspectorに戻ります。
- [Recorder] タブをクリックして、記録されたコードを確認します。
このテストシナリオの目標は次のとおりです。
- Vega Videoアプリを起動します。
- ビデオのサムネイルと [再生] ボタンをクリックして、ビデオの再生を開始する。アプリは、ビデオ再生の滑らかさを測定するための準備完了状態モードになります。
- 一定時間におけるビデオ再生の滑らかさを測定する。
アプリで2つの主要な機能を定義します。
prepはpreparation(準備)の略語です。したがって、これにはテストの反復処理を設定するためのアクションが含まれている必要があります。runメンバーの関数には、テストの反復処理の実際のKPI測定に関連するアクションが含まれている必要があります。
prepメンバー関数の最後でビデオを開始し、runメンバー関数ではビデオ再生がアクティブな状態からKPI測定が開始されるようにします。
画像では以下のことが示されています。
prep(青の枠内)のメンバー関数コードがVega Videoアプリカルーセルに移動し、ビデオを開始します。run(赤の枠内)メンバー関数は、ビデオストリーミングの滑らかさを測定します。
アプリの滑らかさの測定
-
VS Codeでコマンドパレットを開きます。
Mac: Shift + Command ⌘ + P
Linux: Shift + Ctrl + P
-
「Vega: Launch App KPI Visualizer」と入力します。
ユースケースの選択 -
コマンドパレットからユースケースを選択します。
Record CPU Profiler -
[Record CPU Profiler]のチェックボックスにチェックが入っていないことを確認し、[OK]を押します。
カスタムテストシナリオのダイアログボックス -
[Custom Test Scenario]ダイアログボックスで、[Yes]を選択します。
テストシナリオのスクリプトファイル -
テストシナリオスクリプトの生成で生成したテストシナリオを選択します。
-
テストを実行します。
結果のサンプルについては、アプリのKPIの測定を参照してください。
関連トピック
Last updated: 2025年9月30日

