as

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

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

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

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

フォアグラウンドメモリ

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

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

UIとビデオの滑らかさ

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

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

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

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

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

前提条件

アプリのUIと、動画ストリーミングの流動性を測定する前に次の手順を実行します。

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

Vega Videoアプリの指示に従ってください。

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

Vega Videoアプリのドキュメント(GitHubで近日公開予定)の指示に従ってください。

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

ebe0252fc(リンク切れを更新)

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

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

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

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

UI操作の記録

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

    この図は、記録の開始をクリックする場所を示しています
    記録の開始
  2. [Start Recording] アイコンをクリックして、アプリでのUI操作を開始します。

    この図は、Tap/Swipe by Coordinateをクリックする場所を示しています
    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. Kepler: Generate test scenario template」と入力します。

    この図は、テストシナリオのファイル名を作成する場所を示しています
    ファイル名を指定します
  3. テストシナリオスクリプトのファイル名を指定します。

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

    テンプレートが正常に生成されると、VS Codeにメッセージが表示されます
    テンプレート生成が成功したことを示すメッセージ

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

    • prepの枠内)
    • runの枠内)
    この図はTestRunnerクラスの2つのメンバーを示しています
    TestRunner

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

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

      たとえば、ビデオを再生する場合は、アプリのビデオカルーセルに移動してビデオを再生するコードを、このメンバー関数内に定義する必要があります。prepの例は、テストシナリオの作成に示されています。

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

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

テストシナリオの作成

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


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

この図は、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を使用します。

    たとえば、以下のコードをコピーしてjsonArgumentに追加すると、D-Padの「下」コマンドを、押下時間を0秒として送信します。

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

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

例:

この図は、JSONAgrumentのスクリプトを追加するAppium Inspectorのユーザーインターフェイスを示しています
jsonArgumentスクリプト
  1. テストシナリオテンプレートを生成し、Appium Inspectorから記録されたUI操作をテンプレートにコピーします。

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

  1. Appium Inspectorに戻ります。

  2. [Recorder] タブをクリックして、記録されたコードを確認します。

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

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

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

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

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

この図では、同じ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要素をクリックします。

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

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

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

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

  • prepはpreparation(準備)の略語です。したがって、これにはテストの反復処理を設定するためのアクションが含まれている必要があります。
  • runメンバーの関数には、テストの反復処理の実際のKPI測定に関連するアクションが含まれている必要があります。
この図は、アプリの2つの主要な機能を示しています
prepおよびrunメンバー関数

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

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

アプリの滑らかさの測定

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

    Mac: Shift + Command ⌘ + P

    Linux: Shift + Ctrl + P

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

    この図は、KPI Visualizerを実行するためのユースケースを選択できるコマンドパレットを示しています
    ユースケースの選択
  3. コマンドパレットからユースケースを選択します。

    この図は、Record CPU Profilerのチェックボックスがチェックされていない状態であることを示しています
    Record CPU Profiler
  4. [Record CPU Profiler]のチェックボックスにチェックが入っていないことを確認し、[OK]を押します。

    ダイアログボックスでは、YesまたはNoを選択するよう求められます
    カスタムテストシナリオのダイアログボックス
  5. [Custom Test Scenario]ダイアログボックスで、[Yes]を選択します。

    この図は、テストシナリオスクリプトを渡す方法を示しています
    テストシナリオのスクリプトファイル
  6. テストシナリオスクリプトの生成で生成したテストシナリオを選択します。

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

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


Last updated: 2025年9月30日