【UFT】ユーティリティまとめ ~レポート編~


テスト自動化ツールである、UFT(Unified Functional Testing)
レポートオブジェクト(Reporter Object)について、
公式リファレンスを参考にしながら使い方などをまとめたいと思います。

※公式リファレンスは英語のみです。日本語記事がないので、作成をしてみました。

この記事の最後に、今回紹介したメソッドを使ったサンプルコードを記述しています。
興味のある方は参考にしてみてください。

Report Object とは

UFTではHTML形式、RunResultViewer形式の2つの実行レポートが出力されます。

このレポートに対してReport Objectを使うことで、
自動テスト実行結果に情報を送ったり、制御したりすることが可能になります。

使うことのできるオブジェクトは全7個。
それぞれについて、サンプルコードと合わせて解説していきます。

# オブジェクト名 概要
1 AddRunInfomation イベントを実行結果に出力(HTMLのみ)
2 Filter 実行結果に表示する情報のモードを制御
3 ReportEvent 実行結果に情報を送る
4 ReportHtmlEvent イベントを実行結果に送り、ステップと詳細をHTML形式で表示する
5 ReportNote 実行結果にメモを追加する
6 ReportPath 実行結果が保存されているフォルダパスを取得する
7 RunStatus 実行時点での実行ステータスを取得する(Pass,Failed,Warning)

AddRunInfomationメソッド

HTMLの実行結果にフィールドを追加する。 
「メモと実行情報」の中に引数に設定した内容が表示される

AddRunInfomation

'引数1:タイトル、 引数2:説明
Reporter.AddRunInformation "TITLE:実行結果","DESCRIPTION:説明"

Filterプロパティ

実行結果に表示するモードを取得・設定することができる。
このプロパティを使用することで、失敗時のみレポートを出力することも可能

Filter
' 1 : o または rfEnableAll                 :デフォルト。全ての情報が実行結果に表示される   : Reporter.Filter = 0 , Reporter.Filter = rfEnableAll
' 2 : 1 または rfEnableErrorsAndWarnings   :警告と失敗のみが実行結果に表示される           : Reporter.Filter = 1 , Reporter.Filter = rfEnableErrorsAndWarnings
' 3 : 2 または rfEnableErrorsOnly          :失敗のみが実行結果に表示される                : Reporter.Filter = 2 , Reporter.Filter = rfEnableErrorsOnly
' 4 : 3 または rfDisableAll                :実行結果に表示しない               : Reporter.Filter = 3 , Reporter.Filter = rfDisableAll

ReportEventメソッド

実行結果にイベントを表示させます。
表示できるイベントは、下記の4つ
"Done","Pass","Failed","Warning"

ReportEvent
'mic****で状態を指定できる。
'引数1:タイトル , 引数2:説明
Reporter.ReportEvent micDone ,  "Done"      , "実行"      '実行結果に一行、表示を追加する
Reporter.ReportEvent micPass ,  "Pass"      , "成功"      '実行結果に一行、成功を追加する
Reporter.ReportEvent micFail ,  "Fail"      , "失敗"      '実行結果に一行、失敗を追加する
Reporter.ReportEvent micWarning , "Warning"     , "警告"  '実行結果に一行、警告を追加する

ReportHtmlEventメソッド

ReporterEventとほぼ同じ。
こちらはメソッドでは、タイトルと説明にHTMLで記述することが可能。
このメソッドを使う場合はHTMLで書く必要があります。

ReportHtmlEvent
'イベントを実行結果に送り、ステップと詳細をHTML形式で表示する
''引数1:タイトル , 引数2:説明
Reporter.ReportHtmlEvent micDone, "Html <i>Source</i>", "htmlソースは: & lt ; p & gt ; ユーザが定義したステップです & lt ; / p&gt;"

ReportNoteメソッド

記述すると、実行結果の「結果の詳細」に
[ Executive Summary Note ]エリアにメモが表示されます

ReportNote
'実行結果にメモを追加する
Reporter.ReportNote "コメント"

ReportPathプロパティ

実行結果の格納場所を返します。

ReportPath
'実行結果が保存されているフォルダパスを取得する
print "実行結果の格納場所:" & Reporter.ReportPath

RunStatusプロパティ

実行時点での実行ステータスを取得します。
(Pass,Failed,Warning)

RunStatus
'このコードを実行した時点での、実行ステータスを返します。
If Reporter.RunStatus = micPass Then
    print Reporter.RunStatus '実行ステータスがPass
    ExitAction 'アクションを終了します
ElseIf Reporter.RunStatus = micFail Then
    print Reporter.RunStatus '実行ステータスがFailed
    ExitAction 'アクションを終了します
ElseIf Reporter.RunStatus = micWarning Then
    print Reporter.RunStatus '実行ステータスがWarning
    ExitAction 'アクションを終了します
End If

サンプルコード

Sample_Code
Dim reportMode 'レポートのステータスを確認する

Reporter.ReportNote "Report Objectのサンプルコード"
print "実行結果の格納場所:" & Reporter.ReportPath
Reporter.AddRunInformation "sample_Code","実行時間" & TIME()

reportMode = Reporter.Filter    '現在のレポートモードを取得
print reportMode'設定されているモードが数字でかえってくる

' Example:実行後、テストフローを確認してください
For i = 0 To 3
    Reporter.ReportEvent micDone ,  i + 1 & " 回目" , ""
    If i = 0 Then
        Reporter.Filter = rfEnableAll   '全て表示する
    ElseIf i = 1 Then
        Reporter.Filter = rfEnableErrorsAndWarnings '失敗と警告を表示する
    ElseIf i = 2 Then
        Reporter.Filter = rfEnableErrorsOnly    '失敗だけ表示する
    ElseIf i = 3 Then
        Reporter.Filter = rfDisableAll  '表示しない
    End If

    Reporter.ReportEvent micDone ,  "Done"  , "実行" 
    Reporter.ReportEvent micPass ,  "Pass"  , "成功"
    Reporter.ReportEvent micFail ,  "Fail"  , "失敗"
    Reporter.ReportEvent micWarning ,"Warning", "警告"

    Reporter.Filter = rfEnableAll   'デフォルトに戻す

Next


参考・参照

・UFT One Object Model Reference(公式ページ)
https://admhelp.microfocus.com/uft/en/15.0-15.0.1/UFT_Help/Subsystems/OMRHelp/Content/OV_Supp_Util/Utility_ReservedObj.htm?tocpath=Object%20Model%20Reference%20for%20GUI%20Testing%7CUtility%20Objects%7C_____0