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. 2.js模式-单例模式

    1. 单例模式 单例模式的核心是确保只有一个实例,并提供全局访问. function xx(name){}; Singleton.getInstance = (function(){ var inst ...

  2. Java for LeetCode 221 Maximal Square

    Given a 2D binary matrix filled with 0's and 1's, find the largest square containing all 1's and ret ...

  3. 省市县联动dropdownlist

    下面就是在提交按钮的单击事件中填写代码(代码区)(前提是把省市县的数据库建好) protected void Page_Load(object sender, EventArgs e)         ...

  4. 【干货】ECS服务器OPENVPN搭建,方便管理所有内网服务器

    [干货]ECS服务器OPENVPN搭建,方便管理所有内网服务器 使用场景 一台有外网的ECS服务器+N台无外网的ECS服务器,使用OPENVPN管理全部的ECS服务器(包括无外网的ECS服务器). 鉴 ...

  5. ASM:《X86汇编语言-从实模式到保护模式》第10章:32位x86处理器的编程架构

    ★PART1:32位的x86处理器执行方式和架构 1. 寄存器的拓展(IA-32) 从80386开始,处理器内的寄存器从16位拓展到32位,命名其实就是在前面加上e(Extend)就好了,8个通用寄存 ...

  6. code vs1517 求一次函数解析式(数论 纯数学知识)

    1517 求一次函数解析式  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 白银 Silver 题解  查看运行结果     题目描述 Description 相信大家都做过练 ...

  7. 51nod 1070 Bash游戏 V4 (斐波那契博弈)

    题目:传送门. 有一堆个数为n(n>=2)的石子,游戏双方轮流取石子,规则如下: 1)先手不能在第一次把所有的石子取完,至少取1颗: 2)之后每次可以取的石子数至少为1,至多为对手刚取的石子数的 ...

  8. 25个增强iOS应用程序性能的提示和技巧(初级篇)

    25个增强iOS应用程序性能的提示和技巧(初级篇) 标签: ios内存管理性能优化 2013-12-13 10:53 916人阅读 评论(0) 收藏 举报  分类: IPhone开发高级系列(34)  ...

  9. August 11th 2016, Week 33rd Thursday

    A particular fine spring came around. 转眼又是一番分外明媚的春光. Hey, it is hot outside, sometimes even unbearab ...

  10. eclipse maven tomcat7 热部署

    .配置tomcat a.配置jdk b.CATALINA_HOME=c:\tomcat CATALINA_BASE=c:\tomcat .tomcat配置密码 C:\Program Files\oth ...