1

私の目標が特定の Web ページの IE でのレンダリング速度を繰り返しロードしてテストすることである場合 (タイミングのために JavaScript の onload イベントを使用してページを表示するだけではうまくいきません)、それを行うための良い方法は何でしょうか?

私の現在の試みは、VB と C# で IE WebBrowser オブジェクトを使用することでしたが、他の提案も受け付けています。

以下は簡単な VB コードですが、C# でも同様のコードを試しました。また、テストごとに新しい Web ブラウザー コントロールを作成しようとしました (これにより事態が悪化しました)。また、readystate ループを使用するのではなく、イベント自体を使用してみました。いずれの場合も、テストの実行には時間がかかりますが、reload完全な instread ofを使用navigate2すると少しは役立つようで、おそらく問題が何らかの履歴の問題であることを示唆しています。

For cnt = 1 To 100
    timer = GetTickCount()
    Form1.WebBrowser1.Navigate2 "http://www.example.com"
    While Form1.WebBrowser1.ReadyState <> READYSTATE_COMPLETE And GetTickCount() - timer < 5000
        Sleep 50
        DoEvents
    Wend
    Debug.Print GetTickCount() - timer
Next
4

2 に答える 2

-1

開始と終了のためにどのイベントをコントロールにフックできるかはわかりませんが、エンジンが与えたデータを処理するのにかかった時間を計算するために単体テストで使用したコードを次に示します。

Stopwatch stopWatch = new Stopwatch();

stopWatch.Start();
//perform work
stopWatch.Stop();

TimeSpan ts = stopWatch.Elapsed;
string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}",
                                           ts.Hours,
                                           ts.Minutes,
                                           ts.Seconds,
                                           ts.Milliseconds/10);
Console.Write(elapsedTime);

乾杯!

于 2009-04-15T16:54:23.287 に答える