LoadRunner 技巧之 腳本設計


 

 在做性能測試時,我們可能會遇到各種不同的業務需求與用戶行為,在一個系統或網站中,每個用戶的操作都不完全一樣。我們如何來模擬這此用戶的行為?經驗與能力有限,我這里也做個簡單的分析。

 

 

Action 介紹                                                               

  在此之前,我們先來介紹一個Action Action就像是一個函數包,將用戶操作根據類別存放在不同的函數中,當選擇完HTTP協議后,VuGen將自動生成腳本的框架。

默認腳本目錄有三部分組成:

Vuser_int 

Action

Vuser_end

簡單有的來說,我們可以把他們看成三個程序文件,他們依次按照Vuser_int --->Action--->Vuser_end 的順序執行,存放於Action中的腳本可以循環執行(可以設置循環次數)

 

在腳本錄制之前,我們可以設置將腳本錄制在哪一部分:

 

在腳本錄制的過程中,我們可以選擇切換腳本的存放位置:

 

在腳本左側右鍵添加新的action部分:

 

在菜單欄Vuser ---> run-time setting ,選擇Run logic 選項,可以設置Action部分的循環次數。

 

 

 

下面簡單介紹如何使用參數化、action設置和業務用戶比例等進行性能測試。

 

場景一:                                                                                                  

 

一個用戶訪問WebTours (loadrunner 自帶程序)首頁,做兩次登錄與退出

1、vuser_init部分錄制訪問webrours首頁

vuser_init()
{

    web_url("WebTours", 
        "URL=http://127.0.0.1:2080/WebTours", 
        "Resource=0", 
        "RecContentType=text/html", 
        "Referer=", 
        "Snapshot=t30.inf", 
        "Mode=HTML", 
        LAST);

    web_url("header.html", 
        "URL=http://127.0.0.1:2080/WebTours/header.html", 
        "Resource=0", 
        "RecContentType=text/html", 
        "Referer=http://127.0.0.1:2080/WebTours/", 
        "Snapshot=t31.inf", 
        "Mode=HTML", 
        LAST);

    web_url("welcome.pl", 
        "URL=http://127.0.0.1:2080/WebTours/welcome.pl?signOff=true", 
        "Resource=0", 
        "RecContentType=text/html", 
        "Referer=http://127.0.0.1:2080/WebTours/", 
        "Snapshot=t32.inf", 
        "Mode=HTML", 
        EXTRARES, 
        "Url=../favicon.ico", "Referer=", ENDITEM, 
        LAST);
}

 

2、將腳本錄制部分切換到Action 部分,錄制用戶登錄與退出

Action()
{

    web_submit_data("login.pl", 
        "Action=http://127.0.0.1:2080/WebTours/login.pl", 
        "Method=POST", 
        "Referer=http://127.0.0.1:2080/WebTours/nav.pl?in=home", 
        "Mode=HTML", 
        ITEMDATA, 
        "Name=userSession", "Value=110416.933414338fzHQfHVpAVcfDtAHHptczAHf", ENDITEM, 
        "Name=username", "Value={username}", ENDITEM,  //參數化用戶名
        "Name=password", "Value={password}", ENDITEM,   //參數化密碼
        "Name=JSFormSubmit", "Value=on", ENDITEM, 
        LAST);

    web_submit_data("login.pl_2", 
        "Action=http://127.0.0.1:2080/WebTours/login.pl", 
        "Method=POST", 
        "RecContentType=text/html", 
        "Referer=http://127.0.0.1:2080/WebTours/nav.pl?in=home", 
        "Snapshot=t33.inf", 
        "Mode=HTML", 
        ITEMDATA, 
        "Name=userSession", "Value=110416.933414338fzHQfHVpAVcfDtAHHptczAHf", ENDITEM, 
        "Name=username", "Value=test", ENDITEM, 
        "Name=password", "Value=123456", ENDITEM, 
        "Name=JSFormSubmit", "Value=on", ENDITEM, 
        "Name=login.x", "Value=56", ENDITEM, 
        "Name=login.y", "Value=4", ENDITEM, 
        LAST);

    return 0;
}

 

run-time setting Run logic 選項,設置Action 運行兩次。

 

運行腳本結束,可以通過菜單欄view--->Test Results 來查看運行的結果是否正確

 

 

 

場景二:                                                                                                  

 

一個用戶登錄一個系統,做3次查詢,5次插入,退出。

 

這里我就不做詳細介紹了,需要的注意點是,可以在run-time setting Run logic 選項中點擊insert Block 添加快,雙擊Block 設置循環次數。

將我們的查詢操作與插入操縱分別存放在兩個迭代塊(block)中

我們還可以設置迭代之間的間隔,run-time setting pacing 

 

 

 

 

場景三 :                                                                                                  

 

這個場景跟用戶操作比例有關系業務有關,一個網站,在線用戶中,有80% 用戶發表文章,20%的用戶上傳相片。

 

那么,我可以分別錄制兩個腳本,第一腳本,用戶操作發表文章;第二個腳本,用戶操作上傳相片。

將兩個腳本導入Controller 控制器中。

注意勾選 use the percentage mode to distribute the vusers among the scrpts ,不然無法分配腳本用戶比例。

我們可以為腳本分配不同的用戶比例來運行。

 

----------------------------------------

  這里只是提供一個思路,我們可以根據這些設置(或叫技巧)結合我們的業務需求來進行腳本與場景設計。

 


免責聲明!

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



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