关注于测试自动化和测试管理,我是一个永远的测试新手。

Loadrunner 用户自定义函数

上一篇 / 下一篇  2007-06-18 11:14:07

{ N/BT+O I0Loadrunner可以使用标准C语言的函数,因此我们可以在脚本中编写自己的函数用于调用,把脚本结构化,更好的进行重用。51Testing软件测试网 @K9O/?"M&xO(j
先看一个例子:51Testing软件测试网"F}-Xv|vo
Action()
v[X&\Z0`0{51Testing软件测试网S8NKKwt,_v_ a
 int i,j;
dL,g0x-RK J@*E$~E0 j = 1;
-K;y f4uZN)G O0 for (i=0;i<10;i++)
MU1y F2K9l0 {51Testing软件测试网Yq},mMa5l.b
  lr_message("i+j=%d",sum(i,j));51Testing软件测试网F4x,H{"@
  j++;
`D&v,oK3e0 }51Testing软件测试网x%?X$u O p
 return 0;
cey.dV(p gkMI0}51Testing软件测试网,T"^*Y.jc
int sum(int a,int b)//简单的求和函数51Testing软件测试网4I:NIM!j![ pL fE8d
{
6~I4d zf&Ju5y0 return a+b;51Testing软件测试网k'hS}^7|7Y
}
"A-HS;y#z,U DNE9F xB0例子说明:
6t)lRn @1O0我写了一个很简单的函数sum,求2个整数的和;
}:k QO COv$uJ01、函数实现可以放在lr脚本的任意位置(函数的作用域);51Testing软件测试网lhRJm
   例如action、vuser_init、vuser_end这些脚本的主函数外,则不需要考虑函数的作用域;在任意地方都可以调用。
4`fJ0xF n5T0   如果放到Action()、vuser_init()、vuser_end()这些函数体内,则只有本函数体内才可以调用。51Testing软件测试网&nIp9a$QLd'qw
例如:51Testing软件测试网}+n$a+Y]8}6\
Action()51Testing软件测试网lA DecO
{51Testing软件测试网xG"@:XkE r3k
 int sum(int a,int b)//简单的求和函数
,qYnlp K*V0 {
?1a3ue;\_`u0  return a+b;51Testing软件测试网P] X| G"Xfci
 }

#[ \2]?!vqFp0~%m"f051Testing软件测试网f0v3r6S#|,sN

 int i,j;51Testing软件测试网[lM c6Z
 j = 1;
C!wKQ5[y0 for (i=0;i<10;i++)51Testing软件测试网-DdC }8J1H0F
 {
+RKMw.JI4V0  lr_message("i+j=%d",sum(i,j));51Testing软件测试网&Hecm P6zJ([
  j++;
1_2k%R:EF8J.U0D8X0 }51Testing软件测试网:tpB6}.M+_n
 return 0;51Testing软件测试网2twt%{`E9H
}51Testing软件测试网`)BSP%xq"Tt0w~
上例则只有action内部可以调用sum函数。51Testing软件测试网 v&N?:U;Jd"UQ

51Testing软件测试网+D@T:P"j5wBI9F

2、如果想跳出函数,使用return 0或break即可51Testing软件测试网&J/J.b%F#^Xn x u

2?$[VaK"i:FY0再看一个稍微复杂点的例子:51Testing软件测试网G.m0F"R(|\3E
Action()
?)~.|R-xq0{51Testing软件测试网]0Dy n*rJQ}H
 int aa[20];51Testing软件测试网C'ev O*i Qm\Yh:WzOO
 CheckChar("AaBbCc001 1 1",aa);
4FUi3X'c} N[P?*S)O0 lr_message("字符串长度为:%d",aa[0]);
S u$V1s P/V)u(F0 lr_message ("统计-大写字符:%d",aa[1]);
ce-Zz1v8j0 lr_message ("统计-小写字符:%d",aa[2]);51Testing软件测试网h5crw1P2Be
 lr_message ("统计-数字字符:%d",aa[3]);51Testing软件测试网8V3q6BT ?7U.[
 lr_message ("统计-空格字符:%d",aa[4]);
0D_V9|!XFN.KL0 return 0;51Testing软件测试网 q"yx gP-Z_
}
KBw;p-U$b0 51Testing软件测试网 }]!on`O}r
void CheckChar(char ch[],int a[]) //统计函数,分别统计字符串长度;大写、小写、数字和空格的个数,返回整形保存在数组里
Kz~j6^J0{51Testing软件测试网sJX z)j,} B W0J5K?$a
 int i;
E|A-D#KKU5[0 for(i=0;i<=3;i++)
R3e(Dq BO N a!F4_0  a[i]=0;51Testing软件测试网b/[u3@"l%J0Iaf
 a[0] = strlen(ch);//获取字符串长度
.gI5y+g Vo0 for(i=0;i<a[0];i++)51Testing软件测试网8D$c!M8_`7A"{ N
 {
G-X!J6Vw0  if(ch[i]>='A' && ch[i]<='Z') //如果是大写字符51Testing软件测试网.FZ;|P C4O+P
   a[1]++;51Testing软件测试网v'Q)mkA(_|+^
  else if(ch[i]>='a' && ch[i]<='z') //如果是小写字符51Testing软件测试网s\)~yt
   a[2]++;51Testing软件测试网4F1t2U{R#J
  else if(ch[i]>='0' && ch[i]<='9') //如果是数字
){)f@UC!T/L0   a[3]++;51Testing软件测试网 [@sG"E'H7D
  else if(ch[i]==' ') //如果是空格51Testing软件测试网\#R\3} B%hS*GBd
   a[4]++;51Testing软件测试网6}&S*ec J*yc`{
 }51Testing软件测试网x,B(B!Q.^Rb[
}51Testing软件测试网 lzO8PY)O!g1]
写了一个检查字符串成分的函数,只能检查出字符串长度,大写、小写、数字和空格的个数。

wy-K eZ,i051Testing软件测试网.R f?"ax"@:T

由此可见,lr中使用C函数还是比较灵活。

e2z/WJZj1T0

TAG: Loadrunner 自定义 函数

huaruxue的个人空间 引用 删除 huaruxue   /   2011-08-30 11:46:53
我试了下前面最简单的那个,在运行时会报出“illegal character `\0241'”的错误,不知道是什么原因?
 

评分:0

我来说两句

qiguojie

qiguojie

北京测试一草根儿

日历

« 2024-10-24  
  12345
6789101112
13141516171819
20212223242526
2728293031  

数据统计

  • 访问量: 121544
  • 日志数: 39
  • 图片数: 1
  • 建立时间: 2007-06-05
  • 更新时间: 2011-06-29

RSS订阅

Open Toolbar