UFT One
画面上に表示された値をハンドリング! テスト自動化の幅をUP
UFT Oneでテストを自動化する際に、「事前に決められた結果ではなく、テスト実行時に得られた結果を取得し、アプリケーションの計算ロジックを動的に実行させるようなテストをしたい」というご要望がありませんか?
UFT Oneは、テスト実行中に出力された値を、その後の処理に活用することが可能です。
本ページでは、オブジェクトのプロパティ値を取得し、テストに利用する方法を以下のステップでご紹介します。
作業手順
- 【STEP 1】画面上の値を取得し、変数に格納
- 【STEP 2】変数に格納された値を加工
- 【STEP 3】加工した値をテストに利用
【STEP 1】画面上の値を取得し、変数に格納
UFT One付属のサンプルアプリケーション「フライト予約システム」を例に、チケットの単価として表示される数値を取得して、 変数A に格納する手順をご紹介します。
手順
(1)値を取得したいUFT Oneスクリプト内のステップにカーソルをあわせ、UFT Oneメニュー・バーの[挿入]>[ステップジェネレータ]を選択します。
(2)ステップジェネレータ]画面で以下の項目について、設定します。
以下の通り設定するには、オブジェクトリポジトリ内に対象のオブジェクト情報が登録されていることが必要ですので、対象のオブジェクトでの操作をUFT Oneで記録しておくことが必要です。
カテゴリ : [テストオブジェクト]を選択します。
オブジェクト: オブジェクト選択ボタン(キューブのアイコン)をクリックします。矢印ボタンをクリックすると、カーソルが指差しアイコンに変化したら、対象のオブジェクトをクリックします。
操作 : [GetROProperty]を選択します。GetROPropertyとは、オブジェクトのプロパティ値を取得するUFT One独自の関数です。
引数 : [値]のカラムに、Propertyで取得したいプロパティ値(例:text)を指定します。
リターン値 : リターン値をチェックし、任意の変数名(ここでは「A」とします)を入力します。
※以下の画面を参考にしてください。
|
上記手順でプロパティ値の取得、変数への格納を行うと、UFT Oneスクリプト(エキスパートビュー)に以下の通り追記されます。
A = Window("フライト予約").WinEdit("単価").GetROProperty("text")
【STEP 2】変数に格納された値を加工
取得した値をテストに利用したくても、そのままの値では入力値としては不正で使用できない場合がありませんか。
STEP 2では、STEP 1で取得し、変数Aに格納した値(チケット単価)を例に、値の加工例を2つご紹介します。
※フライト予約システムでチケット単価を取得した場合、[$xxx.x0]の形式で値が取得されます。
■加工例1■ 取得した値の最初の文字[$]を削除したい
【使用する関数】
Replace関数:文字列から特定の文字を別の文字に置換します。
以下のスクリプトは、[$]をNull値に置換し、[$]を削除した値を
変数B
に格納するサンプルスクリプトです。
A = Window("フライト予約").WinEdit("単価").GetROProperty("text")
B = replace(A, "$", " ")
■加工例2■ 取得した単価の最初の[$]と、最後の[0]を削除したい
【使用する関数】
Mid関数:文字列の指定した位置から、指定された文字列だけを取り出して返します。
以下のスクリプトは、2文字目から5文字目までの値を返して、変数Bに格納するサンプルスクリプトです。
A = Window("フライト予約").WinEdit("単価").GetROProperty("text")
B = mid(A,2,5)
【STEP 3】加工した値をテストに利用
加工した値をテストに活用することで、UFT Oneでのテストの自動化の幅が広がります。
ここではサンプルアプリケーションを例に、加工した値の活用例をご紹介します。
■活用例■
フライト予約システムでチケットを複数枚購入する処理を繰り返し実行する際に、チケット単価×チケット枚数の金額が画面上に表示される合計金額に合致しているのかをチェックする。
【手順1】
ここでは、チケットを違う枚数で購入する処理を3回繰り返すという想定で、パラメータ設定を行います。
データテーブル(グローバルシート)の[チケット枚数]というカラムから入力データを読み込む設定を行います。
エキスパートビューではスクリプトは以下のように記述されます。
Window("フライト予約").WinEdit("チケット枚数:").Set DataTable("チケット枚数",dtGlobalSheet)
【手順2】
キーワードビューに切り替え、チケット枚数を入力するステップにカーソルを合わせ、[挿入]>[ステップジェネレータ]からチケット単価の値を変数Aに格納し、[$]を削除した値を変数Bに格納します。
(詳細はSTEP 2を参照ください)
エキスパートビューではスクリプトは以下のように記述されます。
A = Window("フライト予約").WinEdit("単価:").GetROProperty("text")
B = replace(A,"$"," ")
【手順3】
変数Bとチケット枚数を掛け、計算結果を変数Cに格納します。
エキスパートビューではスクリプトは以下のように記述されます。
C = B * DataTable.Value("チケット枚数", dtGlobalSheet)
【手順4】
変数Cの最初に[$]を、最後に[0]を追加し、データテーブルの[合計]カラムに出力するようにします。 ※手順3の計算ロジックに当てはめた計算結果は、小数点第2位の[0]を省略してしまうため、最後に画面上に表示されている合計金額と計算結果を比較する場合には、画面上に表示されている合計金額の形式にあわせる必要があります。
エキスパートビューではスクリプトは以下のように記述されます。
DataTable("合計", dtGlobalSheet) = Cstr("$" & C & 0)
【手順5】
合計金額の箇所にチェックポイントを挿入し、期待値をパラメータ化させ、【手順4】で出力したカラムを指定します。
チェックポイントの期待値のパラメータ化は、以下の手順で設定します。
- 1.キーワードビューにて、チェックポイントのステップ上で右クリックし、[チェックポイントのプロパティ]を選択します。
- 2.[値の設定]で[パラメータ]を選択し、パラメータオプションボタン(メモ帳のアイコン)をクリックします。
- 3.[パラメータのタイプ]で[DataTable]、[名前]で[合計]カラムを選択し、OKボタンをクリックします。
このようにスクリプトの編集を行うことで、画面上に表示される動的に変化する値をうまくハンドリングでき、テストに利用できます。
入力データの生成や比較対象のデータの生成も自動化でき、UFT Oneでのテストの幅を広げることができます。ぜひ、参考にしてみてください。
- 2020.8.7アシスト提供の「UFT One」で、スミセイ情報システムのテスト時間削減と品質向上を実現
- 2020.6.17アシスト、次世代型ITサービスマネジメント変革ソリューション「ENISHI」を発表
- 2020.1.24アシスト提供の「Unified Functional Testing」と「Operations Orchestration」を東京ガスiネットが採用
- 2019.10.10アシスト、RPAツール「Unified Functional Testing」を採用し、導入から半年で業務時間を370時間削減
- 2019.9.24アシスト、ビッグデータ及びシステム品質管理ソリューションの販売活動において、マイクロフォーカスエンタープライズ株式会社最高のパートナープログラム「Platinum Partner」を受賞