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

时间:2023-03-09 04:53:53
LoadRunner关联函数的脚本实例--如何操作关联参数

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

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

~f6p q+Z  RM0

a6_%_+vF9Ws\w&S0

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

51Testing软件测试网J3p a9o8~ B

解决方法:使用多个关联函数,对关联参数进行字符串操作,最后把生成的字符串保存成一个参数,供下面调用该参数的函数使用。

m*OO6g_?4zN0

&\MQ0h*T B0

脚本如下:51Testing软件测试网 LN+tq-vY

Action()

v(Z.Z0v!{d!gc^K;oL0

{51Testing软件测试网h7GRAY%j

  int  number1,number2;51Testing软件测试网Zh8G9{)V/j

      char  session11[1000];

V&D7`\'r(gka0

      char  string[1000];51Testing软件测试网RO"Wc ]

      int  length;

8VUx3c7XE#c1?0

      char  *stringtemp;51Testing软件测试网}R'o~b(Y

      //char  session22[20];

5g%~#Wg;PG6S0

      web_reg_save_param("session1","LB=name=userSession  value=","RB=.","Ord=ALL",LAST);51Testing软件测试网 _cEE!{_h&k RNm

      web_reg_save_param("session2","LB=.","RB=<table  border=0><tr><td>&nbsp;</td>","Ord=ALL",LAST);51Testing软件测试网 D SSpU

51Testing软件测试网U$F8AO E`-a

8H(D1cM0x6iGC0

      web_url("WebTours",

%?.q(sO K;L9~8S0

             "URL=http://127.0.0.1:6080/WebTours/",51Testing软件测试网vWg!N z4ba

             "Resource=0",51Testing软件测试网Xn.zL4l.M

             "RecContentType=text/html",

z\Z5I:[0

             "Referer=",

3dH(a#w"X xn6h0

             "Snapshot=t1.inf",51Testing软件测试网VS ^j2D H1JcY

             "Mode=HTML",51Testing软件测试网vPbm)@

             LAST);51Testing软件测试网/uB*gc;]H \

.[,HrX3NUs p0

      strcpy(string,"");

J}L%Q.DD!H-mo0

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

#J+DK)Xt"f0

51Testing软件测试网:]3e+U4A%@9k+[

      //strcpy(session1,"");

"X!O{|/zE0

"OCXH&M[/c coxbq0

      sprintf(session11,"{session2_1}");

9j1X(d!QA-vHj5s#Q0

      strcat(string,".");

c[,F)_ e [6zEJ0

      length=  strlen(lr_eval_string(session11));

{$s,ea1w0

      length=length-2;51Testing软件测试网Eb:Y].s{5y

:r2s4E&Ek t%\V0

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

T%]q erx~?&M0

      number2=atoi(lr_eval_string("{session2_count}"));

8Kq2d-` O5ANf0

51Testing软件测试网9i~/V^6V E

      lr_output_message("%d,%d",number1,number2);51Testing软件测试网j[ r?]o XCw

51Testing软件测试网&XC5]E nQ

      //lr_output_message("%d",length);51Testing软件测试网O`6oO:rjK

      stringtemp=lr_eval_string(session11);

B%zL!i;VQ za0

      strncat(string,stringtemp,length);51Testing软件测试网G2MC-E'\'RD:j#tF

      //srcat(string,session11);

#l}!o8BdZ;w0

51Testing软件测试网 M+G8e;_ce-Ad@(^@

      lr_save_string(lr_eval_string(string),"session");

*r8L4vsm)Y!|0

g/RxI*n!h/G0t3P W0

      lr_output_message("%s",lr_eval_string("{session1_1}"));51Testing软件测试网;]F8LY%LWT]7L&u

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

(Y$D,XE^0

51Testing软件测试网MRvaA_x3L

      web_submit_data("login.pl",51Testing软件测试网!h^[ W*M

             "Action=http://127.0.0.1:6080/WebTours/login.pl",51Testing软件测试网}&\)b'NF ]qJA wB

             "Method=POST",

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

'e)jl [B7i*M0

             "RecContentType=text/html",                

             "Snapshot=t2.inf",

*m:?]Q(iC%fWT0

             "Mode=HTML",51Testing软件测试网@_$?6tF

             ITEMDATA,

$i IN{7p%C6} Q b,D0

             "Name=userSession", "Value={session}",  ENDITEM,

j1p5}&gv0

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

gy){#qWIe0

             "Name=password", "Value=bean",  ENDITEM,51Testing软件测试网Z4fYHwH%V;S

             "Name=JSFormSubmit", "Value=on",  ENDITEM,

iF(v8yQ0gGMw0

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

)|  Uld,E2EX0

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

-|5rd  I(y,Q6a5ti0

             LAST);

y9["OB0?vci0

      lr_output_message("%s",lr_eval_string("{session}"));51Testing软件测试网?l.C] N2z5K

$g ?5M|9i0

      return  0;51Testing软件测试网R&U:aV"DS D8L.i

}51Testing软件测试网CTXO5g5?:F\

有两个关联的参数,session1session2,最后生成session,被web_submit_data函数调用。蓝色部分是需要特别注意的地方。51Testing软件测试网0d  g8_nc

脚本编写调试过程中遇到的问题和解释:51Testing软件测试网jA X'|8A#d|2V2z }1a

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

6X N eC)T;TA0

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

9{!DSu/h0

3. 顺序问题:对关联参数相关的操作,需要放到包含该关联数据的请求函数之后,如上紫色部分代码用到关联的参数的语句,都需要放到web_url()之后,否则也不会取到关联的数据

9] bw$Q m"D H t0

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