関数を使用した GUI アプリケーションのテスト

この実習では、ユーザ定義関数の作成方法と使用方法について説明します。ユーザ定義関数は、特定のオブジェクト・クラスで標準設定でサポートされていないタスクを処理するのに役立ちます。

関数をテストするための新規テストの作成

既存の MyFlight テストのコピーを作成し、そのコピーに関数ライブラリを追加して、アプリのテストに使用します。

次の手順を実行します。

  1. UFT OneMyFlightApplication ソリューションを開いた状態から始めます。

    UFT One を一度閉じてから開いた場合は、WPF Add-in を読み込んだ状態で開始してください。

  2. ソリューション・エクスプローラで[MyFlight]テスト・ノードを右クリックし、[名前を付けて保存]を選択します。

  3. テストを同じ場所に保存します(C:\Users\<ユーザ名>\Documents\Unified Functional Testing)。

    ファイル名]フィールドに「MyFlightFunction」と入力し、[保存]をクリックします。

ソリューション・エクスプローラの表示が MyFlightFunction テストに切り替わります。このテストは、元の MyFlight テストとまったく同じアクションとステップを含みます。

ヒント: 両方のテストを同時に表示するには、MyFlight テストをソリューションに追加し直します。

ソリューション・エクスプローラでソリューション・ノードを右クリックし、[追加]>[既存のテストの追加]を選択します。MyFlight テストを選択します。

先頭に戻る

関数の作成とテストへの関連付け

MyFlights アプリの日付が正しい形式で表示され、実際に有効であるかどうかをテストする関数を作成します。

これを MyFlightsFunction テストに関連付けて、使用できるようにします。

次の手順を実行します。

  1. ツールバーで[新規作成]ボタンの下向き矢印をクリックし、[関数ライブラリ]を選択します。

    [新規関数ライブラリ]ダイアログで、次の手順を実行します。

    1. C:\%HOMEPATH%\My Documents\Unified Functional Testing フォルダを開いていることを確認します。
    2. TutorialFunctionLibraries というサブフォルダを新規に作成して開きます。
    3. ファイル名]フィールドに「CheckDateFunction」と入力して、新しい関数ライブラリに名前を付けます。
    4. 作成]をクリックします。

    新しい CheckDateFunctionUFT One の新しいタブとして開きます。

  2. 次のコードをコピーして、[CheckDateFunction]ファイルに貼り付けます。

    これは、日付形式が DD-<MMM 文字列>-YYYY に等しく、実際にアプリの有効な日付であることを確認する関数です。

    '次の関数は、日付文字列(dateStr)が
    'DD-<MMM string>-YYYY を表す文字で構成されていることを検査します
    Function check_data_validity( dateStr )
     Dim firstDashPos, secondDashPos
     Dim mmPart, ddPart, yyyyPart
     firstDashPos = inStr( dateStr , "-" )
     secondDashPos = inStrRev( dateStr, "-" )
     If ( (firstDashPos <> 2 and firstDashPos <> 3) or (secondDashPos <> 6 and secondDashPos <> 7)) Then
       reporter.ReportEvent micFail,"Format check", "Date string is: "&" missing at least one dash ( - )."
       check_data_validity = False
       Exit function
     End If
     if firstDashPos = 2 Then
       ddPart = mid( dateStr, 1, 1)
     else
       ddPart = mid( dateStr, 1,2 )
     End If
     mmPart = mid( dateStr, firstDashPos+1, 3 )
     yyyyPart = mid( dateStr, secondDashPos +1 , 4 )
     If  not( mmPart="Jan" or mmPart="Feb" or mmPart="Mar" or mmPart="Apr" or mmPart="May" or mmPart="Jun" or mmPart="Jul" or mmPart="Aug" or mmPart="Sep" or mmPart="Oct" or mmPart="Nov" or mmPart="Dec")  Then
       reporter.ReportEvent micFail, "Format Check", "The month: "& mmPart&"is invalid. It is not a valid month string."
       check_data_validity = False
       Exit function
     End If
     If ddPart > 31 Then
       reporter.ReportEvent micFail, "Format Check", "The date: "& ddPart&"is invalid.It exceeds 31."
       check_data_validity = False
       Exit function
     End If
     If yyyyPart < 2021 Then
       reporter.ReportEvent micFail, "Format Check", "The year: "&yyyyPart&" is invalid. (Prior to this year.)"
       check_data_validity = False
       Exit function
     End If
     check_data_validity = True
    End Function
  3. 関数ライブラリ・ファイルを保存して閉じます。
  4. 新しい関数ライブラリを MyFlightsFunction テストに関連付けます。

    次の手順を実行します。

    1. ソリューション・エクスプローラで[MyFlightsFunction]テスト・ノードを右クリックし、[追加]>[関数ライブラリの関連付け]を選択します。
    2. [関数ライブラリを開く]ダイアログで CheckDateFunction.qfl ファイルを選択し、[開く]をクリックします。

    CheckDateFunction は、ソリューション・エクスプローラの MyFlightsFunction テストの、独立した「Function Libraries」サブフォルダ内に追加されます。

  5. テストを保存して、「チェックする日付プロパティの名前の検索」に進んでください。

先頭に戻る

チェックする日付プロパティの名前の検索

前の手順で追加した関数は、カレンダ・オブジェクトの日付形式をチェックします。

テストでこの日付形式を検証するには、最初に、このチェックを実行する特定のオブジェクトのプロパティを検索してメモしておく必要があります。

次の手順を実行します。

  1. MyFlights GUI サンプル・アプリを開き、ログインします。

    詳細については、「Flight GUI 層」を参照してください。

  2. UFT One で、[オブジェクト認識センターツールバー・ボタンの近くにある下矢印をクリックし、[オブジェクト スパイを選択します。

    UFT One 15.0.1 以前:オブジェクト スパイ]ツールバー・ボタンをクリックします。

  3. [オブジェクト スパイ]で、指差しボタンをクリックします。

    UFT One が最小化され、MyFlights アプリが表示されたら、日付フィールドをクリックしてそのプロパティをオブジェクト・スパイに表示します。

  4. オブジェクト・スパイで、[プロパティ]タブのテーブルを日付の値が表示されるまでスクロールし、プロパティ名をメモします。

    例:

  5. オブジェクト・スパイを閉じ、テストに戻ります。
  6. MyFlightFunction テストで、FlightFinder アクションをエディタで開きます。
  7. FlightFinder アクションで、WpfCalendar.SetDate ステップの後にカーソルを置き、Enter キーを押して新しい行を追加します。
  8. datePicker オブジェクトのdateプロパティを取得するステップを追加します。これにより、UFT One に関数を正しく実行するために必要な詳細が確実に含まれます。

    次のコードをコピーして、アクションの新しい行に貼り付けます。

    currentDate = WpfWindow("Micro Focus MyFlight Sample").WpfCalendar("datePicker").GetROProperty("DisplayDate")
    orderDate = currentDate + 10
    WpfWindow ("Micro Focus MyFlight Sample").WpfCalendar("datePicker").SetDate orderDate
    departureDate = WpfWindow("Micro Focus MyFlight Sample").WpfCalendar("datePicker").GetROProperty("date")
  9. チェックポイント関数を呼び出すための別のステップを追加します。次のコードをコピーして、departureDate ステップの後の新しい行に貼り付けます。

    If check_data_validity(departureDate) Then
    	reporter.ReportEvent micPass, "Date is valid", departureDate
    End If
  10. テストを保存して、次に進んでください。

先頭に戻る

エディタでのアクションの表示

エディタで、アクションに次の行が含まれていることを確認します。

WpfWindow("Micro Focus MyFlight Sample").WpfComboBox("fromCity").Select "Los Angeles"
WpfWindow("Micro Focus MyFlight Sample").WpfComboBox("toCity").Select Sydney
currentDate = WpfWindow("Micro Focus MyFlight Sample").WpfCalendar("datePicker").GetROProperty("DisplayDate")
orderDate = currentDate + 10
WpfWindow ("Micro Focus MyFlight Sample").WpfCalendar("datePicker").SetDate orderDate
departureDate = WpfWindow("Micro Focus MyFlight Sample").WpfCalendar("datePicker").GetROProperty("date")
If check_data_validity(departureDate) Then
reporter.ReportEvent micPass, "Date is valid", departureDate
End If
WpfWindow("Micro Focus MyFlight Sample").WpfComboBox("Class").Select Business
WpfWindow("Micro Focus MyFlight Sample").WpfComboBox("numOfTickets").Select "2"
WpfWindow("Micro Focus MyFlight Sample").WpfButton("FIND FLIGHTS").Click

先頭に戻る

キーワード・ビューでのアクションの表示

キーワード・ビューに切り替えて、新しい datePicker GetROProperty ステップおよび関数の呼び出しステップを確認します。

先頭に戻る

関数テストの実行と結果の分析

テストを実行して、UFT One でどのように関数チェックが実行され、日付の形式と値が検証されるかを確認します。

次の手順を実行します。

  1. MyFlights を実行しているウィンドウが開いている場合は、すべて閉じます。

  2. ツールバーで[実行をクリックします。

    [実行]ダイアログで、MyFlightFunction テストと[新規実行結果フォルダ]オプションが選択されていることを確認します。

  3. 実行]をクリックします。
  4. テストの実行が完了し、実行結果が表示されたら、テスト・フローを下にスクロールして FlightFinder アクション >[Date is valid]ノードに移動します。

    ステップ名の横に緑のチェックマークが表示されていることに注意してください。これは、追加した関数ごとにチェックポイントが成功したことを示します。

先頭に戻る

次のステップ: