miau's blog?

aiWM Web Tester その2

以前のアイテムで、aiWM Web Tester を使ったという話は書きましたが。
今回複数ページに似たような修正を加える必要が出てきまして。
自動化に適してたので再挑戦してみました。




再度 aiWM Web Testerチュートリアル を参考にして。
雛形っぽいの作成。


Option Explicit

(このへんで初期設定)

Public Function aiWMProcedure()
Dim objCore
Dim objBrowsers

Dim objBrowser

Set objCore = CreateObject("aiWM.Core")
Set objBrowsers = objCore.GetBrowsers

Set objBrowser = objBrowsers.Add(TargetUrl,58,58,660,600)

'テストの実行
Dim Ret 'テスト結果格納用
Ret = ""

(この辺でテスト実行)

If Ret = "" Then
aiWMProcedure = "0 Success " & Date & " " & Time
Else
aiWMProcedure = "1 " & Ret & " " & Date & " " & Time
End If

'ブラウザを閉じておく
objBrowser.Terminate()

Exit Function
End Function

で、今回やりたいのは
・フォームのデフォルト値チェック
・特定の文言の表示有無チェック
・入力フォーマットチェックの有無確認
あたり。
このへんも定型文っぽいのを作っておこう。


■フォームのデフォルト値

これは、まあ簡単かな。

初期設定として、


'テスト内容の設定
Dim TargetUrl 'テスト対象のURL
Dim TargetItem 'テスト対象のタグを表す文字列
Dim DefaultValue 'デフォルト値として期待される値

TargetUrl = "http://www.sample.com/hoge.html"
TargetItem = "Tag='SELECT',name='age'"
DefaultValue = "20"

で、テストとして、


Dim Value '取得値格納用

'アイテムの存在確認
If (Not objBrowser.ItemExists(TargetItem)) Then
Ret = "Item Not Found"
Else
'アイテムのデフォルト値確認
objBrowser.SelectItem(TargetItem)
Value = objBrowser.GetItemProperty("value")
If Value <> DefaultValue Then
Ret = "Invalid Default Value: [" & Value & "]"
End If
End If

と。


■特定の文言の表示有無チェック

objBrowser.GetText() とか objBrowser.GetHTMLText() が使おうとしたけど、なぜかうまくいかず。
以前はうまくいってたと思うから・・・Windows XP だとダメとか・・・?

とりあえず代替で適当に。


'テスト内容の設定
Dim TargetUrl 'テスト対象のURL
Dim TargetItems 'テスト対象のタグを表す文字列のリスト

TargetUrl = "http://www.sample.com/hoge.html"
Set TargetItems = CreateObject("Scripting.Dictionary")
TargetItems.Add "k1", "Tag='A',href='javascript:OpenHoge()'"
TargetItems.Add "k2", "Tag='img',src='http://www.sample.com/hoge.gif'"
TargetItems.Add "k3", "Tag='img',alt='ほげほげはこちら'"

こんな感じで含むべきタグのリストを宣言しておいて・・・


Dim TargetItem

'文字列の存在確認
For Each TargetItem In TargetItems.Items
If Not objBrowser.ItemExists(TargetItem) Then
If Ret = "" Then Ret = "Item Not Found"
Ret = Ret & "[" & TargetItem & "]"
End If
Next


こんな感じで。

気をつけるのは img タグの src とか、絶対 URL で指定しないといけないこと。
あと td タグとかはうまく拾えない予感。


■入力フォーマットチェックの有無確認

ページの遷移が必要だけど、この部分を初期設定部に持って行きたい。
ので、


'テスト内容の設定
Dim TargetUrl 'テスト対象のURL
Dim Prepare '事前準備

TargetUrl = "http://www.sample.com/hoge.html"

Prepare = _
"objBrowser.CurrentFrameIndex = ""/""" & vbCrLf & _
"objBrowser.SelectItem ""Tag='INPUT',Type='text',name='name'""" & vbCrLf & _
"objBrowser.ItemProc ""INPUT"",""miau""" & vbCrLf & _
"objBrowser.SelectItem ""Tag='SELECT',Type='select-one',name='age'""" & vbCrLf & _
"objBrowser.ItemProc ""SELECT_INDEX"",""5""" & vbCrLf & _
"objBrowser.SelectItem ""Tag='INPUT',Type='image',name='submit'/2""" & vbCrLf & _
"objBrowser.ItemProc ""CLICK"""

こんな宣言をしておいて・・・


'事前準備(ページ遷移等)
Execute Prepare

処理の冒頭にこんなの追加。
何度も同じ準備が必要なら、Prepare はファイルに外だししてもいいかも。

で、移動後のページに「○○がありません」っていう文字列が出るかどうかで、フォーマットチェックの有無を確認と。
このへんは前項との組み合わせで可能。


・・・とまあそこそこ順調だったんですけど。
objBrowser.GetText() や objBrowser.GetHTMLText() が使えない+td タグの内容とかは拾えないということで、どうしてもテストできない部分が出てきたり。

ということで今回は結局手作業でやりましたけど、この問題解決できたらそこそこ使えそうな気がしてきました。
posted at 21:40:36 on 2005-05-29 by miau - Category: Work No Trackbacks - Permalink

TrackBack

このエントリにトラックバックはありません
現在トラックバックは受け付けていません。

Comments

猫の名無し wrote:

メール送りました。
ありがとうございます。
2007-07-17 09:57:41

miau wrote:

メール届いてないような気がします・・・。
もしメールが届かないようなら&差し支えなければ、質問をコメント欄に書いていただけますか?
2007-07-17 15:11:51

sinh wrote:

aiWM Web Tester をダウンロードできないですか?
2008-02-20 16:56:13

miau wrote:

Web 上にはもう残っていないようですね。手元には残ってるんですが、README.TXT に思い切り
>許可なくインターネット上でこのソフトウェアを配布しないで下さい。再配布もしないようお願いします。
と書いてあるので、お渡しするわけにもいきませんし・・・。

aiWM は最終更新が 2002/08/25 ですが、それ以降テストツールはずいぶん進化していると思います。比較検討とかいう用途でなければ、別のツール(Selenium とか)を試したほうがいいと思います。
2008-02-21 10:15:03

Add Comments

現在コメントは受け付けていません。
お手数ですが、 こちら のコメント欄にでも記載していただければと思います。