軟件測試工具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; } |
原文轉自:http://www.anti-gravitydesign.com