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

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

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

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

# Report Object とは

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

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

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

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

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

```VB:AddRunInfomation

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

```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/288745/eaa439a2-388e-f51a-a3b6-55e25d5a9453.png)

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

```VB: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メソッド
実行結果にイベントを表示させます。
表示できるイベントは、下記の４つ
"Done","Pass","Failed","Warning"

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

```

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


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

```

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

```VB:ReportNote
'実行結果にメモを追加する
Reporter.ReportNote "コメント"
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/288745/17dd26b7-bbff-2121-72c6-cca9e4bf549b.png)

# ReportPathプロパティ

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

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

# RunStatusプロパティ
実行時点での実行ステータスを取得します。
（Pass,Failed,Warning）


```VB: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
```



# サンプルコード

```VB: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