2011-01-24 18 views
1

基本的には、URLを繰り返し読み込んでhttp://xyz.co.inとし、特定の要素の値を確認したいと思います。テストプロセスと同じように、そのフローのサーバーログを監視します。グリースモンキーを使用して繰り返しウェブページを読み込んで要素をチェックする方法は?

私は生産トラフィックの一部を模倣しようとしています。同じホストを繰り返し使用して処理します。これについて最善を尽くすにはどうすればいいですか?

フロー

負荷のWebページ - >モニタサーバログ - >フロントエンド上の特定の要素の値を監視する - >をもう一度繰り返します。

答えて

1

私はSeleniumは、このようなシナリオのための最高のテストツールであることを考え出しました。

はFFのアドオンとしてセレンIDEをインストールし、一連のコマンドの下にしてみてください: -

Command | Target | Value 
1) open | _url_ | _blank_ | 
2) waitForElementPresent | css=_selector_ or xpath=_selector_ | _time in ms_ | 
3) verifyElementPresent | css=_selector_ or xpath=_selector_ | _blank_ | 

検証すべき要素が延期AJAX呼び出しに比べてページの読み込み時に利用可能である場合は、ステップ2をスキップすることができます。

上記の手順のいずれかが失敗した場合は、それ以外は失敗します。これを「n」回実行するようにスケジュールすることができます。

1

Greasemonkeyは、load testing web pages/servers/appsに最適なツールではありません。

しかし、ここでは繰り返しページをロードし、要素をチェックするスクリプトです:

// ==UserScript== 
// @include   http://xyz.co.in/* 
// @require   http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js 
// ==/UserScript== 

$(document).ready (Greasemonkey_main); 

function Greasemonkey_main() 
{ 
    do 
    { 
     var TargetNode = $("#TargetNode"); //-- Look for node with id, "TargetNode". 

     if (TargetNode && TargetNode.length) 
     { 
      //--- Maybe also check contents: 
      if (/Node contents to search for/i.test (TargetNode.text())) 
      { 
       alert ("We found what we're looking for"); 
       break; 
      } 
     } 

     //--- Failsafe check on number of reloads 
     var NumReloads = parseInt (document.location.search.replace (/.*num_gm_reloads=(\d+).*/, "$1")) 
     if (NumReloads > 2) 
     { 
      alert ("After 2 reloads, we still didn't find what we were looking for."); 
      break; 
     } 

     //--- We neither found the stop code nor exhausted our retries, so reload the page. 
     if (NumReloads) 
      NumReloads++; 
     else 
      NumReloads = 1; 

     var TargetURL = window.location.href; 
     //--- Strip old URL param, if any. Note that it will always be at the end. 
     TargetURL  = TargetURL.replace (/(.*?)(?:\?|&)?num_gm_reloads=\d+(.*)/, "$1$2"); 
     var ParamSep = /\?/.test (TargetURL) ? "&" : "?"; 

     TargetURL  = TargetURL + ParamSep + 'num_gm_reloads=' + NumReloads; 

     window.location.href = TargetURL; //-- Reload the page. 

    } while (0) 
} 
+0

助けてくれてありがとう!それはセレニウム(FFアドオン)がそのようなテストを行うための最良のツールであることが判明しました。 – Ravikiran

関連する問題