在Loadrunner錄制腳本及執(zhí)行的過程中,經(jīng)常會用到變量參數(shù)化來進行一些不同組合及唯一性值的設(shè)定,對于Loadrunner參數(shù)化的文章也很多,在此也不在繁述,今天我們就探討下如何更高效的進行Loadrunner參數(shù)化,以更好的提高工作效率。
很多人在接觸參數(shù)化時,都多少有這這樣的困擾:我的參數(shù)化設(shè)置執(zhí)行結(jié)果和我預(yù)期的結(jié)果有很大區(qū)別!在很多系統(tǒng)中對數(shù)據(jù)唯一性要求很高的話,我們會經(jīng)常碰到這樣的情形:我的腳本成功執(zhí)行完畢,但是到后臺一查數(shù)據(jù)卻發(fā)現(xiàn),數(shù)據(jù)沒有執(zhí)行進入系統(tǒng),這樣的測試案例根本無法對系統(tǒng)性能進行評估。
首先我們先看一下再Loadrunner參數(shù)管理器中的2個設(shè)定項select next row和update value on,很多朋友在剛開始接觸參數(shù)化時會對這2個設(shè)定項產(chǎn)生混淆,我們可以從2個特定的維度和覆蓋角度進行理解:
Select next row 是針對于所有vu的取值方式進行限定的,此指標是針對于全局的
Update value on是針對每一個用戶每一次循環(huán)過程中如何更新值進行限定的
根據(jù)上面的定義,我們來逐個對這2個設(shè)定項內(nèi)的選項進行說明
Select next row
Sequential:所用用戶分配相同參數(shù),以順序方式進行分配
Random:所有用戶分配隨機參數(shù),以隨機方式進行分配
Unique:所有的用戶分配不同參數(shù),以順序方式進行分配
Update next row
Each iteration:當前循環(huán)內(nèi)值不變
Each occurrence:當前循環(huán)內(nèi)只要觸發(fā)就進行值的更新
Once:執(zhí)行過程中不更新(即在腳本執(zhí)行前進行取值,然后在執(zhí)行過程中均取該值)
然后我們就可以根據(jù)這樣的句式來理解參數(shù)分配的方式:當腳本開始時,為< --select next row -- >,在< -update next row -- >。通過這樣的方式對在執(zhí)行過程中參數(shù)分配方式可以有更直觀的理解;
下面我對以上的選項做一個排列組合,供大家參考
Sequential
Random
Unique
Each iteration
所有vu均取參數(shù)列表的第一行,在循環(huán)結(jié)束后取第二行
所有vu隨機選取參數(shù)列表內(nèi)參數(shù),在循環(huán)結(jié)束后取第二個隨機數(shù)
所有vu按順序取不同值,在循環(huán)結(jié)束后取下一個未被使用的值
Each occurrence
所有vu均取參數(shù)列表的第一行,在當?shù)诙纬霈F(xiàn)時取第二行值,即使在同一迭代內(nèi)
所有vu隨機選取參數(shù)列表內(nèi)參數(shù),在當?shù)诙纬霈F(xiàn)時取第二個隨機數(shù),即使在同一迭代內(nèi)
所有vu按順序取不同值,在第二次出現(xiàn)時取下一個未被使用的值,即使在同一迭代內(nèi)
Once
所有用戶取參數(shù)列表的第一行,在腳本執(zhí)行過程中均為該值
所有用戶隨機選取參數(shù)列表內(nèi)唯一參數(shù),在腳本執(zhí)行過程中均為該值
所有vu按順序取不同值,在腳本執(zhí)行過程中均為該值
在參數(shù)設(shè)置的過程中,可能會遇到參數(shù)列表內(nèi)數(shù)據(jù)量小于(VU*循環(huán)數(shù))的情況,若可能出現(xiàn)該情況的組合中,參數(shù)管理器中會出現(xiàn)when out of value選項,來配置參數(shù)用盡后的操作方式,我們可以選擇退出vu,從新輪循以及使用最后一個值,根據(jù)測試需求設(shè)定即可
對于Allocate Vuser values in the Controller選項一般情況下默認選擇 Automatically allocate block size即可,若選擇手動設(shè)定則block size的數(shù)量需于腳本循環(huán)數(shù)對應(yīng)。
以上對Loadrunner參數(shù)化設(shè)置進行了說明,現(xiàn)在我們再來看一些在實際使用過程中比較實用的參數(shù)設(shè)置方式
Iteration Number:返回當前循環(huán)次數(shù)
UserID:返回當前VU 的ID值
Group Name:返回次腳本在當前場景內(nèi)Group名稱
Load Generator Name:返回腳本執(zhí)行的測試機名稱
在腳本參數(shù)化的過程中,以參數(shù)的應(yīng)用對腳本執(zhí)行回饋有著很大的幫助,在腳本執(zhí)行完畢后如果需要查詢和統(tǒng)計每個VU的參數(shù)取值以及執(zhí)行情況,則這些參數(shù)化的使用將使你受益良多。
其次由于以上參數(shù)類型具有一定的唯一性,可以通過適當?shù)慕M合來獲得一組有規(guī)則可循的唯一值,在后期性能分析過程中的數(shù)據(jù)分析階段事半功倍。
例如我們可以用UserID+Iteration Number來確定一個唯一值作為腳本內(nèi)某些數(shù)據(jù)的參數(shù)使用,則省去了繁瑣的數(shù)據(jù)準備及設(shè)置工作并且容易查找;同理,在多腳本或多測試機執(zhí)行的場景中可以加入Group Name以及Load Generator Name來區(qū)分。
上述類型的參數(shù)設(shè)定均比較簡單,根據(jù)參數(shù)管理器內(nèi)的提示即可。有一些參數(shù)類型可以支持自定義類型,稍微懂一些C的printf的都完全可以理解,再次也不在贅述。
對于本文未涉及到的一些參數(shù)類型以及參數(shù)化以后的數(shù)據(jù)匯集我會在以后的Loadrunner教程中與大家探討,敬請期待!
以上是我對Loadrunner參數(shù)化過程中的一些心得及看法,不勝詳盡。希望對各位朋友的學習和工作有所幫助。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。