LoadRunner 多用戶並發 登錄,上傳數據,登出的腳本教程


這里記錄 Web/Http  模式,模擬多用戶並發進行  : 登錄,上傳數據,退出登錄一整套流程。並發的用戶量多少,可自定義。這里不介紹錄屏的方式,是自己寫腳本去執行的。

1.安裝loadRunner.

2.在安裝目錄的bin 文件夾下,找到 LRLauncherApp.exe,雙擊打開。

下面這個彈框,直接cancel,因為我們不采用錄屏的方式,自己寫腳本去執行。

3.在左側,可以看到幾個文件列表。

vuser_init :執行開頭的腳本  :一般寫是用戶登錄(or 錄制)過程的腳本

action: 操作間的腳本  :一般寫是用戶操作(or 錄制)過程的腳本

vuser_end:執行結束的腳本  :  一般寫是用戶退出登錄(or 錄制)過程的腳本

.ok,直接貼腳本代碼,並解釋:

vuser_init()
{
    web_custom_request("login.json",
        "URL=http://www.test.com/web/login.json",
        "Method=POST",
        "TargetFrame=",
        "Resource=0",
        "RecContentType=application/json",
        "Referer=http://www.test.com/web/login",
        "Snapshot=t3.inf",
        "Mode=HTML",
        "EncType=application/x-www-form-urlencoded; charset=UTF-8",
        //"Body={\"username\":\"admin\",\"password\":\"admin`12\",\"rememberme\":false}",
        "Body={\"username\":\"{usernames}\",\"password\":\"admin`12\",\"rememberme\":false}",
        LAST);
    return 0;
}

 

vuser_init 文件中代碼:因模擬多用戶並發登錄,故需傳入不同的用戶名及密碼,如上代碼注釋掉的,我們選中 用戶名的值  admin  ,右鍵,選擇 Replace with a Parameter。輸入參數名稱,選擇Properties,選擇用戶名dat文件所在位置。注意:用戶名與密碼是
一一對應的,所以構建用戶名密碼的dat文件時,注意匹配。usernamefor55.dat 是dat格式的文本文件,內容如下圖所示:我這里的測試數據,用戶名不一樣,但密碼都一樣,所以密碼就沒有參數化了。

                

 

5.用戶上傳數據:

這里業務設計邏輯是:用戶先上傳數據元信息,數據分配id后,再根據分配的id,進行upload數據。故,有2個POST請求:

腳本:

Action()
{
    lr_think_time(5);    //思考時間,模擬人在真實操作時的停頓時間。
     
    web_reg_save_param("childID","LB=childID\":\"","RB=\"}","Search=Body",LAST);  //利用該方法,截取web/mycontent/datas.json 響應結果的內容中的id值,並以參數childID表達。LB表示待截取值左邊的字符,LR表示其右邊的字符。
    web_custom_request("datas.json",
        "URL=http://www.test.com/web/mycontent/datas.json",
        "Method=POST",
        "TargetFrame=",
        "Resource=0",
        "RecContentType=application/json",
        "Referer=http://192.168.112.100:8090/web/mycontent/datas",
        "Snapshot=t6.inf",
        "Mode=HTML",
        "EncType=application/x-www-form-urlencoded; charset=UTF-8",
        "Body={\"fileName\":\"test.csv\",\"type\":\"CSV\",\"coordType\":\"WGS84\",\"dataMetaInfo\":{\"fileEncoding\":\"UTF-8\",\"xField\":null,\"yField\":null}}",   // Body傳入的是POST請求的請求體。  對於" 號,前面需要\進行轉義。
        LAST);
      
     lr_think_time(5);
    web_submit_data("upload.json",
        "Action=http://www.test.com/web/mycontent/datas/{childID}/upload.json",     //{childID} 傳入的是上面 截取的響應id值。
        "Method=POST",
        "EncType=multipart/form-data",
        "TargetFrame=",
        "RecContentType=application/json",
        "Referer=http://192.168.112.100:8090/web/mycontent/datas",
        "Snapshot=t7.inf",
        "Mode=HTML",
        ITEMDATA,
        "Name=uploadFile", "Value=D://wujr//createdata//testdata//標注點.csv", "File=Yes", ENDITEM,  //Value=??對應的待上傳文件的絕對路徑。
        LAST);
    return 0;
}

 

好吧,解釋都在注釋中了,其他也沒啥說的了

6.登出。 vuser_end文件中:

vuser_end()
{
    web_custom_request("logout",
        "URL=http://www.test.com/security/logout",
        "Method=GET",
        "Resource=0",
        "RecContentType=text/html",
        "Referer=",
        "Mode=HTTP",
        "EncType=application/x-www-form-urlencoded; charset=UTF-8", 
        LAST);
    return 0;
}

7.腳本寫好了,開始運行:先點他,執行一遍,看是否有錯。

 

沒問題后,開始自動執行:

.

最后:點擊這里:開始執行。

 

edit by tangyuan。thanks


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM