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

LoadRunner关联函数的脚本实例--如何操作关联参数的更多相关文章

  1. loadrunner 编写socket脚本实例(附服务端实现)

    一.socket背景知识 这个咱就不废话了,网上一搜一大堆 二.本实例实现的功能 服务端接收客户端发送的字符串,并返回"5678succ"共8个字符 三.服务端实现(java代码) ...

  2. Loadrunner手动编写包含事务、检查点、关联等元素的脚本实例

    一.前言: 本文适合初学者,包含很多细节,包括 二.准备: 1.以虚拟机中的Linux系统作为服务器,开启bugfree服务. 2.以fiddler作为抓包工具,辅助脚本开发. 3.脚本流程:bugf ...

  3. LoadRunner脚本参数化之自动关联和手动关联

    一.关联的意义  1.关联的含义 关联(correlation):在脚本回放过程中,客户端发出请求,通过关联函数所定义的左右边界值(也就是关联规则),在服务器所响应的内容中查找,得到相应的值,以变量的 ...

  4. LoadRunner脚本实例来验证参数化的取值

    LoadRunner脚本实例来验证参数化的取值 SINM {3]!G0问题提出:  主要想试验下,在Controller中,多个用户,多次迭代中参数的取值.51Testing软件测试网(['H5f,d ...

  5. loadrunner 脚本开发-执行操作系统命令

    脚本开发-执行操作系统命令 by:授客 QQ:1033553122 思路: 用loadrunner system()函数 函数原型: int system( const char *string ); ...

  6. Loadrunner脚本优化-参数化之关联MySQL数据库获取数据

    脚本优化-参数化之关联MySQL数据库获取数据 by:授客 QQ:1033553122 测试环境: Loadrunner 11 Win7 64位 实操: 1.   安装MySQL ODBC驱动程序 O ...

  7. LoadRunner系列之—-02 基于webservice协议的接口测试(脚本实例)

    Loadrunner 基于webservice协议的接口压力测试(脚本实例) 接口功能如下:请求接口,报文只有一个参数为证件号码:返回报文中,有证件号码是否能查到对应数据,查到几条数据. 思路:请求w ...

  8. 【原创】LoadRunner Java Vuser脚本的配置和调试指南

    1 编写目的 本文介绍了Loadrunner多负载压力机的配置,并通过测试Java Vuser的数据库连接脚本对配置结果进行了验证,同时对配置过程中遇到的问题和解决的过程进行了记录,关于Java数据库 ...

  9. Loadrunner开发测试脚本

    Loadrunner开发测试脚本 开发测试脚本可以通过录制,也可以手动开发,建议能录制的尽量录制,省时省力,不能录制的只能费力自己开发了,具体看项目情况来决定. 使用Loadrunner开发脚本过程中 ...

随机推荐

  1. Win8环境WPF打开和关闭软键盘

    代码如下: public class KeyBoardHelper { #region 键盘控制 /// <summary> /// 显示键盘 /// </summary> p ...

  2. suse linux 命令

    1.修改vftpd配置文件   vi /etc/vsftpd .conf                       #listen=YES   vi /etc/xinetd.d/vsftpd     ...

  3. Android环境搭建中遇到的小问题

    有一认识的同学做Android,结果他们搭建环境出现问题,最后卡在了一关,因为听说自己学过Java,所以就... 最后,自己试了一下,结果将遇到的解决问题记下来了:(看到小绿人后自己也被Android ...

  4. 【leetcode】 Permutation Sequence (middle)

    The set [1,2,3,…,n] contains a total of n! unique permutations. By listing and labeling all of the p ...

  5. LeetCode 191 Number of 1 Bits

    Problem: Write a function that takes an unsigned integer and returns the number of '1' bits it has ( ...

  6. Mysql Condition /Handler(异常处理)

    关于介绍,可参见:http://www.cnblogs.com/end/archive/2011/04/01/2001946.html. http://blog.csdn.net/rdarda/art ...

  7. iOS - property,strong,weak,retain,assign,copy,nomatic 的区别及使用

    1:ARC环境下,strong代替retain.weak代替assign,xcode 4.2(ios sdk4.3和以下版本)和之前的版本使用的是retain和assign,是不支持ARC的.xcod ...

  8. hdu 1257 最少拦截系统

    #include<time.h> #include <cstdio> #include <iostream> #include<algorithm> # ...

  9. TCP 四次握手

    TCP协议中的三次握手和四次挥手(图解) http://blog.csdn.net/whuslei/article/details/6667471/

  10. ASP.NET Web API 数据验证

    第一种方式单独为每一个Action做验证 // POST api/values public HttpResponseMessage Post([FromBody]UserInfo userInfo) ...