2011-01-24 33 views
1

基本上,我想重复加载一个URL,说http://xyz.co.in,然后检查特定元素的值,就像测试过程和监视器服务器记录该流。如何使用油脂猴重复加载网页并检查元素?

我试图通过反复敲击相同的主机进行进一步处理来模仿生产流量的一部分。我怎么能最好的解决这个问题?

流量

加载网页 - >监控服务器日志 - >对前端监控某些元素的值 - >再次重复。

回答

1

我想通了,Selenium是这样的情况下最好的测试工具。

安装硒IDE作为FF的插件,并尝试在以下一系列的命令: -

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_ | 

您可以跳过步骤2,如果要验证的元素比上一个延迟AJAX调用网页载入。

如果上述步骤中的任何一个失败,那么其失败其他成功。您可以安排此计划运行'n'次。

1

Greasemonkey不是load testing网页/服务器/应用程序的最佳工具。

但这里是反复检查加载一个页面元素的脚本:

// ==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

感谢您的帮助!事实证明,Selenium(FF插件)是进行此类测试的最佳工具。 – Ravikiran 2011-01-24 10:25:35