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()函數的用法..

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM