第7章 スクリーンショット - 【qtp】hp qtp入門 …qtp.tokyo-ssl.com/sample.pdf第7章...
TRANSCRIPT
第7章 スクリーンショット
第7章 スクリーンショット
1
第7章 スクリーンショット
7.1 ページイメージをローカルデイスクに保存する方法(テストステップごと)
・【ツール】>【オプション】
・【静止画像キャプションをテスト結果へ保存】>【常に】
実行時、各ステップ毎にテスト対象アプリケーションのイメージをキャプチャし、
結果レポート(Results.xml)に出力します。
2
第7章 スクリーンショット
・キャプチャデータの保存先
QTP実行時に実行結果レポートの保存先を指定したフォルダ配下に保存されます。
(例:…\シナリオ名\Res**\Report\Act1\Row0\***.Z)
Results.xmlを QTPのレポート機能で開いた時に解凍されるように xmlファイルの中で定義されて
います。(例えば、<![CDATA[ ZIP::Act1\Row0\ssf2.xml ]]>)
<注>imageオブジェクトは、ファイル内に保存されず、リンク先のurlが記録されます。
3
第7章 スクリーンショット
7.2 ページイメージをローカルデイスクに保存する方法(必要なページのみ)
・【静止画像キャプションをテスト結果へ保存】>【エラー発生時】
エラー発生時のみテスト対象アプリケーションのイメージをキャプチャし、
結果レポート(Results.xml)に出力します。
4
第7章 スクリーンショット
・エキスパートビューにメッソドを追加します。
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").CaptureBitmap
"c:\temp\image.bmp"
・キーワードビューに反映されます。
5
第7章 スクリーンショット
・実行結果
【Results Viewerで表示】
この方法で保存したイメージデータは表示されません。
ローカルに保存したイメージデータをResults Viewerで表示させるには、
項番7.4の方法を用います。
6
第7章 スクリーンショット
7.3 オートスクロール・キャプチャ
7.2 画面イメージをローカルディスクに保存する方法(必要な画面のみ)」では、Webページすべてを一発
でキャプチャすることが出来ません。スクロールしなければ見えない部分までを保存するには以下の方法を用
います。(但し、縦方向スクロールのみとします)
(1)micPgDwnキー自動押下による方法
・テストシナリオ
7
第7章 スクリーンショット
8
最終ページになるまで繰り返す
第7章 スクリーンショット
・オブジェクトリポジトリ
9
第7章 スクリーンショット
・実行結果
10
第7章 スクリーンショット
11
第7章 スクリーンショット
12
第7章 スクリーンショット
・サンプルコード(関数と使用例)
'=======================================================================
'@Author : M.Fujishima
'@Description: Function Library (for AutoScrollCapture) 【AutoScrollCapture.qfl】
'@Calling Sequence:
' Dim WinIE : Window("Windows Internet Explorer")
' Dim EObj : WinObject("Internet Explorer_Server")
'=======================================================================
Sub AutoScrollCapture(WinIE,EObj)
End Sub
13
第7章 スクリーンショット
'-----------------------------------------------------------------------
' Auto Scrooll CaptureBitmap使用例
'-----------------------------------------------------------------------
'-----------------------------------------------------------------------------------------------------
' スクロール キャプチャ(BitmapCapture,関数使用例)
'-----------------------------------------------------------------------------------------------------
Browser("スクロールキャプチャ").Page("スクロールキャプチャ").Sync
With Window("Windows Internet Explorer")
Call AutoScrollCapture(Window("Windows Internet Explorer"),Window("Windows Internet
Explorer").WinObject("Internet Explorer_Server"))
End With
14
第7章 スクリーンショット
(2)1枚の画像に合成する方法
micPgDwnキー自動押下による方法では、1枚の画像に合成されたイメージの取得は出来ませんが、
画面に表示されていない隠れた部分のイメージも取得し、自動的に1枚の画像に合成することも出来ます。
ここでは、フリーソフトである「Cat_St」を使用して合成する方法を紹介します。
・テストシナリオ
15
キャプチャソフト(Capt_St.exe)を起動&常駐させます。サンプルではAction内で起動していますが、手動起動でも問題ありません。
第7章 スクリーンショット
・キャプチャ手順
【注意】
クライアントのマシン性能、および業務アプリケーションにより、キャプチャに失敗することが
あります。
「キャプチャ設定」>「スクロール」>「ウエイト」を変更することにより正常に行
われることもあります。
16
キャプチャは以下の手順で行います。(これらの処理は、スクリプトによる全自動で行います)・業務アプリケーションをカレントとする・ページ読み込みが完了・キャプチャ対象フレームをクリックする。(キャプチャページの Head を表示しておくこ と)・ホットキーを押下する。(Ctrl + Shift + F4)・フレーム内の任意の位置をクリック
第7章 スクリーンショット
・キャプチャ結果
17
第7章 スクリーンショット
'=======================================================================
・サンプルコード(関数と使用例)
'=======================================================================
'@Author : M.Fujishima
'@Description: Function Library (for AutoScrollCapture used "captureSTAFF")
'@Calling Sequence:
' Dim WinIE : Window("Windows Internet Explorer")
' Dim EObj : WinObject("Internet Explorer_Server")
'=======================================================================
Sub AutoScrollCapture2(WinIE,EObj)
SystemUtil.Run "Capt_St.exe", "", "C:\Temp\スクロールキャプチャ\captureSTAFF", "open"
With WinIE
End Sub
18
第7章 スクリーンショット
'---------------------------------------------------------------------------------------------------
' CaptureStaffによる自動スクロールキャプチャ Main Pro
'---------------------------------------------------------------------------------------------------
Call AutoScrollCapture2(Window("Windows Internet Explorer"),Window("Windows Internet Explorer").WinObject("Internet
Explorer_Server"))
19
第7章 スクリーンショット
7.4 スクリーンショットのResultViewerへの表示
「静止画像キャプチャをテスト結果へ保存」の設定が"常に"となっていると、画面キャプチャの取得が動作
(登録した Object )毎に行なわれQTPの動作が遅くなるので、"エラー発生時"に設定した方が良い場合がある。
必要なステップでキャプチャしたイメージデータを任意のフォルダーに保存し、かつ ResultViewerにも表示
させるには以下の方法で実現することが出来ます。
(1) スクリーン・ショット関数の使用
キャプチャデータを任意のフォルダーに保存し、さらには「Results Viewer」で表示出来るように
するには以下の方法を用いる。
・テストシナリオ
20
必要な部分で、スクリーン・ショット関数を呼び出す
第7章 スクリーンショット
・キャプチャデータの保存先(保存先指定がない場合)
実行結果レポートは指定されたフォルダ配下に保存される。
保存先指定がない場合は、「…\シナリオ名\Res**\_yyyy_mm_dd_hh_mm_ss.png」に保存される。
保存先指定がある場合は、指定されたフォルダー配下に保存される。
21
第7章 スクリーンショット
サンプルコード
'================================================================================
'@Author : M.Fujishima
'@Description: Function Library (for ScreenShot For Current Page)
'@ : Add the Captured Screen shot to the Results file Folder (\Res\***)
'=======================================================================
'@Calling Sequence:
' Title: Captured Screen Title
' obj : Browser("xxx").Page("ppppppp")
' Fld : Output Folder("":reporter.ReportPath(\Res\***))
'================================================================================
Public Function ScreenCapture(Title, obj, Fld)
Dim testArea, vNow, vFile
vNow = Replace(Replace(Replace(now(),":","_"),"/","_")," ","_")
vfile = testArea & "_" & vNow & ".png"
End Function
22
第7章 スクリーンショット
・ サンプルコード(使用例)
Browser("同期化処理(1)").Page("同期化処理(1)").WebEdit("TextBox1").Set "item1"
Browser("同期化処理(1)").Page("同期化処理(1)").WebEdit("TextBox2").Set "item2"
a = ScreenCapture("テキストBOX 2",Browser("同期化処理(1)").Page("同期化処理(1)"),"")'保存先指定なし
Browser("同期化処理(1)").Page("同期化処理(1)").WebEdit("TextBox3").Set "item3"
a = ScreenCapture("テキストBOX 3",Browser("同期化処理(1)").Page("同期化処理(1)"),"c:\temp")'保存先指
定あり
23