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

Loadrunner 用户自定义函数

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

51Testing软件测试网_Aus)a{

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;
XD0KW i;|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;w ee0L3U0}51Testing软件测试网,r2UWg;@ |)@G
int sum(int a,int b)//简单的求和函数
n*F9By"Ytg+?5]p0{51Testing软件测试网GO8S(ONd%C/v
 return a+b;51Testing软件测试网SID2Y t"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@

51Testing软件测试网G1vSB(WH.P)z$Uo

 int i,j;51Testing软件测试网[2}.|q)?[
 j = 1;51Testing软件测试网 B![eNxr~$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!qK2jqX~R\
  j++;51Testing软件测试网EHg iP f
 }51Testing软件测试网S+m3R"keva
 return 0;
u7n'D-x;B0}51Testing软件测试网qy K5q'?_uZp
上例则只有action内部可以调用sum函数。

7F.O3n4g/Zjf1ibh051Testing软件测试网SS*u4_7Zy

2、如果想跳出函数,使用return 0或break即可51Testing软件测试网s3d3I'Hy:q

51Testing软件测试网 \ J8A M9_&^u.j aAI

再看一个稍微复杂点的例子:51Testing软件测试网*eT+B(A-V2BSC
Action()
VB-_2|u(Y|8X5AIm0{
3O2L?d^7`#s:IzZ3_0 int aa[20];
(w(ASs&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#U m@9? [0 {
JkA'x ~Yk0  if(ch[i]>='A' && ch[i]<='Z') //如果是大写字符51Testing软件测试网C0qw kP1i
   a[1]++;51Testing软件测试网$t Tob 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]==' ') //如果是空格
rL6_7H3`c;v e_2e0   a[4]++;
8Px X_9S s(s0 }
~+M8_0O B'@+YIIkm.e0}
Ut8[ hl&? |B0写了一个检查字符串成分的函数,只能检查出字符串长度,大写、小写、数字和空格的个数。51Testing软件测试网)|#jD._.P/B g O

"~g!X&|!| e\*n4[0由此可见,lr中使用C函数还是比较灵活。

-K#YmfW0

TAG: Loadrunner 自定义 函数

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

评分:0

我来说两句

qiguojie

qiguojie

北京测试一草根儿

日历

« 2024-05-07  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

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

RSS订阅

Open Toolbar