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

Loadrunner 用户自定义函数

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

51Testing软件测试网AO)Up"^6n

Loadrunner可以使用标准C语言的函数,因此我们可以在脚本中编写自己的函数用于调用,把脚本结构化,更好的进行重用。51Testing软件测试网*PZ"?'a.dM
先看一个例子:
z R,[ P'|0x$i&z w7K0Action()
/yPH+C'NODR^d1l0{
z.U*|.h \*^0 int i,j;51Testing软件测试网/p;U{1Bp?G"O
 j = 1;51Testing软件测试网\O&Mv;`
 for (i=0;i<10;i++)
6`AK:{RW"y6Z9|T7]5k0 {
.G c$upk9\'XZ{F$L0  lr_message("i+j=%d",sum(i,j));51Testing软件测试网;rPy nC-Lb
  j++;51Testing软件测试网+w!@h;Oxi'['rH9L
 }51Testing软件测试网 Z+l1e2{ u8?+u sY
 return 0;
Jb~4D{4wR$c0}51Testing软件测试网Di:ESR)c,eM2~
int sum(int a,int b)//简单的求和函数51Testing软件测试网}#a:@5MQZ
{
*d wU[%H9p0 return a+b;
#[7W],`7MD$L0}
)~Z9n-A@f8N!v0例子说明:
T#jB?kii$]0我写了一个很简单的函数sum,求2个整数的和;
!gr(TCw01、函数实现可以放在lr脚本的任意位置(函数的作用域);51Testing软件测试网@dG$t/GlC
   例如action、vuser_init、vuser_end这些脚本的主函数外,则不需要考虑函数的作用域;在任意地方都可以调用。
iYqHzJ0   如果放到Action()、vuser_init()、vuser_end()这些函数体内,则只有本函数体内才可以调用。
Vu!l5GMp4V0例如:51Testing软件测试网P{Uc'k]
Action()
5H#\Xz$s9m0{51Testing软件测试网@$t@K.m
 int sum(int a,int b)//简单的求和函数51Testing软件测试网[9b+IGO9m|
 {
\K5bI#i_.iNk,s0  return a+b;
h!F:TM[]1{Nr0 }51Testing软件测试网d;XQt._

|+J6a WVLD0 int i,j;51Testing软件测试网2c"Le3ft
 j = 1;51Testing软件测试网7o+UJ5o-K(O{4x
 for (i=0;i<10;i++)51Testing软件测试网;qLV(k eY!r"E:s)Y
 {51Testing软件测试网7F6Tm)[a)h L*h
  lr_message("i+j=%d",sum(i,j));51Testing软件测试网fY%t3VM#G+c4P;`
  j++;51Testing软件测试网4WB c4T x%DV
 }
h"Arp4uk:} m"uus0 return 0;51Testing软件测试网Oyj b6av6z
}
'O?hta9s9f3w H'W0上例则只有action内部可以调用sum函数。51Testing软件测试网#o%Z ?i@W3reA\

^,W&BAXP+K} U02、如果想跳出函数,使用return 0或break即可51Testing软件测试网#vo5c7{ @owCn}$D

51Testing软件测试网K"y.XS4f!u;y8B

再看一个稍微复杂点的例子:
"K-W&hih^0Action()
)@vms A)AHCg0{51Testing软件测试网 k p#X4DY2k
 int aa[20];51Testing软件测试网Pf(@)w"R&ng
 CheckChar("AaBbCc001 1 1",aa);51Testing软件测试网!@7H Hu I!A!tT
 lr_message("字符串长度为:%d",aa[0]);51Testing软件测试网-eq_z3Xt ["D
 lr_message ("统计-大写字符:%d",aa[1]);51Testing软件测试网zsug5t
 lr_message ("统计-小写字符:%d",aa[2]);51Testing软件测试网3f P+Q'ax[
 lr_message ("统计-数字字符:%d",aa[3]);51Testing软件测试网J%R o)mr ^ N)m
 lr_message ("统计-空格字符:%d",aa[4]);
)t3A6GCD"r&}0 return 0;51Testing软件测试网S3b Y,{V5W C K cN
}
9G t"O!r8y4jn}0 51Testing软件测试网_;G8E4X[t(q
void CheckChar(char ch[],int a[]) //统计函数,分别统计字符串长度;大写、小写、数字和空格的个数,返回整形保存在数组里
L8z%RG"S&WvtS0{
%e@Ju,YZI$[ \0 int i;51Testing软件测试网B,@ Wj-O^Kb\
 for(i=0;i<=3;i++)
*y%y,wT9a t'a3e0  a[i]=0;51Testing软件测试网NU-?X~,P Z?W%e5W
 a[0] = strlen(ch);//获取字符串长度
)dm:S!Jw/h~%{0 for(i=0;i<a[0];i++)51Testing软件测试网7f']]+Zk*S1s
 {
j5x KGc|p0d+O0  if(ch[i]>='A' && ch[i]<='Z') //如果是大写字符51Testing软件测试网*zD4N Y BWP
   a[1]++;
6R s#rZk&ns0  else if(ch[i]>='a' && ch[i]<='z') //如果是小写字符51Testing软件测试网@5B S#Z"vx
   a[2]++;51Testing软件测试网*Z]DC Z2U
  else if(ch[i]>='0' && ch[i]<='9') //如果是数字
~ d2~E"}ti_0   a[3]++;51Testing软件测试网l:G)MT jVmUnP.l&H
  else if(ch[i]==' ') //如果是空格
&cl'l K NRlq0   a[4]++;
ytNC%K0 }
5co,RD$[[0}51Testing软件测试网;o;P w|*L4q:J1G6O"\
写了一个检查字符串成分的函数,只能检查出字符串长度,大写、小写、数字和空格的个数。51Testing软件测试网D:`-V#p d

uN e-Y\8]_0]r0由此可见,lr中使用C函数还是比较灵活。51Testing软件测试网 F,{4eQ8tKlQZ8|y


TAG: Loadrunner 自定义 函数

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

评分:0

我来说两句

qiguojie

qiguojie

北京测试一草根儿

日历

« 2024-04-07  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

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

RSS订阅

Open Toolbar