キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

第一回QTP勉強会の宿題

ゆもつよ
頻繁なアドバイザー

第一回QTP勉強会の宿題

ここでは毎回出題(する予定)にしている宿題について掲載していきます。

 

宿題をやってきた方の許諾が取れれば、スクリプトの掲載もしていく予定です。

 

まずQTP勉強会第一回の宿題は以下のとおりです

 -----------------

・とある検索画面からヒットする検索結果の件数が複数ある場合に、1件づつ検索結果の明細を開いて内容を確認していくスクリプトを作成する
ex.住宅検索サイトで金額指定して検索、その後検索でヒットした物件全件の画像を確認する
  →検索ごとにヒットする物件数が違うはずであり、その物件数に合わせた数だけ明細を確認しなければならない動作をどう実現するかがポイントです
※一般公開しているWebサイトから適当なものを選んでスクリプトを作っていただくと勉強会の中で再生ができます。
QTPをインストールすると付属しているサンプルWebサイト「MercuryTours」のSelect a Flightを一件づつ選択して次ページの画面を確認するスクリプトを宿題にします。(一般のサイトを勉強の題材にするのは問題になるとのことです...4月24日修正)
QCQTPIE8-2012-04-24-07-43-35.png
前の画面の検索条件の設定(特にAirlineの選択肢)によって本画面のフライトの数が変化します。
 
-------------------
 
宿題をやってきてくれた方は、当日にスクリプトとオブジェクトリポジトリをエクスポートして持参してください。勉強会の中で再生してみます、もしくはそれを見ながら出席者間で情報交換の資料として使わせていただきます。QTP使いのメンバーもいますので有益なフィードバックが得られるかもしれないですよ!
 
3 件の返信
ほり
時折のビジター

Re: QTP勉強会--宿題

ゆもつよさん

 

お世話になっております。宿題の質問をさせていただいたほりのうちです。

 

テストで使うブラウザーとバージョンを教えていただいてもよろしいですか?

IE6とIE7以降ではスクリプトの流用ができないとサポートセンターより伺っています。

 

ゆもつよ
頻繁なアドバイザー

Re: QTP勉強会--宿題

勉強会で使うデモ機のIEが
IE8.0.6.001.18702
です。
QTPは11です。
よろしくお願いします。
ゆもつよ
頻繁なアドバイザー

第一回QTP勉強会の宿題の回答例

 

宿題の回答例です。宿題をやってきたのが1名だったのでひとつだけです(笑)

 

SystemUtil.Run "C:\Program Files\Internet Explorer\iexplore.exe","http://localhost/servlets/​com.mercurytours.servlet.WelcomeServlet","",""	' IEの起動

Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("userName").Set "mercury"	' ログイン名
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("password").SetSecure "4faad6a3f0c0fe20f039b33a1217f8311b0857e7"	' パスワード
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").Image("Sign-In").Click 23,2

Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebList("airline").Select DataTable("p_Item", dtGlobalSheet)	' 飛行機会社の選択はデータテーブルを使ってパラメータ化
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").Image("findFlights").Click 64,2


rownumber=Browser("Welcome: Mercury Tours").Page("Select a Flight: Mercury").WebTable("DEPART").GetROProperty("rows")	' 列数を取得
rownumber2= (rownumber - 2)/2 '正式な列数を計算

rowvalue =3
For x=1 to rownumber2
	contentflight = Browser("Welcome: Mercury Tours").Page("Select a Flight: Mercury").WebTable("DEPART").GetCellData(rowvalue,​2)	' 飛行機便名取得
	contenttime = Browser("Welcome: Mercury Tours").Page("Select a Flight: Mercury").WebTable("DEPART").GetCellData(rowvalue,​3)	' 時間取得
	contentprice = Browser("Welcome: Mercury Tours").Page("Select a Flight: Mercury").WebTable("DEPART").GetCellData(rowvalue+​1,1)	' 金額取得
	
	contentpriceonly=mid(contentprice,Instr(contentpri​ce,"$")+1,3)	' 価格だけを切り出す
	contentflightnumber = Right(contentflight,Len(contentflight)-InstrRev(co​ntentflight," "))	' 便名を切り出す
	contentflightname = Left(contentflight,InstrRev(contentflight," "))	' 飛行機会社を切り出す

	selectflight =  trim(contentflightname)&"$"&contentflightnumber&"$​"&contentpriceonly&"$"&contenttime&"$"	' 選択肢の名前に加工してる 例:Blue Skies Airlines$191$723$7:08$
	
	Browser("Welcome: Mercury Tours").Page("Select a Flight: Mercury").WebRadioGroup("outFlight").Select selectflight	' ラジオボタンを押下
	Browser("Welcome: Mercury Tours").Page("Select a Flight: Mercury").Image("reserveFlights").Click 2,2
	
	wait(1)
	Browser("Welcome: Mercury Tours").CaptureBitmap "C:\result\result"&selectflight&".bmp",  True	' ビットマップをキャプチャしてCドライブに保存
	Reporter.ReportEvent micDone, "ステップ名", "ステップ詳細","C:\result\result"&selectflight&".bmp"	' 保存したビットマップをテスト結果で表示できるようにしてる
	
	Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").Sync
	Browser("Welcome: Mercury Tours").Back
	rowvalue =rowvalue + 2
Next

Browser("Welcome: Mercury Tours").CloseAllTabs

   ・ラジオボタンの選択には、プロパティのValue値を使っている。Value値を動的に取得するために、テーブルから飛行機会社名、便名、時間、価格を抜き出し
  (VBScriptのmid関数などを使いながら)、Value値として使えるように文字を連結して使用している
  ・テーブルの列数をラジオボタンの数とあわせるために割り算している
  ・内容の確認として、画面のビットマップをCドライブに保存して、保存した内容をテスト結果レポートに表示させているが、フライトを選択する際のラジオボタン名を
   ビットマップの名前にしているので、同じ名前のBitmapができてしまい、上書きされている。(上書きにしないとエラーになってしまう)