3

特定のパフォーマンス メトリックを取得するために、Web アプリケーションをテストする信頼できる方法を見つけようとしています。webapp は、さまざまなアクション/リクエストなどに主に Javascript を使用します。

私ができるようにしたいのは、2つの特定のイベント間の時間を測定することです.

WebElement element4 = driver.findElement(By.linkText("Login"));
element4.click();

long start = System.currentTimeMillis();
WebElement element5 = wait3.until(ExpectedConditions.visibilityOfElementLocated(By.linkText("New")));

long finish = System.currentTimeMillis();
long time = finish - start;
System.out.println("Time taken for New element to load: " + time + "ms");

または使用:

WebElement element6 = driver.findElement(By.linkText("New"));  

代わりに

wait3.until(ExpectedConditions.visibilityOfElementLocated(By.linkText("New")));

ただし、これによって得られる結果は、多くの場合正確ではありません。私が疑問に思っているのは、Selenium を使用してこれをより正確に行う方法があるかどうか、またはこのデータを管理可能な形式で確実に取得するために使用できる別のツールがあるかどうかです。

ありがとう

4

1 に答える 1

0

どのくらいの精度が必要ですか? エラー マージンは常に存在します。シナリオの許容マージンを定義する必要があります。

この場合、Selenium 自体が原因で (特にリモート WebDriver を実行している場合)、小さなオーバーヘッドが発生する可能性があります。それに影響を与える他のランダムな外的要因もあると思います。

とはいえ、独自のテスト環境/セットアップに固有の誤差範囲を判断するのに役立つ「キャリブレーション」テストを実行することで、精度を向上させることができます。

キャリブレーションは次のようになります。

  1. テスト中のページを開く
  2. すべてが読み込まれるまで待ちます
  3. wait.until()すでに存在することがわかっている要素にかかる時間を測定する
  4. (3)を複数回繰り返して、統計的有意性を取得します

最後に、測定値のリストがあります。たとえば、その中央値を取得すると、実際のテストを実行するときに測定したレイテンシから後でどれだけ差し引く必要があるかがわかります。または、パフォーマンス テストの結果に添付する追加情報として、エラー マージンと標準偏差を単純に追加することもできます。

Selenium の場合、ページ上の要素を見つけるためにどの方法を使用するかによっても違いが生じることに注意してください (たとえば、ID による検索は「linkText」による検索よりも高速である可能性があります)。wait.until()すべての異なる要素検索メカニズムのエラー。

于 2014-02-07T12:34:58.243 に答える