LordRunner混合場景設置

有這樣的一個案例:現網站有1000個同時在線用戶,其中百分20%的用戶瀏覽網頁,30%的用戶註冊,%20的用戶登錄,30%的用戶查詢,如何針對這種需求設計場景,(注不單設場景,要求使用混合場景全程模擬真實用戶行爲):

設計 方法一:

1.錄製完腳後,並對其進行完善,比如有這樣三個腳本,Reg_Action,Login_Action,Order_Action

2.假如VU設爲100個,30%的用戶註冊,20%的用戶在登錄,餘下的用戶做訂票操作。

3.在場景中的run-time-setting中我們可以這樣設置:在Run-Logic中在General Run Logic中設置run 屬性,run有兩種屬性,一種是Sequential(順序模式),另一種是Random(隨機模式),通過Random這種方式,我們可以模擬30%的用戶在註冊,20%的用戶在登錄。(注,此設置是在控件器中的 run-time-setting中設置)

4.其中的 block塊可以實現更爲複雜的腳本運行策略

這種方法確少靈活性,下面描述如何用編程實現:

方法二:通過程序解決

1.用程序 來判斷隨機出來的概率和和其給定的值作判斷,如果符合這個條件,則調用此函次(腳本一次)

2.比如說100個用戶,20%就是20個用戶,那麼 【0-20】這個範圍內,

在action中模擬20%的用戶瀏覽網頁,可以這麼操作:

Action{

int rowNum;

rowNum=rand()%100+1;

if (rowNum <=20%)

   //調用一個腳本

return 0;

}


例如:性能測試場景設計--混合業務場景下的腳本比例控制


在某個業務場景中,包含數據創建和數據查詢兩項業務;現需考察數據創建和數據查詢兩項業務在併發比例爲2:1、總併發量爲100用戶情況下的混合響應時間。


在Vugen端實現

對混合比例的設置,可直接在腳本中進行,即通過隨機函數rand實現,腳本設計如下所示。

int num;
Action()
{
    num = rand()%3;
    lr_start_transaction("綜合業務--數據創建與數據查詢");
    if(num<2){
        Data_Create();  //數據創建
    }
    else{
        Data_Search();  //數據查詢
    }
    lr_end_transaction("綜合業務--數據創建與數據查詢", LR_AUTO);
    return 0;
}

該種方式的優缺點對比:

優點:

  • 腳本本身實現了比例控制的功能,Controller端的設置較爲簡單,即在Controller中只需將該混合業務作爲單一業務對待,設置也跟單一業務場景的設置方法完全相同;
  • 測試得到響應時間即爲混合業務的響應時間。

缺點:

  • 在已有數據創建和數據查詢腳本的情況下,針對混合業務場景需要單獨創建一個混合業務腳本,且混合比例改變時需要重新修改腳本;
  • 當需要考察混合業務場景中不同業務類型各自的響應時間時,通過該種方式無法實現。

2、在Controller端實現

在業務類型較多,混合業務場景較爲複雜的情況下,採用修改腳本的方式會比較麻煩。例如,若共有5種業務類型,現需要對其任意兩種業務的混合場景進行壓力測試,如果仍採用第一種方式,那麼我們就必須得針對兩兩業務的混合情況,創建10個混合業務腳本。當業務類型更多,或者混合場景更爲複雜(如需考慮任意三種、任意四種業務等的混合情況)時,腳本的創建量會大大增加,且均爲乏味的重複性工作。

針對這種情況,直接在Controller端進行設置會簡單得多,只需要加載各個業務腳本,並設置不同腳本的併發數即可。對於本文中的案例,在Controller中的設置方法如下所示。


該種方式的優缺點對比:

優點:

  • 無需單獨創建混合業務腳本,特別是在業務類型較多的情況時優勢更爲明顯;
  • 測試得到的響應時間爲各個業務獨自的響應時間,可以實現對混合業務場景下各個業務的單獨分析。

缺點:

  • 計算混合業務的響應時間時,需要提取原始測試數據進行計算(不能直接對各個業務的平均響應時間取平均值來作爲混合業務的平均響應時間),計算較爲複雜。

Block(塊)技術                         

  block(塊)技術是應用於在一個腳本中實現不同事務、不同次數循環或不同百分比循環的情況。比如在一個腳本中,登錄執行3次,查詢執行1次。

  使用方法如下:

1、錄製一個腳本,包含2個業務:登錄和查詢

2、vuser->run time settings->general->run logic,選擇run,插入一個block塊,然後選擇block(),單擊insert action按鈕,選中要添加的action,如圖1所示:

圖1(爲block添加action)

3、重複上面的操作,再新建一個block,然後刪除block外的action,如圖2所示:

圖2(刪除block外面的action)

4、設置block properties,如圖3所示:

圖3(block properties設置)

5、block(塊)技術就是這樣了,注意:事務迭代的總次數=該block迭代次數*number of iterations,如上圖即是login迭代次數=3*1=3次。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章