プロが教える店舗&オフィスのセキュリティ対策術

インターネットの画面が表示されるまでの時間を、調べることができるツールを探しています。具体的には、
(1)あるURLを入力し、その画面が表示されるまでの時間を調べ、結果を何 かのログに残す。
(2)その表示された画面で、ある検索を行い、検索結果が表示されるまでの時 間結果を何かのログに残す。
(3)上記(1)(2)の処理を毎時定時に行う。
このような動きをするツール(ソフト)を探しています。
ご存知のかたお知らせ願います。

A 回答 (3件)

VBScriptで書いてみました。

WinowsXPで動作確認済みです。

実行すると毎時0分に計測を始めます。
Googleを開き「油淋鶏」を検索します。(適当に変更してください)
"log.txt"と言うテキストに結果を出力します。
無限ループになっていますので、止める時は、タスクマネージャでプロセス"wscript.exe"を止めてください。

以下ソース
Const URL = "http://www.google.co.jp/"
Const InputName = "q" '入力するInputの名前
Const InputValue = "油淋鶏" '入力するデータ
Const FormName = "f" '送信するFormの名前

'On Error Resume Next

'毎時0分にチェックする
h = -1
Do
if (Hour(time) <> h) and (Minute(time)) = 0 then
h = Hour(time)
main()
end if
WScript.sleep 1000
Loop

'チェックルーチン本体
Sub main()
'IEを起動して表示する
Set AppIE = WScript.CreateObject("InternetExplorer.application")
If Err.Number <> 0 Then
WScript.Echo "IEオープンエラー: " & Err.Description
Exit Sub
End IF
AppIE.Visible = True
'完了するまで待つ
wait_ie AppIE

'URLを開き完了するまでの時間を計測
StartTimer = Timer()
'URLを開く
AppIE.Navigate URL
'完了するまで待つ
wait_ie AppIE
time1 = Timer() - StartTimer

'Documentを取得する
Set Doc = AppIE.Document
'Inputにデータを入力する
For Each obj In Doc.getElementsByTagName("input")
If obj.Name = InputName Then
obj.Value = InputValue
End If
Next

'検索(Formを送信)し完了するまでの時間を計測
'Formを送信する
For Each obj In Doc.forms
If obj.Name = FormName Then
StartTimer = Timer()
obj.submit
Exit For
End If
Next
'完了するまで待つ
wait_ie AppIE
time2 = Timer() - StartTimer

'IEを終了する
AppIE.Quit

strMsg = "" & now() & ", Open = " & FormatNumber(time1,3) & ", Submit = " & FormatNumber(time2,3) & vbCRLF

WriteLog(strMsg)
End Sub

'IEの処理が終了するのを待つサブルーチン
Sub wait_ie(AppIE)
Do Until AppIE.ReadyState >= READYSTATE_COMPLETE
WScript.Sleep(1)
Loop
Do While AppIE.Busy
WScript.Sleep(1)
Loop
End Sub

'ログを書き出すサブルーチン
Sub WriteLog(str)
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
If Err.Number = 0 Then
Set objFile = objFSO.OpenTextFile("log.txt", 8, True)
If Err.Number = 0 Then
objFile.Write(str)
objFile.Close
Else
WScript.Echo "ファイルオープンエラー: " & Err.Description
End If
Else
WScript.Echo "エラー: " & Err.Description
End If
Set objFile = Nothing
Set objFSO = Nothing
End Sub
    • good
    • 0
この回答へのお礼

詳細なご返答まことにありがとうございます。
しかし、VBScriptについてまったく知識がありません。
どのように使用すればよいのか、ご教授願います。

お礼日時:2006/12/08 16:14

>試しましたが、以下のようなエラーではじかれます。



>Const URL = "http://www.google.co.jp/"
この行ですが、このページに貼り付けたときに自動的にリンクが設定されてしまうので、
一度 = 以降を削除して、アドレスの部分を手で入力し直して下さい。
    • good
    • 0
この回答へのお礼

ありがとうございました。ご指摘のとおりでした。
期待どおり作動しました。ありがとうございます。

お礼日時:2006/12/11 09:17

>どのように使用すればよいのか、ご教授願います。


#1のソースをテキストファイルとして保存してください。
そしてファイル名を"test.vbs"として下さい。(名前はなんでも結構ですが、拡張子は".vbs"です)
そのファイルをダブルクリックで実行できます。

注)スクリプト実行中は、タスクバーなどには現れません。
タスクマネージャのプロセスに"wscript.exe"があればスクリプトは動いています。時間が来るまで何もしませんので、動作確認するならソースを変更してください。

>'毎時0分にチェックする
>h = -1
>Do
>if (Hour(time) <> h) and (Minute(time)) = 0 then
>h = Hour(time)
>main()
>end if
>WScript.sleep 1000
>Loop

↑この部分を下記に変更

'今すぐ一回だけチェックする
main()


WindowsのバージョンによってはVBScriptを実行するために、下記のダウンロードが必要かもしれません。

参考URL:http://www.microsoft.com/japan/msdn/scripting/
    • good
    • 0
この回答へのお礼

>#1のソースをテキストファイルとして保存してください。
>そしてファイル名を"test.vbs"として下さい。(名前はなんでも結構ですが、拡張子は".vbs"です)
>そのファイルをダブルクリックで実行できます。
試しましたが、以下のようなエラーではじかれます。
  スクリプト:C:\*****
  行:    1
  文字:   40
  エラー:  文字が正しくありません。
  コード:  800A0408
  ソース:  Microsoft VBScript コンパイルエラー

お手数です、再度お願いできますでしょうか?

お礼日時:2006/12/08 17:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!