ここからはじめよう_ 22 回目 「Mobile Center 使ってみよう ( UFT連携_その2 ) 」

はじめに

前回から実際に、HPE Mobile Center (以後 MC と表記) と HPE UFT を連携しモバイルアプリケーションのテスト自動化の方法を解説しています。そのため前回までの各ツールのインストールと接続確認までを前提としていますので、まだ設定がされていない方は下記のリンクを参考にご自身の環境でセットアップしてください。

MCへのアプリケーションファイルのアップロード

最初に私の環境について説明しておきます。

  • デバイス: Nexus 7 (Android 6.0)
  • アプリケーション: Native アプリケーション( Advantage Online 「擬似オンライン製品購入サイト」)

みなさんの環境で、サンプルとして利用できる apk ファイルがないという場合は、次回以降で紹介する予定の Web の解説を待ってもらえばと思います。ここでは、apk ファイルを GUI を利用してアップロードしていく方法をまず説明します。

もちろん、CI / CD プロセスの中でビルド後、CI ツールから自動で apk /ipa ファイルをMC へアップロードするためのREST API も用意されています(こちらも次回以降で説明できる機会があれば説明したいと思います)。

前回の最後に「 接続確認( MC 管理画面からのデバイス確認)」を行いましたが、その手順で MC 画面にログインしてください。画面の上側に表示されているタブから「アプリ」をクリックして表示させましょう。こんな風になっているはずです↓(下記図参照)。

UFT_MC_17.png

次に+アイコンの「アプリのアップロード」をマウスでクリックしてみてください。次のようなファイルアップロードのウィンドウが開きますので、今回対象とする apk ファイルを選択して「 開く 」をクリックして下さい。

UFT_MC_18.png

するとアップロードがはじまります。MC では apk ファイルをアップロードする際にラッピング処理をします(これをパッケージ化と MC 関連ドキュメント内では呼んでいます)のでアップロードに数分ほど時間を要します。最中は+アイコンが回転しながら待機状態になりますので、完了するまで待ちましょう。MC 内には実はスクリプト作成に最適化されたパッケージした apk ファイルとパッケージしてない非パッケージの素の apk ファイルの2つが格納されていて、ラッピング処理したアプリはテスト対象として使いたくない場合には、非パッケージ版を選択することができます。今回は、この非パッケージ版で記録をしていきます。

UFT_MC_19.png

完了すると、新しく追加したアプリがアイコンと共に表示されているのが確認できるはずです。これでアプリケーションの準備はできました(下記図の赤枠で囲んだ所が新規にアップロードした apk ファイルのアプリケーションです)。

UFT_MC_20.png

これで対象アプリの準備ができました。

記録開始の準備(新規スクリプトの準備とデバイスへのアプリケーションファイルのアップロード)

今度は UFT でスクリプトを記録するための「新規テストスクリプト」を準備し、実際のデバイス(今回はタブレット Nexus 7 を使います)にアプリケーションをアップロードしてある MC からアップロードしてスクリプト記録ができるためので事前準備をします。UFT と MC を連携する事で従来のUFT のスクリプト作成方法である

キャプチャー&リプレイ

が可能になります。キャプチャ方法も 次の 2 つの方法をサポートしています

  • リモートデスクトップ画面(以後 RDP と表記)をマウスとキーボードで操作
  • 実際のデバイス画面を操作

RDP と実際のデバイスを操作する方法でいくつかのジェスチャー記録については対応しているもの、してないものがあり、してない場合でもコードを記述して対応する事ができるものもありますので記録できない操作が出てきた場合にチェックしてみましょう。英語にはなりますが、こちらに各ジェスチャーの記録の対応について説明しています(ジェスチャー操作の記録について)。

ここでは、RDP を利用した方法で記録をしていきます。前回の手順をされていますのですでに UFT が起動しているはずですから、ツールバーから「ファイル」-「新規」-「テスト」をクリックしましょう(下記図赤枠)。

UFT_MC_21.png

「新規テスト」ウィンドウが開くので「GUI テスト」を選択し、適宜これから作成するスクリプトに対する名前をつけて「作成」をクリックしてください。デフォルトでは作成したスクリプトはUFT をインストールした「マイドキュメント」の中に「Unified Functional Testing」というフォルダが作成され、そこにテストスクリプト名をもったフォルダが作成され、格納されます。

UFT_MC_22.png

次にツールバーの「記録」-「記録と実行環境設定」をクリックしましょう↓(下記図赤枠部分)。

とくUFT_MC_23.png

下記図のように「記録と実行環境設定」ウィンドウが表示されますので、まず、上のタブで「Mobile」をクリックして表示させてください。このタブで apk または ipa のNative アプリか Hybrid アプリを対象とした場合に記録環境設定を行うタブになります。「Mobile Center の設定」をONにして有効化し、最初の環境設定として記録に使うデバイスを選択するための「特定のデバイス」の「鉛筆アイコン」をクリックしましょう(下記図参照)。

UFT_MC_24.png

次のデバイス選択画面が表示されますので、該当デバイス(今回は Nexus 7 )を選択し(選択するとそのアイコンの上が緑にハイライトされます)、右上の「保存して閉じる」をクリックして選択画面を閉じます。

UFT_MC_25.png

次は「テスト対象アプリケーション」の「鉛筆アイコン」をクリックしましょう(下記図参照)。

UFT_MC_26.png

アプリ選択画面が表示されるので、ここで先ほどアップロードした「Advantage Shopping」を選択しましょう。ここで、先ほど説明した「パッケージ版」か「非パッケージ版」かを選択できます。アプリ表示ボックスの下にみえる「パッケージバージョン」チェックボックスにチェックをすると「パッケージ版」を使用し、チェックしなければ「非パッケージ版」を利用することになります。ここではチェックせずに「非パッケージ版」として「保存して閉じる」をクリックしましょう↓(下記図赤枠)。みなさんの環境ではアップロードしている apk ファイルが違うと思いますので適宜アプリケーション名は読み換えて進めてください。

UFT_MC_27.png

次に「テスト定義」の「鉛筆アイコン」をクリックしましょう(下記図参照)。

UFT_MC_28.png

「テストオプション」では、記録開始時に起動するする画面や、収集するデバイスのリソース情報(バイタル情報)を設定します。今回は、「開始時に起動」で「Mobile Center アプリ」で先ほど選択したアプリを選択、「インストール済みアプリ」で「インストール(現在デバイスにはアプリがインストールされていないので1度目は必ず必須)」と「再起動」を選択、「デバイスメトリクス」から「CPU」、「メモリ」、「ログ」を選択しましょう。CPU とメモリは文字通り、デバイスのCPU メモリ消費量を取得します。ログはバックグラウンドで logcat を利用してログを収集します。logcat の説明はここではしませんので、必要な方は logcat でググってみてください。設定したら右上の「保存して閉じる」をクリックして閉じましょう。

UFT_MC_29.png

「記録と実行環境設定」画面にもどるので「適用」をクリックし上記の設定を反映したら、「OK」をクリックして閉じましょう。

UFT_MC_30.png

これで、スクリプト記録前の準備ができましたので、さっそく記録を開始していきましょう。

スクリプト記録

記録ボタンをクリックしてさっそく記録をしていきましょう(赤丸ボタン)。

UFT_MC_31.png

RDP 画面が自動で起動し、UFT の「記録バーウィンドウ」がフローティング状態で表示されるはずです。自動でインストールと再起動が行われ、起動直後の画面が表示されているはずです。

UFT_MC_32.png

今回利用している私のアプリは「擬似オンライン製品購入サイト」でスピーカーなどを購入するアプリとなっていますので、クリック操作で希望するスピーカーを選択する画面まで進むと下記のようになります。ここで、自動化ツールでは必要な期待値チェックを入れてみます。これは、人間であれば見て、この表示おかしいといった判断ができますが、ツールではそれを強制的にチェックポイントとして入れます。いわゆる期待値チェックというものです。さっそくやり方を解説していきます。今回の期待値はスピーカーの価格にしてみます(みなさんの環境では適宜読み換えてすすめてください)。

該当する画面(ここでは購入したいスピーカーを選択表示した画面に価格が表示されています)でUFT の「記録ツールバー」の虫眼鏡アイコンをクリックし、「標準チェックポイント」を選択してみましょう(赤枠部分)。

UFT_MC_33.png

マウスのアイコンが指差しアイコンに変わりますので、それを期待値チェックしたい部分(ここでは価格)にあてた状態で左クリックしてみましょう(下記赤枠)。


UFT_MC_34.png

選択した価格部分について、UFT が価格部分(オブジェクト)のプロパティ解析を走らせ、次のような「標準チェックポイント」画面を表示してくれるはずです。「OK」をクリックしましょう。

UFT_MC_35.png

この価格部分は複数のプロパティ値を持っていることが分かります。ここではテキスト(Text)プロパティの $169.99 をチェックしますので、チェックボックスを ON にして期待値チェックを有効にしてみましょう。と、ここでさらにちょっとスクリプトの保守性を考えて見ましょう。価格が頻繁にかわる場合、いまのままだと固定値ですから、エラーになってしまいます。そういう場合はのスクリプト回避方法は

  • 毎回変わる価格をテストデータとして割り当てられるようにパラメータ化しておく
  • 正規表現で数字や期待桁数であればOKとする

といったものが代表的です。UFT はどちらもできますが、ここでは「正規表現」を利用してみましょう。「定数」の横にある「鉛筆」アイコンをクリックしましょう。

UFT_MC_36.png

「定数値オプション」画面が表示されるので、もともと

$166.99

と表示されていた定数を次のように正規表現で書き換えて、「正規表現」チェックボックスにチェックをしてみましょう(下記図のようになります)。「$(ドルマーク)」 文字の後に数字が1桁以上そんざいし、「.(小数点)」の後に数字が1桁以上存在するという表現になります。「OK」をクリックして適用します。「$(ドルマーク)」と「.(小数点)」は正規表現では特殊文字(メタキャラ)になるので、\(バックスラッシュは環境によって円マークで表示されます)を前につけています。

UFT_MC_41.png

「チェックポイントのプロパティ」画面に戻るので「OK」をクリックして閉じます。

UFT_MC_42.png

テストケースとしてのアプリ操作を終えたらスクリプト記録を停止しましょう。「記録ツールバー」の「四角ボタン(赤枠)」をクリックして停止します。補足として、右にあるメトリクスを表示させておくことで、リアルタイムにリソース消費状況がわかります。

UFT_MC_39.png

停止すると、UFT の画面に記録されたスクリプトが生成されているのがわかると思います。まずは、ここまでのスクリプトの状態で一度保存しましょう。「ツールバー」からフロッピーアイコンの「保存」をクリックして保存してください。また、上述の操作では触れてませんでしたが文字入力も「サイトの検索画面」もしており、文字入力部分は下記の赤枠にあるように記録されます。この文字部分も毎回テストデータから入力を動的に割り当てられるようにパラメータ化する事が出来ます(これは次回とします)。

UFT_MC_40.png

今回は、実際に apk ファイルをデバイスにアップロードし、スクリプトをキャプチャリプレイツールでとしてこれまでの UFT の利用方法と同様の方法でキャプチャ(記録)できる事を確認しました。また、人が判断する正しい画面表示をツールで行うための期待値チェック方法機能として「チェックポイント」から「標準チェックポイント」の方法と保守性をあげるための TIPS として正規表現を利用するところまでを解説しました。

次回は、さらにスクリプトに動的パラメータを設定しテストデータを適用できるようにスクリプトの編集方法を解説したいと思います。

タグ:
カテゴリ: