距離上次使用loadrunnr 已經(jīng)有一年多的時(shí)間了。初做測(cè)試時(shí)在項(xiàng)目中用過,后面項(xiàng)目中用不到,自己把重點(diǎn)放在了工具之外的東西上,認(rèn)為性能測(cè)試不僅僅是會(huì)用工具,最近又想有一把好的利器畢竟可以幫助自己更好的完成性能測(cè)試工作。這算是一個(gè)認(rèn)知的過程吧!
在次安裝打開loadrunner時(shí),發(fā)現(xiàn)雖然自己的思想還在,但已經(jīng)非常生疏了,好多設(shè)置都找不到了具體的位置。下面說參數(shù)化參數(shù)化是性能測(cè)試中時(shí)最常用的一種技巧吧!這里需要說明的是,不是只有l(wèi)oadrunner才可以設(shè)置參數(shù)化,我以前所使用的JMeter同樣也有類似的設(shè)置。
我們知道性能測(cè)試工具是模擬多個(gè)用戶對(duì)系統(tǒng)的性能進(jìn)行驗(yàn)證(這種說法不完全正確),有些系統(tǒng)允許多個(gè)完全相同的用戶同時(shí)對(duì)完全相同的數(shù)據(jù)做完全相同的操作,有些則不允許。比如,郵箱一般允許同一個(gè)賬號(hào)在多處登陸。而我們的QQ賬號(hào)肯定是不允許的。再比如,你注冊(cè)某個(gè)系統(tǒng)時(shí),用戶名是不能有重復(fù)。但密碼卻可以。所以,這么多個(gè)情況都要用到參數(shù)化技巧。
我們這里通過loadurnner錄制一個(gè)139郵箱的登陸。下面是截取的一小段代碼
........
web_submit_form("Login.ashx",
"Snapshot=t3.inf",
ITEMDATA,
"Name=UserName", "Value=chongshi", ENDITEM,
"Name=Password", "Value=123456", ENDITEM,
"Name=VerifyCode", "Value=", ENDITEM,
"Name=auto", "Value=<OFF>", ENDITEM,
EXTRARES,
......
下面看一下如何通過loadrunner對(duì)用戶名密碼參數(shù)化。標(biāo)紅的內(nèi)容就是登陸的用戶名和密碼。
參數(shù)化的方法
選中要參數(shù)化的內(nèi)容。
方法一,右鍵---【Replace with a new parameter】
方法二,菜單【insert】----【new Parameter…】
?
?文章來源地址http://www.zghlxwxcb.cn/news/detail-424645.html
Parameter Properties (參數(shù)屬性對(duì)話框)----我們的參數(shù)化設(shè)置就通過這個(gè)對(duì)話框完成。
參數(shù)化的方式:
其實(shí)參數(shù)化得方式有很多種,這里簡(jiǎn)述幾種比較常見人方式。其實(shí)方式略有不同,但其結(jié)果都是將數(shù)據(jù)添加進(jìn)來。
1、 編輯數(shù)據(jù)
點(diǎn)擊Create Table 會(huì)出現(xiàn)表格,在表格,再次點(diǎn)擊Edit with Notepad ,然后會(huì)打開一個(gè)記事本,我們可以對(duì)記事本進(jìn)行添加數(shù)據(jù)
?
2、 添加dat數(shù)據(jù)文件
點(diǎn)擊File輸入框后面的“Browse..”按鈕,找到本地的txt數(shù)據(jù)文件,進(jìn)行添加就可以了。
需要注意的是,文件里面的數(shù)據(jù)不要亂寫,每條數(shù)據(jù)一行,不然會(huì)讀取有誤。
3、 數(shù)據(jù)庫(kù)添加數(shù)據(jù)
在很多情況下,我添加的數(shù)據(jù)不是十條二十條,也不是一百兩百,如果還通過上面的兩種方式添加,我想會(huì)是一件非常糾結(jié)的事情。所以我們可以通過數(shù)據(jù)庫(kù)將數(shù)據(jù)導(dǎo)入。你是否疑慮數(shù)據(jù)庫(kù)的數(shù)據(jù)怎么弄,數(shù)據(jù)庫(kù)的數(shù)據(jù)生成非常簡(jiǎn)單,可以寫一段簡(jiǎn)單的代碼生成,也可以通過數(shù)據(jù)庫(kù)數(shù)據(jù)生成工具來完成
點(diǎn)擊Date Wizard 打開連接數(shù)據(jù)庫(kù)向?qū)А?/p>
?
這里先告訴你有這種方式,后面再介紹具體操作。^_^
4、 其他類型設(shè)置
如果我們要參數(shù)化的不是一個(gè)文件,比如是特定的日期時(shí)間,可以從Parameter type?列表中進(jìn)行選擇
?
這里可以設(shè)置日期時(shí)間格式,循環(huán)迭代方式,不過除了file類型外,其他用的不多。其他類型用法我也不是十分了解。
參數(shù)化之間的關(guān)聯(lián)
前面我們已經(jīng)對(duì)用戶名進(jìn)行了參數(shù)化,或?qū)γ艽a進(jìn)行了參數(shù)化,這樣是不是腳本就能正常跑了,不好說。因?yàn)橛脩裘兔艽a不是一一對(duì)應(yīng)關(guān)系,每次運(yùn)行腳本時(shí)取的用戶名和密碼沒有對(duì)應(yīng)上的話肯定就會(huì)出問題。
假設(shè),我們已經(jīng)對(duì)用戶名已經(jīng)進(jìn)行了參數(shù)化,參數(shù)名為【username】,下面設(shè)置密碼參數(shù)化與用戶名關(guān)聯(lián)。
點(diǎn)擊“Properites…”會(huì)打開編輯用戶名參數(shù)化窗口。File列表框中,剛才保存用戶名信息的文件"username.dat"。?
?
?點(diǎn)擊“Add Column…”,添加新的一列信息,用于放置密碼。
?點(diǎn)擊“Edit with Notepad”再次編輯參數(shù)化數(shù)據(jù)文件,使用戶名密碼建立一一對(duì)應(yīng)關(guān)系。?
完成之后,我們已經(jīng)成功對(duì)用戶名和密碼進(jìn)行了參數(shù)化,并且讓用戶名和密碼形成了對(duì)應(yīng)關(guān)系。
數(shù)據(jù)分配與更新方式
腳本設(shè)置完參數(shù)化,腳本運(yùn)行的每一遍所取的參數(shù)化的值都不一樣,那么這個(gè)值按照個(gè)什么情況來取呢?會(huì)有很多種方式
Select next row【選擇下一行】:
?
每次迭代(Each iteration)?:每次迭代時(shí)取新的值,假如50個(gè)用戶都取第一條數(shù)據(jù),稱為一次迭代;完了50個(gè)用戶都取第二條數(shù)據(jù),后面以此類推。
每次出現(xiàn)(Each occurrence):每次參數(shù)時(shí)取新的值,這里強(qiáng)調(diào)前后兩次取值不能相同。
只取一次(once)?:參數(shù)化中的數(shù)據(jù),一條數(shù)據(jù)只能被抽取一次。(如果數(shù)據(jù)輪次完,腳本還在運(yùn)行將會(huì)報(bào)錯(cuò))
上面兩個(gè)選項(xiàng)都有三種情況,如果將他們進(jìn)行組合,將產(chǎn)生九種取值方式。
Select Next Row 【選擇下一行】 |
Update Value On 【更新時(shí)的值】 |
Replay Result 【結(jié)果】 |
順序(Sequential) |
每次迭代(Each iteration) |
結(jié)果:分別將15條數(shù)據(jù)寫入數(shù)據(jù)表中 功能說明:每迭代一次取一行值,從第一行開始取。當(dāng)所有的值取完后,再?gòu)牡谝恍虚_始取 如:如果參數(shù)化文件中有15條數(shù)據(jù),而迭代設(shè)置為16次,那執(zhí)行結(jié)果中,參數(shù)化文件第一行的數(shù)據(jù)有兩條 |
順序(Sequential) |
每次出現(xiàn)(Each occurrence) |
結(jié)果:分別將15條數(shù)據(jù)寫入數(shù)據(jù)表中 功能說明:每迭代一次取一行值,從第一行開始取。當(dāng)所有的值取完后,再?gòu)牡谝恍虚_始取 如:如果參數(shù)化文件中有15條數(shù)據(jù),而迭代設(shè)置為16次,那執(zhí)行結(jié)果中,參數(shù)化文件第一行的數(shù)據(jù)有兩條 |
順序(Sequential) |
只取一次(once) |
結(jié)果:表中寫入15條一模一樣的數(shù)據(jù)。 功能說明:每次迭代都取參數(shù)化文件中第一行的數(shù)據(jù)。 |
隨機(jī)(Random) |
每次迭代(Each iteration) |
結(jié)果:表中寫入15條數(shù)據(jù),但可能有重復(fù)數(shù)據(jù)出現(xiàn) 功能說明:每次從參數(shù)化文件中隨機(jī)選擇一行數(shù)據(jù)進(jìn)行賦值 |
隨機(jī)(Random) |
每次出現(xiàn)(Each occurrence) |
結(jié)果:表中寫入15條數(shù)據(jù),但可能有重復(fù)數(shù)據(jù)出現(xiàn) 功能說明:每次從參數(shù)化文件中隨機(jī)選擇一行數(shù)據(jù)進(jìn)行賦值 |
隨機(jī)(Random) |
只取一次(once) |
結(jié)果:表中寫入15條相同數(shù)據(jù) 功能說明:第一次迭代時(shí)隨機(jī)從參數(shù)化文件中取一行數(shù)據(jù),后面每次迭代都用第一次迭代的數(shù)據(jù)。 |
唯一(Unique) |
每次迭代(Each iteration) 自動(dòng)分配塊大小 |
結(jié)果:分別將15條數(shù)據(jù)寫入數(shù)據(jù)表中 功能說明:第一次迭代取參數(shù)化文件中的第一條數(shù)據(jù),第二次迭代取第二條數(shù)據(jù),以此類推。 注:如果設(shè)置迭代次數(shù)為16次。結(jié)果:在執(zhí)行第16次迭代時(shí)會(huì)拋異常,異常日志可在LoadRunner的回放日志(replayLog)中看到。 |
唯一(Unique) |
每次出現(xiàn)(Each occurrence) 步長(zhǎng)為1 |
結(jié)果:分別將15條數(shù)據(jù)寫入數(shù)據(jù)表中 功能說明:第一次迭代取參數(shù)化文件中的第一條數(shù)據(jù),第二次迭代取第二條數(shù)據(jù),以此類推。 注:如果設(shè)置迭代次數(shù)為16次,而參數(shù)化文件中只有15條數(shù)據(jù),明顯數(shù)據(jù)不夠。此時(shí)可以設(shè)置“when out of values”屬性來判斷當(dāng)數(shù)據(jù)不夠時(shí)的處理方式 Abort Vuser:中斷虛擬用戶 Countinue in a cylic manage:循環(huán)取參數(shù)化文件中的值,即:當(dāng)參數(shù)化文件中的值取完后又從參數(shù)化文件的第一行開始取值。 Countinue with last value:繼續(xù)用最后一條數(shù)據(jù) |
唯一(Unique) |
只取一次(once) |
結(jié)果:表中寫入15條相同數(shù)據(jù) 功能說明:每次都取參數(shù)文件中的第一條數(shù)據(jù)進(jìn)行賦值 |
Ps:關(guān)于調(diào)用數(shù)據(jù)庫(kù)實(shí)現(xiàn)參數(shù)化的方式,放在后一篇細(xì)說。被一個(gè)蛋疼的問題和這篇文章折騰一天。文章來源:http://www.zghlxwxcb.cn/news/detail-424645.html
?
到了這里,關(guān)于LoadRunner參數(shù)化最佳實(shí)踐:讓你的性能測(cè)試更加出色!的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!