| 在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:當(dāng)前循環(huán)內(nèi)值不變 Each occurrence:當(dāng)前循環(huán)內(nèi)只要觸發(fā)就進行值的更新 On 然后我們就可以根據(jù)這樣的句式來理解參數(shù)分配的方式:當(dāng)腳本開始時,為< --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ù)列表的第一行,在當(dāng)?shù)诙纬霈F(xiàn)時取第二行值,即使在同一迭代內(nèi) 所有vu隨機選取參數(shù)列表內(nèi)參數(shù),在當(dāng)?shù)诙纬霈F(xiàn)時取第二個隨機數(shù),即使在同一迭代內(nèi) 所有vu按順序取不同值,在第二次出現(xiàn)時取下一個未被使用的值,即使在同一迭代內(nèi) On 所有用戶取參數(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:返回當(dāng)前循環(huán)次數(shù) UserID:返回當(dāng)前VU 的ID值 Group Name:返回次腳本在當(dāng)前場景內(nèi)Group名稱 Load Generator Name:返回腳本執(zhí)行的測試機名稱 在腳本參數(shù)化的過程中,以參數(shù)的應(yīng)用對腳本執(zhí)行回饋有著很大的幫助,在腳本執(zhí)行完畢后如果需要查詢和統(tǒng)計每個VU的參數(shù)取值以及執(zhí)行情況,則這些參數(shù)化的使用將使你受益良多。 其次由于以上參數(shù)類型具有一定的唯一性,可以通過適當(dāng)?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ù)化過程中的一些心得及看法,不勝詳盡。希望對各位朋友的學(xué)習(xí)和工作有所幫助。 | 
|  |