0

興味深いテストの問題があります。
私の要件は、Webサイトでパフォーマンステストを行うことです。

ここで発行して、Webページのロードにかかる実際の時間を取得します(私はテスト中です)。ここで「REALtime」という言葉は、すべての(最初の)AJAX呼び出し(何らかの応答を伴う)を完了するのにかかった合計時間として参照します。ページ読み込みイベントを使用することを考えました。
しかし、このアプローチは本当の時間を与えません。
それを行う方法の提案や情報への参照も素晴らしいです!


私の環境:JavaとWedDriver。

4

2 に答える 2

0

要求オブジェクトにタイムスタンプのタグを付け、対応する応答が受信されたときにこれを systime から差し引きます。

<T>方法論によっては、サーバー側にペイロードとデマルチプレクサーを備えた汎用の要求/応答オブジェクトを使用できます。これらの汎用オブジェクトには、送信および受信された時間を自動的に登録し、クライアントに費やされた時間を提供するコードを含めることができます。ページ全体の読み込みに費やされた時間を集計することは、このアプローチでは少しトリッキーですが、ほぼ不可能ではないと考えるべきです。リクエストが元のページでタグ付けされている場合、RPC プロキシはそれを追跡する可能性があります。

セットアップ/コードの具体的な例を提供していただければ、より正確に説明できるかもしれません。

乾杯、

于 2012-10-12T18:31:18.420 に答える
0

誰もが言ったように、WebDriver はパフォーマンスを目的としたものではありません。ただし、私が時々使用する次の方法を参照してください。

div次のコードは、特定の Web 要素 (またはブロック) に対するパフォーマンスをキャプチャできる場合に機能しspanます。

1ストップウォッチを使用します。私はApacheストップウォッチを使用しています。

import org.apache.commons.lang3.time.StopWatch;

2変数を初期化する

StopWatch timer = new StopWatch();

3タイマーを開始し、次の行でページに移動します。新しい URL を呼び出すための他の処理時間が短縮されると思うので、私はそれdriver.navigate().to()を好みます。driver.get()

timer.start();
driver.navigate().to(URL); 

4ページの読み込みが完了したことを指定できる特定の要素を待ちます。表示されたら、次の行でタイマーを停止します。

new WebDriverWait(driver, 10).until(ExpectedConditions. presenceOfElementLocated(By.className("demoClass")));
timer.stop();
System.out.println("timer.getTime() + " milliseconds");

追加の注意:特定の Web ページ ロードのネットワーク コールのロード時間を知りたい場合は、webkit などを使用しphantomJSますbrowsermobproxy。HAR/JSON ファイルでネットワーク呼び出しを返します。これらのファイルを解析すると、時間がかかる場合があります。

お役に立てれば。

于 2017-03-29T08:17:42.277 に答える