Loadrunner 用户自定义函数
Loadrunner可以使用标准C语言的函数,因此我们可以在脚本中编写自己的函数用于调用,把脚本结构化,更好的进行重用。51Testing软件测试网 g{6K6T6`)O&z;Qs
先看一个例子:51Testing软件测试网LnxA;QXv
Action()51Testing软件测试网k?G~9qS~
{
.G H
i%mYM ey:au0~5[O0 int i,j;51Testing软件测试网Hz hlI!o[X
j = 1;
XD0KWi;|1ZB0 for (i=0;i<10;i++)
p#T\H9ZYS%O0 {
;})\3u(G1| gz~.p0 lr_message("i+j=%d",sum(i,j));51Testing软件测试网|#d4JLF
HY e1k!H
j++;51Testing软件测试网d]I+Y
A|}S
}
2RRi-nzUgl
Q(z0 return 0;
j"l L;wee0L3U0}51Testing软件测试网,r2UWg;@ |)@G
int sum(int a,int b)//简单的求和函数
n*F9By"Ytg+?5]p0{51Testing软件测试网GO8S(ONd%C/v
return a+b;51Testing软件测试网SID2Yt"v;U
}
n]^B,w0例子说明:
)_Q4K5}
S0我写了一个很简单的函数sum,求2个整数的和;51Testing软件测试网}s0GM0O5d
1、函数实现可以放在lr脚本的任意位置(函数的作用域);51Testing软件测试网wyH}?F
例如action、vuser_init、vuser_end这些脚本的主函数外,则不需要考虑函数的作用域;在任意地方都可以调用。51Testing软件测试网.p_2rgw:@l.S~7j
如果放到Action()、vuser_init()、vuser_end()这些函数体内,则只有本函数体内才可以调用。
y-nly|0例如:
2E
T%J-h,M7^,A~?0Action()51Testing软件测试网W0Y&|?
Vg8t\
{51Testing软件测试网w9O,Gi
z0c1y d.y3H
int sum(int a,int b)//简单的求和函数51Testing软件测试网:\!flT1A
@)D M
{51Testing软件测试网q6e]kR9Qh{L%t
return a+b;
qG.Q1Z9N)q9H0 }51Testing软件测试网'V_m,q!Y@
int i,j;51Testing软件测试网[2}.|q)?[
j = 1;51Testing软件测试网B![eN xr~$d+a)o
for (i=0;i<10;i++)
{3]*v*}JA0 {
W$N(DO+`-?0 lr_message("i+j=%d",sum(i,j));51Testing软件测试网O!qK2j qX~R\
j++;51Testing软件测试网EHg
iPf
}51Testing软件测试网S+m3R"keva
return 0;
u7n'D-x;B0}51Testing软件测试网qy
K5q'?_uZp
上例则只有action内部可以调用sum函数。
2、如果想跳出函数,使用return 0或break即可51Testing软件测试网s3d3I'Hy:q
51Testing软件测试网 \ J8AM9_&^u.j a AI再看一个稍微复杂点的例子:51Testing软件测试网*eT+B(A-V2BSC
Action()
VB-_2|u(Y|8X5AIm0{
3O2L?d^7`#s:IzZ3_0 int aa[20];
(w(AS s&XF B0 CheckChar("AaBbCc001 1 1",aa);51Testing软件测试网w4o!F]xwbl9A
lr_message("字符串长度为:%d",aa[0]);51Testing软件测试网.Z POY|#k
lr_message ("统计-大写字符:%d",aa[1]);51Testing软件测试网7^"X*o8Xs1Mw[2v#b
lr_message ("统计-小写字符:%d",aa[2]);51Testing软件测试网,A9odQ$i |g:A
lr_message ("统计-数字字符:%d",aa[3]);
W"tn0QZ5z,V
w W+Q0 lr_message ("统计-空格字符:%d",aa[4]);
,]Eb'@i0 return 0;51Testing软件测试网8t;E,Zf1]H+]b+B Y1z,A
}51Testing软件测试网b!y|ur+vJzKn$?
@s4S/t$RA K-F0void CheckChar(char ch[],int a[]) //统计函数,分别统计字符串长度;大写、小写、数字和空格的个数,返回整形保存在数组里
4Zo3h"v-f8VU#v'X0{
7xo@3R6Bh0 int i;51Testing软件测试网8T9bx)Y:Kz%Q*N
for(i=0;i<=3;i++)51Testing软件测试网#qgK ^1XN;g
a[i]=0;51Testing软件测试网_!d_Z~H jR
a[0] = strlen(ch);//获取字符串长度
W_7?&IW1w}0 for(i=0;i<a[0];i++)
D#Um@9? [0 {
JkA'x~Yk0 if(ch[i]>='A' && ch[i]<='Z') //如果是大写字符51Testing软件测试网C0qw kP1i
a[1]++;51Testing软件测试网$tTob nX r9X
else if(ch[i]>='a' && ch[i]<='z') //如果是小写字符51Testing软件测试网.^+xlR_:x(sQ;Gyd
a[2]++;51Testing软件测试网2^QN4W:o6`
else if(ch[i]>='0' && ch[i]<='9') //如果是数字
P%a]-EW0 a[3]++;51Testing软件测试网jD
D8H*\0i
else if(ch[i]==' ') //如果是空格