热爱测试,主要研究性能测试和自动化测试方面的技术,希望与同样对测试有热情的你一同进步成长

LoadRunner关联函数的脚本实例--如何操作关联参数

上一篇 / 下一篇  2008-02-28 16:45:40 / 个人分类:性能测试

这几天一直在学习LoadRunnerVuGen编程,今天想对关联函数web_reg_save_param做详细的试验和研究:

3A/x@%x*E)`3X!o0

 

R\sSd~S0

问题提出:如何对关联的数据进行字符串操作。下面使用了LoadRunner自带的订票例子为例,进行了这方面的试验。假设我要关联的数据是由几个字符串组成的。如何使这些字符串组成一个参数,供我后面的函数使用?

2?[-JaH)x-n1d0

 51Testing软件测试网.L([+l/] |

解决方法:使用多个关联函数,对关联参数进行字符串操作,最后把生成的字符串保存成一个参数,供下面调用该参数的函数使用。51Testing软件测试网$?/Ok@*p*_i

 51Testing软件测试网7B(x+T)Hrmx)M,l:v

脚本如下:

VDqoo0

Action()51Testing软件测试网@1Z0]rm

{51Testing软件测试网'C}1~L Z&v[|#a

   int number1,number2;

6K+a4E-T mzi0

       char session11[1000];

p*u9ido7b"H3K.U0

       char string[1000];51Testing软件测试网3g&u4m7\Ea6u#o)C#E

       int length;

)Y,Z#m p ? HAx0

       char *stringtemp;51Testing软件测试网\X6[~:]4PG;f

       //char session22[20];51Testing软件测试网)Oel c5hh

       web_reg_save_param("session1","LB=name=userSession value=","RB=.","Ord=ALL",LAST);

2H0L:?8D g0

       web_reg_save_param("session2","LB=.","RB=<table border=0><tr><td>&nbsp;</td>","Ord=ALL",LAST);

C4h;b%L X4oJ?0

       51Testing软件测试网R0J#W o5aQ

 

GiW;Gc|0

       web_url("WebTours",51Testing软件测试网J asN w4g5l9w

              "URL=http://127.0.0.1:6080/WebTours/",51Testing软件测试网+~)Z2K fK1O

              "Resource=0",51Testing软件测试网e&e!S0pm;S:~

              "RecContentType=text/html",

X,k1r#lv{Uk0

              "Referer=",

Ln1z'Q#d4Pr0

              "Snapshot=t1.inf",51Testing软件测试网;LG#wI.Cp$} g

              "Mode=HTML",51Testing软件测试网h6Dx9MS_

              LAST);

u i5Dr3U0

 51Testing软件测试网 j+D k H4y6@

       strcpy(string,"");51Testing软件测试网;vL1q cg1pO#z

       strcpy(string,lr_eval_string("{session1_1}"));

`V-tu%v}i8W0

 

C2n(U-Ha4O[0

       //strcpy(session1,"");51Testing软件测试网$uK*\SoT j\Ae

 

:b:P }"x'D%t?0

       sprintf(session11,"{session2_1}");

NC;{$C@H0

       strcat(string,".");51Testing软件测试网8J7o0o9}"\u/_B

       length= strlen(lr_eval_string(session11));

o \1}5h)VaB0

       length=length-2;51Testing软件测试网*x(Ml|!Pj

 51Testing软件测试网}+^5M*d6Ex$a}

       number1=atoi(lr_eval_string("{session1_count}"));

Rv oy:l{ rH0

       number2=atoi(lr_eval_string("{session2_count}"));51Testing软件测试网o#F'?]"mfSDY

 

{A A(idTz0

       lr_output_message("%d,%d",number1,number2);51Testing软件测试网1q_GS!Q.a;E

 51Testing软件测试网XLy"SrF&ttV

       //lr_output_message("%d",length);

^:o(J[k Z-fY0

        stringtemp=lr_eval_string(session11);

N R7y_c)[0

       strncat(string,stringtemp,length);51Testing软件测试网 j2yDi1H_uVC

       //srcat(string,session11);

9[0FGlE0

 51Testing软件测试网$Vs7Ik4v[&k*KL

       lr_save_string(lr_eval_string(string),"session");51Testing软件测试网B-o/s7|X`7r}8I p

 

mK4XS+D'p0

       lr_output_message("%s",lr_eval_string("{session1_1}"));

l!_q Wh7U0

       lr_output_message("%s",lr_eval_string("{session2_1}"));51Testing软件测试网 caM0? Q

       51Testing软件测试网8djig Q-|

       web_submit_data("login.pl",51Testing软件测试网:WuXX6Z

              "Action=http://127.0.0.1:6080/WebTours/login.pl",

(D%m9y5X/[7N)Xg n;Jy0

              "Method=POST",

ZKt b(?\.Tf0

              "RecContentType=text/html",                "Referer=http://127.0.0.1:6080/WebTours/nav.pl?in=home",

5N4L"@ eX i2L0

              "Snapshot=t2.inf",

0x)Xkl['Zkag0

              "Mode=HTML",51Testing软件测试网7zaT(Z9Xd D6m

              ITEMDATA,51Testing软件测试网$qj!d,W~

              "Name=userSession", "Value={session}", ENDITEM,51Testing软件测试网%O,r*l,p&TI c2\|

              "Name=username", "Value=jojo", ENDITEM,

(`0U7EJ)B/z+L]0

              "Name=password", "Value=bean", ENDITEM,

-x BSL*su p0

              "Name=JSFormSubmit", "Value=on", ENDITEM,51Testing软件测试网r![#f*gC Ya-A2M.p

              "Name=login.x", "Value=50", ENDITEM,

2x9C6m*o\ ok2E0

              "Name=login.y", "Value=10", ENDITEM,

8A&ZCnI}4\.e0

              LAST);51Testing软件测试网2}Fse(l7ol.fuR

       lr_output_message("%s",lr_eval_string("{session}"));

0x5C8Ke5H.@K5x"S0

 51Testing软件测试网"?i#h X7Cb;k.M

       return 0;

)z k/C o6C \0

}51Testing软件测试网/g+zkf+gJ B;p&JZ v

 有两个关联的参数,session1session2,最后生成session,被web_submit_data函数调用。蓝色部分是需要特别注意的地方。

V H#uqD/T5H\0

脚本编写调试过程中遇到的问题和解释:

+s"s)D0iqb0

1. web_reg_save_param()中如果没有指定Ord=ALL的话,默认是取的第一个符合左右边界的值,这样我们使用关联的参数时可以直接使用变量名,如session1

)Qy7t&]4BDJ0

2. web_reg_save_param()中如果指定Ord=ALL的话,会生成一个数组,这样想取某个参数的话,需要使用的参数名需要加_和数组中的位置,如例子中取第一个session1_1,如果这时候仍然用session1,是取不到参数的值的.51Testing软件测试网*Vt5F Ao&p

3. 顺序问题:对关联参数相关的操作,需要放到包含该关联数据的请求函数之后,如上紫色部分代码用到关联的参数的语句,都需要放到web_url()之后,否则也不会取到关联的数据51Testing软件测试网3z)sU#w~N3NF Lz

4.注意lr_eval_string()函数和lr_save_string()函数的用法..

d{.^@8{;\0

TAG: LoadRunner 性能测试

引用 删除 josee   /   2015-08-24 10:42:24
-5
vangion的个人空间 引用 删除 vangion   /   2012-05-28 10:25:59
1
zhao119843469的个人空间 引用 删除 zhao119843469   /   2012-02-17 10:41:47
5
wuwoyiran的个人空间 引用 删除 wuwoyiran   /   2011-05-06 17:39:48
好厉害!
wuwoyiran的个人空间 引用 删除 wuwoyiran   /   2011-05-06 17:39:18
1
 

评分:0

我来说两句

日历

« 2024-04-05  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 185066
  • 日志数: 85
  • 建立时间: 2007-05-29
  • 更新时间: 2012-09-17

RSS订阅

Open Toolbar