as

Settings
Sign out
Notifications
Alexa
Amazonアプリストア
Ring
AWS
ドキュメント
Support
Contact Us
My Cases
開発
設計と開発
公開
リファレンス
サポート

滑らかさとフォアグラウンドメモリの測定

滑らかさとフォアグラウンドメモリの測定

App KPI Visualizerを使用すると、アプリのパフォーマンスを監視して最適化できます。 フォアグラウンドメモリおよびUIとビデオの滑らかさをモニタリングして最適化するために役立ちます。

フォアグラウンドメモリ

アプリがアクティブなときの常駐セットサイズ(RSS)を測定します。これには、共有RAMとプライベートRAMが含まれます。フォアグラウンドメモリをモニタリングすると、次のような処理の実行中のメモリ消費量を検出できます。

  • アプリの起動
  • フォアグラウンドとバックグラウンド間の遷移
  • メモリを大量に消費する操作

UIとビデオの滑らかさ

次の操作における滑らかさのパフォーマンスを追跡します。

  • UI操作
  • ビデオの再生品質

滑らかさが低い場合、UIの遅延やビデオフレームのドロップが発生し、ユーザー体験が損なわれる可能性があります。

アプリのパフォーマンスを評価するプロセスには、次の手順が含まれます。

このプロセスに従うことで、ユーザーに影響が及ぶ前に、滑らかさの問題とフォアグラウンドメモリが大量に消費される状況を検出して解決できます。

前提条件

アプリのUIとビデオストリーミングの滑らかさを測定する前に、次の手順を完了してください。

  1. Vega Videoアプリをダウンロード、ビルド、インストールします。

    Vega Videoアプリのドキュメントの手順に従ってください。

    アプリをダウンロードしたら、samplesディレクトリにあるサンプルのテストシナリオを確認します。アプリ固有の要件に合わせてガイダンスに従ってください。

  2. AppiumサーバーとAppium Vegaドライバーをインストールします。

    Vegaとの統合に向けたAppiumのインストールにあるステップ1~4に従って作業します。

    Appiumは、スクリプトを記述してアプリの滑らかさを測定するために必要となる自動化ツールです。

  3. Appium Inspector(英語のみ)をダウンロードします。

UI操作の記録

  1. Appium Inspectorによるアプリの検査の手順1~6に従います。

    録画を開始するボタンの位置を示すスクリーンショット。
  2. [Start Recording] アイコンをクリックして、アプリでのUI操作を開始します。

    録画ボタンが赤く表示されている画面のスクリーンショット。これは録画中であることを意味します。
  3. 画面の左側のパネルで、[Tap/Swipe by Coordinate][+])アイコンをクリックします。

テストシナリオスクリプトの生成

KPIを正確に測定するには、テストシナリオを作成して、次の目的に合ったUI操作を定義します。

  • フォアグラウンドメモリのモニタリング
  • UIの滑らかさの評価
  • ビデオの滑らかさの評価

テストシナリオにより、実際のユーザー操作パターンを反映したKPI測定値を得ることができます。

スクリプトの生成

  1. VS Codeでコマンドパレットを開きます。

    Mac: Shift+Command ⌘+P

    Linux: Shift+Ctrl+P

    コマンドパレットで「Vega: Generate test scenario template」コマンドを入力している画面を示すスクリーンショット。
  2. Vega: Generate test scenario template」と入力します。

    保存ポップアップ画面のスクリーンショット。ここでスクリプトに名前を付けることができます。
  3. テストシナリオスクリプトのファイル名を指定します。

    テンプレートを生成すると、VS Codeにメッセージが表示されます。

    成功メッセージのスクリーンショット。選択したファイルパスにテンプレートが正常に生成されたことを示します。

    このテンプレートの言語はPythonです。テンプレート内には、次の2つのメンバーを含むTestRunnerクラスがあります。

    • prepの枠内)
    • runの枠内)
    prep関数とrun関数のコードを青と赤のボックスで囲んで示したスクリーンショット。

    テスト中、各メンバーは次の役割を果たします。

    • prep - 実際のテストシナリオを実行する前に必要な準備をすべて行います。

      たとえば、ビデオを再生するには、このメンバー関数内でナビゲーションと再生コードを定義します。

      prepの例は、テストシナリオの作成に示されています。

    • run - テストケースのUI操作とアクションを定義します。

      たとえば、一定期間におけるビデオ再生の滑らかさを測定するには、sleep関数を呼び出して、必要な時間が経過するまで待機します。

テストシナリオの作成

以下の各タブに、アプリ内でのUI操作とビデオストリーミングをシミュレートするテストシナリオを示します。


Amazon Fire TV Stickには、黒い円形の方向パッド(D-Pad)が付いたリモコンが付属しています。

Amazon Fire TV Stickのリモコンのスクリーンショット。上部の電源ボタンの下に黒い方向パッドがあります。

このセクションでは、D-Pad入力をシミュレートして、アプリ内のUIコンポーネントを切り替えるテストシナリオを作成します。リモコンのD-Padの機能を模倣するコードを記述します。アプリユーザーは、D-Padを押すことでオプションを切り替えたり、選択を特定の方向に移動したりできます。アプリのUIを操作する場合と同じナビゲーションエクスペリエンスを、コードで実現する必要があります。

D-Pad入力をシミュレートするには、次の手順を実行します。

テストシナリオの作成方法を示すアニメーションGIF。
  1. Appium Inspectorで [Commands] タブに移動し、[Execute Script] > [executeScript] を選択します。

    これにより、Appium InspectorからVegaデバイスにUI操作コマンドが送信されます。

  2. リモコンのD-Padキーを押す操作をシミュレートするには、executeScriptメソッドに次の引数を指定します。

    • executeScriptCommand - D-Padキーの押下を表すキーイベントを送信するには、jsonrpc: injectInputKeyEventを使用します。

    • jsonArgument - 次のプロパティを持つJSONオブジェクトを指定します。

      • inputKeyEvent(文字列)- D-Padの方向を表すキーイベントの値。D-Padに対応するコードを調べるには、「Appiumコマンド」のD-Padナビゲーションのセクションを参照してください。

      • holdDuration(数値)- D-Padキーを押したままにした状態をシミュレートする時間(ミリ秒単位)。単一の押下を表すには0を使用します。

    たとえば、D-Padの「Down」コマンドを保留時間0秒に設定して送信するには、次のコードをjsonArgumentに追加します。

    クリップボードにコピーしました。

    [[{"inputKeyEvent": "108", "holdDuration": 0}]]
    

    例:

    jsonAgrumentのスクリプトを追加するAppium Inspectorのユーザーインターフェイスを示すスクリーンショット。
  3. テストシナリオテンプレートを生成し、Appium Inspectorから記録されたUI操作をテンプレートにコピーします。

    テストシナリオスクリプトの生成の手順に従ってください。

  4. Appium Inspectorに戻ります。

  5. [Recorder] タブを選択して、記録されたコードを確認します。

テストシナリオの目標

  • アプリを準備完了状態で起動する。この段階ではUI操作は必要ありません。

  • D-Padキーを送信してページ上でUIフォーカスを動かしながら、アプリのUIの滑らかさを測定する。

Appium Inspectorの [Recorder] ボックスからコードをコピーする場合、prepメンバー関数には何も定義する必要はありません。Recorderは、記録セッション中にユーザーが実行したアプリのUI操作をキャプチャします。記録されたUI操作を表すコードをrunメンバー関数に貼り付けます。このコードにより、テストの実行中にアプリ上で同じUI操作が実行されます。

次の画像では、同じD-Padキー押下イベントをループ処理で5回送信することで、ユーザー入力の繰り返しをシミュレートしています。

D-padキー押下イベントを示すスクリーンショット。

このセクションの内容

  1. Vega Videoアプリからビデオをストリーミングするテストシナリオを作成します。
  2. ビデオ再生の滑らかさと、初回フレーム表示までの時間(TTFVF)を測定します。
  3. Appium Inspectorを使用してVega Videoアプリを操作し、そのやりとりを記録します。
  4. 記録された操作を、「テストシナリオスクリプトの作成」で生成されたテストシナリオテンプレートにコピーします。

Vega Videoアプリからのビデオの再生をシミュレートするには

テストシナリオの作成プロセスを示すアニメーションGIF。
  1. Appium Inspectorで、[Tap/Swipe by Coordinate][+])アイコンをクリックします。

    カーソルが十字形に変わります。

  2. UI操作を開始するアプリのUI要素をクリックします。

    UI操作の開始方法を示すアニメーションGIF。
  3. ストリーミングするテストビデオのサムネイルを見つけます。
  4. テストビデオのサムネイルをタップして、ビデオプレーヤー画面を開きます。
  5. [再生] ボタンをタップしてビデオのストリーミングを開始します。
  6. Appium Inspectorに戻ります。
  7. [Recorder] タブをクリックして、記録されたコードを確認します。

このテストシナリオの目標は次のとおりです。

  • Vega Videoアプリを起動します。
  • ビデオのサムネイルと [再生] ボタンをクリックして、ビデオの再生を開始する。アプリは、ビデオ再生の滑らかさを測定するための準備完了状態モードになります。
  • 一定時間におけるビデオ再生の滑らかさを測定する。

アプリで2つの主要な機能を定義します。

  • prepはpreparation(準備)の略語です。このため、テストの反復処理を設定するためのアクションが含まれている必要があります。
  • runメンバーの関数には、テストの反復処理の実際のKPI測定に関連するアクションが含まれている必要があります。
prepメンバー関数とrunメンバー関数を示すスクリーンショット。

画像では以下のことが示されています。

  • prepの枠内)のメンバー関数コードがVega Videoアプリカルーセルに移動し、ビデオを開始します。
  • runの枠内)メンバー関数は、ビデオストリーミングの滑らかさを測定します。

アプリの滑らかさの測定

  1. VS Codeでコマンドパレットを開きます。

    Mac: Shift+Command ⌘+P

    Linux: Shift+Ctrl+P

  2. Vega: Launch App KPI Visualizer」と入力します。

    選択できるユースケースの一覧を示すスクリーンショット。
  3. コマンドパレットからユースケースを選択します。

    キャプチャするリソースとして [Record CPU Profiler] が表示された画面のスクリーンショット。
  4. [Record CPU Profiler] のチェックボックスがオフになっていることを確認し、[OK] をクリックします。

    カスタムテストシナリオを使用するかどうかをたずねるダイアログボックスのスクリーンショット。[Yes] または [No] を選択できます。
  5. [Custom Test Scenario] ダイアログボックスで、[Yes]をクリックします。

    テストシナリオのスクリプトファイルを示すスクリーンショット。
  6. テストシナリオスクリプトの生成で生成したテストシナリオを選択します。

  7. テストを実行します。

結果のサンプルについては、アプリのKPIの測定を参照してください。


Last updated: 2025年11月13日