一,首先要了解一下WEBLOAD腳本里的代碼執(zhí)行順序和作用范圍.
function InitAgenda(){ }
function InitClient(){ }
scrīpt code
function TerminateClient(){ }
function TerminateAgenda(){ }
腳本的執(zhí)行順序按上面的描述,從上而下:
先是初始化腳本InitAgenda(),并且其操作可以作用于所有使用該腳本的線程(即虛擬用戶).每個(gè)腳本只執(zhí)行該初始化函數(shù)一次.
再是初始化虛擬用戶(即由該腳本生成的線程),其操作只能作用于該線程.每個(gè)線程創(chuàng)建時(shí)執(zhí)行一次.
然后是腳本的正文,也是具體的測(cè)試操作了(scrīpt code).它是具體的線程的具體操作.該線程每循環(huán)一次都會(huì)執(zhí)行一次scrīpt code.
然后是終止虛擬用戶(線程)時(shí)執(zhí)行一次TerminateClient()
后是終止該腳本的一切活動(dòng)時(shí)執(zhí)行一次TerminateAgenda().
二,參數(shù)化的基本語句.
InFile4 = CopyFile("D:\web.txt")
Open(InFile4) //打開參數(shù)數(shù)據(jù)的文件
strGlobalInputFileLine = GetLine(InFile4,",") //獲取文件中的一行數(shù)據(jù)
strGlobalInputFileLine[i] //表示該行數(shù)據(jù)的第i列的內(nèi)容
三,通過一和二我們可以建立比較復(fù)雜的參數(shù)化.
例如現(xiàn)在參數(shù)數(shù)據(jù)是:
a b c d e
a1 b1 c1 d1 e1
a2 b2 c2 d2 e2
......
我們想并發(fā)2個(gè)用戶,但這2個(gè)用戶每循環(huán)一次選跟上一次不同的值,例如 A 選了a1,B選了a2,那么下一次循環(huán)A選b1 而B選b2.
實(shí)現(xiàn)方法:
function InitAgenda()
{ InFile4 = CopyFile("D:\web.txt")
Open(InFile4)
i=0;
}
function InitClient()
{
strGlobalInputFileLine = GetLine(InFile4,",")
}
if(i==2)
{
i=0
}
i++
ColContent = strGlobalInputFileLine[i]
這樣的寫法避免了在使用多維的參數(shù)化數(shù)據(jù)的時(shí)候要手工列舉(如: col1 = strGlobalInputFileLine[1]
col2 = strGlobalInputFileLine[2]
.................)
總結(jié):通過將參數(shù)化的基本語句放置與腳本不同的執(zhí)行位置和使用循環(huán)語句控制可以獲得非常靈活的參數(shù)化方式,這并不亞于LOADRUNNER.