軟件測試工具LoadRunner模擬真實用戶訪問

發表于:2010-05-05來源:作者:點擊數: 標簽:軟件測試loadrunnerLoadRunnerLoadrunnerloadRunner
軟件測試工具 LoadRunner 模擬真實用戶訪問、 在進行 壓力測試 設計時,總會碰到一些case需要考慮用戶實際的行為對系統的影響。使用 lr 錄制腳本時,有很多方法都可以模擬用戶的真實使用狀態,例如: 1、lr_think_time()函數的使用可以模擬用戶瀏覽的操作;

軟件測試工具LoadRunner模擬真實用戶訪問、

在進行壓力測試設計時,總會碰到一些case需要考慮用戶實際的行為對系統的影響。使用lr錄制腳本時,有很多方法都可以模擬用戶的真實使用狀態,例如:
  1、lr_think_time()函數的使用可以模擬用戶瀏覽的操作;
  2、模擬Network Speed(Runtime-setting下的Network-Speedsimulation),可以模擬用戶訪問速度為最大帶寬、自定義帶寬以及各個連接模式的帶寬(ADSL、ISDN等);
  3、代理設置(Runtime-setting下的Internet里的proxy設置),可以模擬用戶訪問的代理服務器設置;
  4、IP欺騙,設置IP欺騙可以模擬vuser使用不用的IP進行腳本運行,具體設置請參考51testing里的相關。帖子

  如果一個頁面上有很多業務項入口,我們要測試用戶訪問后會選擇某個業務項進入瀏覽的壓力,這個時候我們可以考慮如下設置來模擬:
  1、分別錄制多個腳本,在場景控制器中加載多個組,應用不同的組策略來模擬用戶的業務訪問:
  例:有100個用戶登錄首頁,然后有30個人去訪問【新聞】業務,有40個人訪問【財經】,還有30個人訪問【論壇】;
  (1)、分別錄制訪問【新聞】、【財經】、【論壇】的腳本 ;
  (2)、使用場景控制器(Controller) ;
  (3)、添加組(group)【新聞】腳本,設置vuser數為30;添加組(group)【財經】腳本,設置vuser數為40;添加組(group)【論壇】腳本,設置vuser數為30。

  2、在一個腳本里錄制多個action,然后使用集合點(rendezvous)來一起運行多個action
  例如:有100個用戶登錄首頁,然后平均訪問【新聞】、【財經】、【論壇】;
  (1)、分別錄制訪問【新聞】、【財經】、【論壇】的腳本到不同的action里 ;
  (2)、在每個action腳本主函數action(){}的開始設置同一個集合點(名稱相同);
  (3)、使用場景控制器(Controller)設置100個vuser運行,即可達到平均訪問3個業務的效果。

  除了上面的方法,我再介紹一種使用隨機數的方法:
  例如:未知用戶數量,有70%的人使用百度( http://www.baidu.com),有17%的人使用谷歌(http://www.google.cn),有7%的人使用yahoo(http://search.cn.yahoo.com),剩余的人使用搜狗(http://www.sogou.com)進行搜索,那么怎么模擬呢?

  腳本示例如下:

Action()
{
 int which; //存儲隨機數的變量
 which = rand()%100; //生成0-99的隨機數并賦值給which
 lr_log_message ("DebugInfo:which=%d\n",which);//調試信息

 if (which >= 30)//70%訪問baidu
 {
  web_url("www.baidu.com",
    "URL=http://www.baidu.com/",
    "TargetFrame=",
    "Resource=0",
    "RecContentType=text/html",
    "Referer=",
    "Snapshot=t1.inf",
    "Mode=HTML",
    LAST);
 }
 else if ((which >=13) and (which <30))//17%訪問Google
 {
  web_url("www.google.cn",
    "URL=http://www.google.cn/",
    "TargetFrame=",
    "Resource=0",
    "RecContentType=text/html",
    "Referer=",
    "Snapshot=t2.inf",
    "Mode=HTML",
    EXTRARES,
    "Url=/images/nav_logo3.png", ENDITEM,
    LAST);
 }
 else if ((which >=6) and (which <13)) //7%訪問yahoo
 {
  web_url("search.cn.yahoo.com",
   "URL=http://search.cn.yahoo.com/",
   "TargetFrame=",
   "Resource=0",
   "RecContentType=text/html",
   "Referer=",
   "Snapshot=t3.inf",
   "Mode=HTML",
   EXTRARES,
   "Url=/testing/uppic/200709/20070911101206590.gif", ENDITEM,
   "Url=/testing/uppic/200709/20070911101207694.gif", ENDITEM,
   LAST);
 }
 else        //6%訪問sogou
 {
  web_url("www.sogou.com",
   "URL=http://www.sogou.com/",
   "TargetFrame=",
   "Resource=0",
   "RecContentType=text/html",
   "Referer=",
   "Snapshot=t4.inf",
   "Mode=HTML",
   EXTRARES,
   "Url=/images/tab.gif", ENDITEM,
   "Url=http://pv.sogou.com/pv.gif?t?=1181198683187446?r?=", ENDITEM,
   LAST);
 }
 return 0;
}

  這么寫腳本其實和組策略形成的效果沒有什么分別,但是我覺得還是寫這樣的結構比較好,我自己也不知道為什么。
  這個寫法是從游戲腳本語言(lua)中學會的,以前測試游戲的時候總是看腳本語言(lua),有很多寶物的掉率就是根據隨機數判斷來決定的。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97