一,首先要了解一下WEBLOAD脚本里的代码执行顺序和作用范围.
function InitAgenda(){ }
function InitClient(){ }
scrīpt code
function TerminateClient(){ }
function TerminateAgenda(){ }
脚本的执行顺序按上面的描述,从上而下:
先是初始化脚本InitAgenda(),并且其操作可以作用于所有使用该脚本的线程(即虚拟用户).每个脚本只执行该初始化函数一次.
再是初始化虚拟用户(即由该脚本生成的线程),其操作只能作用于该线程.每个线程创建时执行一次.
然后是脚本的正文,也是具体的测试操作了(scrīpt code).它是具体的线程的具体操作.该线程每循环一次都会执行一次scrīpt code.
然后是终止虚拟用户(线程)时执行一次TerminateClient()
后是终止该脚本的一切活动时执行一次TerminateAgenda().
二,参数化的基本语句.
InFile4 = CopyFile("D:\web.txt")
Open(InFile4) //打开参数数据的文件
strGlobalInputFileLine = GetLine(InFile4,",") //获取文件中的一行数据
strGlobalInputFileLine[i] //表示该行数据的第i列的内容
三,通过一和二我们可以建立比较复杂的参数化.
例如现在参数数据是:
a b c d e
a1 b1 c1 d1 e1
a2 b2 c2 d2 e2
......
我们想并发2个用户,但这2个用户每循环一次选跟上一次不同的值,例如 A 选了a1,B选了a2,那么下一次循环A选b1 而B选b2.
实现方法:
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]
这样的写法避免了在使用多维的参数化数据的时候要手工列举(如: col1 = strGlobalInputFileLine[1]
col2 = strGlobalInputFileLine[2]
.................)
总结:通过将参数化的基本语句放置与脚本不同的执行位置和使用循环语句控制可以获得非常灵活的参数化方式,这并不亚于LOADRUNNER.