在做性能測試時,我們可能會遇到各種不同的業務需求與用戶行為,在一個系統或網站中,每個用戶的操作都不完全一樣。我們如何來模擬這此用戶的行為?經驗與能力有限,我這里也做個簡單的分析。
Action 介紹
在此之前,我們先來介紹一個Action ,Action就像是一個函數包,將用戶操作根據類別存放在不同的函數中,當選擇完HTTP協議后,VuGen將自動生成腳本的框架。
默認腳本目錄有三部分組成:
1.Vuser_int
2.Action
3.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; } |
原文轉自:http://www.uml.org.cn/Test/201308065.asp