hi,baby~i am back!
在上一篇博文中,我大概寫(xiě)了一下登錄腳本的錄制,沒(méi)有給出源代碼。但實(shí)際上,只要你
認(rèn)真按順序看下去,每一部分拼接起來(lái),就已經(jīng)是完整的代碼部分了。
**今天我們來(lái)看一下參數(shù)的設(shè)置。**
任何語(yǔ)言,肯定都會(huì)有參數(shù)的存在。參數(shù)存在的意義是什么?在我的理解來(lái)說(shuō),就像
是把一部分?jǐn)?shù)據(jù)放進(jìn)一個(gè)盒子里,給這個(gè)盒子起一個(gè)名字,然后方便我們找到它。
大家都見(jiàn)過(guò)中醫(yī)抓取重要的藥櫥嘛?每一個(gè)藥櫥都有自己的名字。如果沒(méi)有名字?每
個(gè)數(shù)據(jù)存放在一個(gè)盒子里?在哪個(gè)盒子?I don't know!where is it?所以,我們需要一個(gè)名稱(chēng)。
那么為什么還需要一個(gè)盒子?假設(shè)說(shuō)所有的數(shù)據(jù)都堆在一起,我想要一個(gè)蘋(píng)果,蘋(píng)果在哪兒?
哦!這里有一個(gè),哪里有一個(gè)!我們不是灰姑娘,不需要在灰燼里面找豆豆,所以,同一個(gè)名
稱(chēng)放在一個(gè)盒子里,是一件十分方便的事情。
那么在我們的性能測(cè)試中,參數(shù)有什么作用呢?
1.保存數(shù)據(jù)(關(guān)聯(lián),檢查點(diǎn)等等)
2.盡量模擬真實(shí)環(huán)境。
這里我們先講解第二點(diǎn)。使用參數(shù)盡量模擬真實(shí)環(huán)境。
我們既然要開(kāi)始進(jìn)行性能測(cè)試,一般都需要測(cè)試多個(gè)用戶/請(qǐng)求同時(shí)并發(fā),或者多個(gè)用戶
/請(qǐng)求在一段時(shí)間內(nèi)持續(xù)發(fā)起請(qǐng)求(可以理解為前者是多車(chē)道,所有車(chē)輛并排同時(shí)前進(jìn),后者
為單車(chē)道, 所有車(chē)輛需要排好隊(duì)伍,按順序前進(jìn))?;诖诉€有許多方式的變種。
假設(shè)說(shuō)設(shè)置登錄腳本,如果始終采用一個(gè)用戶并發(fā)的形式,由于用戶名/密碼始終一致,
可能直接讀取緩存,會(huì)與實(shí)際相應(yīng)時(shí)間等有誤差。另外,在實(shí)際情景中,不可能出現(xiàn)一個(gè)用戶
同時(shí)并發(fā)登錄或者持續(xù)登錄的情況,因此需要設(shè)置多個(gè)用戶名/密碼,盡量模擬真實(shí)環(huán)境,減小
誤差。
但是在LoadRunner中,并發(fā)和腳本多次運(yùn)行的情況,都需要很多的數(shù)據(jù),這時(shí)候我們就
可以用到參數(shù)。
參數(shù)的設(shè)置:
1.Vuser-Parameter list中可以設(shè)置參數(shù),點(diǎn)擊Vuser-Parameter list出現(xiàn)如下窗口。點(diǎn)擊New,出現(xiàn)NewParam,寫(xiě)入?yún)?shù)名稱(chēng),在右側(cè)Value處填寫(xiě)參數(shù)數(shù)值。
下面的部分主要是說(shuō),可以選擇數(shù)據(jù)的列的一些設(shè)置(Select column),by number(選擇第幾列),by name (選擇名字為xx的列);文件格式的設(shè)置(file format),Column(不同數(shù)據(jù)之間用什么進(jìn)行分隔),F(xiàn)irst data(第一個(gè)數(shù)據(jù)取自第幾行)
克拉瑪依區(qū)ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書(shū)銷(xiāo)售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書(shū)合作)期待與您的合作!
2.選擇腳本中需要參數(shù)化的數(shù)據(jù)
,點(diǎn)擊右鍵Replace with a Parameter,會(huì)彈出讓你選擇一個(gè)參數(shù),默認(rèn)選擇的新建的參數(shù),以及選擇![]如果這時(shí)候你點(diǎn)擊了ok,那么你還是需要回到第一步去設(shè)置參數(shù)。為了避免多一步操作,可以直接點(diǎn)擊右側(cè)的Properties,就可以直接進(jìn)行參數(shù)的設(shè)置了,如果想用其他參數(shù)代替。如果你想用外部參數(shù)代替,在Replace with a Parameter同級(jí)菜單下方會(huì)顯示一個(gè)Use Exiting Parameter選擇。
經(jīng)過(guò)上面兩種方法的實(shí)驗(yàn),有沒(méi)有覺(jué)得這樣增加參數(shù),如果參數(shù)量很大,就會(huì)十分浪費(fèi)時(shí)間?
也許我們可以這么做:在 Parameter list窗口中點(diǎn)擊Edit with Notepad,可以用記事本形式
編輯,不過(guò)這里要注意,最好在最后一個(gè)參數(shù)后加一個(gè)換行(LoadRunner一個(gè)bug,為了
避免差錯(cuò)可以養(yǎng)成習(xí)慣)
我們的參數(shù)設(shè)置成功了??墒??參數(shù)怎么使用呢?也許,我想讓他采用循環(huán)調(diào)用,想讓它
始終使用一個(gè)值,想讓他每次迭代取值,每次調(diào)用 取值?這些都可以在 Parameter list窗口中
設(shè)置。
不同的組合再下面已經(jīng)排列好了,各位看官,請(qǐng)移步哦~
Select next row:
Sequential:順序取值
Random:隨機(jī)取值
Unique:唯一取值
Same line as:取某個(gè)參數(shù)的同行
Update value on:
Each iteration:每次迭代更新
Each occurrence:每次取值更新
Once;只更新一次
組合類(lèi)型:
1.Sequential
a、與Each iteration組合:將為每次跌倒從數(shù)據(jù)表中提取下一個(gè)值。
b、與Each occurrence組合:將為每一次參數(shù)的出現(xiàn)從數(shù)據(jù)表格中提取下一個(gè)值,即使
它在同一次迭代中。
c、與Once組合:第一次迭代中分配的值就會(huì)在每個(gè)Vuse接下來(lái)所有的迭代中使用。
2.Random
a、與Each iteration組合:將會(huì)為每一次迭代從數(shù)據(jù)表中提取一個(gè)新的隨機(jī)值。
b、與Each occurrence組合:將會(huì)為每一次參數(shù)的出現(xiàn)從數(shù)據(jù)表中提取一個(gè)新的隨機(jī)值,
即使它在同一次迭代中。
c、與Once組合:第一次迭代中分配的隨機(jī)值就會(huì)在改Vuser的所有迭代中使用。
3.Unique
a、與Each iteration組合:將會(huì)為每一次迭代從數(shù)據(jù)表格中提取下一個(gè)唯一值。
b、與Each occurrence組合:將會(huì)為每一次參數(shù)的出現(xiàn)從數(shù)據(jù)表格中提取一個(gè)新的唯一值,
即使它在同一次迭代中。
Unique:意思是保證數(shù)據(jù)使用的唯一性。自動(dòng)分配可根據(jù)迭代次數(shù),及數(shù)據(jù)條數(shù),自動(dòng)分配
數(shù)據(jù)塊。
如果選擇每次取值迭代-自動(dòng)取值,那么數(shù)據(jù)塊=數(shù)據(jù)總條數(shù)/迭代次數(shù),eg:有五條數(shù)據(jù),迭代
2次,那么就是5/2=2,2+1=3
選擇手動(dòng)取值,可以設(shè)置allocate[]values for each Vuser,設(shè)置數(shù)據(jù)塊內(nèi)數(shù)據(jù)的數(shù)目,如果
超出每個(gè)用戶調(diào)用的數(shù)目,只會(huì)取需要的值。
注意:Each iteration可以選擇自動(dòng)或手動(dòng),each occurrence必須手動(dòng)分配