51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 7753|回复: 10
打印 上一主题 下一主题

[求助] lr中for循环写入数据 参数化脚本(转载)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-11-18 16:36:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
lr中for循环写入数据 参数化脚本

else 2010-07-08 18:20:25 阅读57 评论0   字号:大中小 订阅
网上达人的如下,不过有错误,后面跟着我修改后的脚本^_^,

“    Lr_save_string()函数和Itoa()函数的使用



/*

目的:使用for循环添加多条有规律的数据,比如说:a1、a2、a3......a1000

方法:从上面看1-1000是一个有序序列,并且前面的a都是固定的,所以只需要用for循环将1-1000循环出来就可以了。

      但是loadrunner使用的是C语言的语法,所以不能向在java中一样,将两个变量直接相加(+)(+:连字符)

      所以这个时候就需要将首先将int变量转换成string,然后再用lr_save_string()函数将该变量用loadrunner可以识别的参数化方式保存起来,再应用到录制的脚本中就可以了

     

函数简介:

      int itoa ( int value, char *str, int radix );

      函数目的:将int类型转换成string

      参数介绍:value: 要转换的int型的值

                 str: 目标字符串,即将转换成的string值保存到str中

                radix:转换数字时所用的基数 10:十进制;2:二进制……

               

      int lr_save_string (const char *param_value, const char *param_name);

      函数目的:将param_value值保存到param_name变量中

      参数介绍:param_value:要保存的值

                param_name: 变量名称



问题:为什么要用itoa()和lr_save_string()两个函数相结合使用呢?

      因为lr_save_string()中的两个参数都是char类型的指针,int类型的值必须经过转换才能在lr_save_string()函数中使用,所以此处就要将itoa()和lr_save_string()两个函数相结合使用。

*/



Action()

{

       int i;

       char str[100];   //定义一个数组用来保存int类型转换后的值



       for(i=0;i<=9;i++){

              itoa(i,str,10);

              lr_save_string(str,"ID");

              lr_output_message("==str:=%s==ID:=%s====",str,lr_eval_string("{ID}"));

       }



/*

用lr_save_string()将数组保存到变量中以后就可以应用到Loadrunner录制的脚本中了

{ID}:是loardrunner识别参数的方式



    web_url("login",

              "URL=http://server0.im.sonoro.cn:18001/login?username=a{ID}&password=test&autoLogin=false&1211433835878&1211433835878",

              "TargetFrame=",

              "Resource=0",

              "RecContentType=text/html",

              "Referer=http://server0.im.sonoro.cn:18001/proxy.html?1211433821547",

              "Snapshot=t6.inf",

              "Mode=HTML",

              LAST);



*/

       return 0;

}







我录制的一个范例脚本如下:

Action()

   
{

   int i;
char str[100];   //定义一个数组用来保存int类型转换后的值



web_url("sms",
  "URL=http://127.0.0.1:7001/sms",
  "Resource=0",
  "RecContentType=text/html",
  "Referer=",
  "Snapshot=t1.inf",
  "Mode=HTML",
  LAST);

web_add_cookie("VERSION=ZHUJI; DOMAIN=127.0.0.1");

lr_think_time(11);

web_submit_form("com.dvnchina.fw.svt.BfMain",
  "Snapshot=t2.inf",
  ITEMDATA,
  "Name=XT_LOGIN_AREAID", "Value=057502", ENDITEM,
  "Name=XT_LOGIN_NETID", "Value=057502ck", ENDITEM,
  "Name=XT_LOGIN_ID", "Value=szf", ENDITEM,
  "Name=XT_LOGIN_PASSWORD", "Value=1", ENDITEM,
  "Name=B3", "Value=登 入", ENDITEM,
  EXTRARES,
  "Url=../jsp/images/arrow.gif", "Referer=http://127.0.0.1:7001/sms/jsp/login/welcome.jsp", ENDITEM,
  LAST);

web_url("submenu.jsp",
  "URL=http://127.0.0.1:7001/sms/jsp/submenu.jsp?subMenuID=21",
  "Resource=0",
  "RecContentType=text/html",
  "Referer=http://127.0.0.1:7001/sms/jsp/login/welcome.jsp",
  "Snapshot=t3.inf",
  "Mode=HTML",
  LAST);

web_url("com.dvnchina.fw.svt.BfMain_2",
  "URL=http://127.0.0.1:7001/sms/servlet/com.dvnchina.fw.svt.BfMain?ctrlBeanName=com.dvnchina.sms.warehouse.ctrl.Jump2STBBaseCtrl",
  "Resource=0",
  "RecContentType=text/html",
  "Referer=http://127.0.0.1:7001/sms/jsp/submenu.jsp?subMenuID=21",
  "Snapshot=t4.inf",
  "Mode=HTML",
  EXTRARES,
  "Url=../jsp/images/arrow.gif", "Referer=http://127.0.0.1:7001/sms/servlet/com.dvnchina.fw.svt.BfMain?ctrlBeanName=com.dvnchina.sms.warehouse.ctrl.Jump2STBBaseCtrl", ENDITEM,
  LAST);

lr_think_time(7);
    for(i=0;i<=9;i++){
  itoa(i,str,10);
      lr_output_message("==str:=%s==ID:=%s====",str,lr_eval_string("{ID}"));  
   
    lr_save_string(str,"ID");

web_submit_data("com.dvnchina.fw.svt.BfMain_3",
  "Action=http://127.0.0.1:7001/sms/servlet/com.dvnchina.fw.svt.BfMain",
  "Method=POST",
  "RecContentType=text/html",
  "Referer=http://127.0.0.1:7001/sms/servlet/com.dvnchina.fw.svt.BfMain?ctrlBeanName=com.dvnchina.sms.warehouse.ctrl.Jump2STBBaseCtrl",
  "Snapshot=t5.inf",
  "Mode=HTML",
  ITEMDATA,
  "Name=ctrlBeanName", "Value=com.dvnchina.sms.warehouse.ctrl.InitAddItemsCtrl", ENDITEM,
  "Name=AUTOVIRTUALPAIR", "Value=FALSE", ENDITEM,
  "Name=ICTYPE_H", "Value=", ENDITEM,
  "Name=STBID", "Value=hh{ID}", ENDITEM,
  "Name=ICID", "Value=", ENDITEM,
  "Name=UnitAddress", "Value=", ENDITEM,
  "Name=SENDCMD", "Value=ON", ENDITEM,
  "Name=Location", "Value=057502ck", ENDITEM,
  "Name=Performance", "Value=1", ENDITEM,
  "Name=STBType", "Value=STB04", ENDITEM,
  "Name=ICType", "Value=TF", ENDITEM,
  "Name=STBProducer", "Value=", ENDITEM,
  "Name=ICProducer", "Value=", ENDITEM,
  "Name=STBProduceDate", "Value=2010-7-8", ENDITEM,
  "Name=CardProduceDate", "Value=2010-7-8", ENDITEM,
  "Name=STBPrice", "Value=", ENDITEM,
  "Name=CardPrice", "Value=", ENDITEM,
  "Name=STBGoodsNo", "Value=", ENDITEM,
  "Name=ICGoodsNo", "Value=", ENDITEM,
  "Name=STBProvider", "Value=", ENDITEM,
  "Name=ICProvider", "Value=", ENDITEM,
  "Name=STBInDate", "Value=2010-7-8", ENDITEM,
  "Name=ICInDate", "Value=2010-7-8", ENDITEM,
  "Name=STBRemark", "Value=", ENDITEM,
  "Name=ICRemark", "Value=", ENDITEM,
  EXTRARES,
  "Url=../jsp/images/arrow.gif", ENDITEM,
  LAST);
}

return 0;


}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2010-11-19 09:33:54 | 只看该作者
学习下。。。。。。。
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2022-5-8 19:23
  • 签到天数: 137 天

    连续签到: 1 天

    [LV.7]测试师长

    3#
    发表于 2010-11-19 21:35:53 | 只看该作者
    目的是啥
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2010-11-20 09:18:57 | 只看该作者
    写的很受用
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2010-11-20 12:52:31 | 只看该作者
    直接写lr_save_int就行了,还不用转类型。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2012-11-21 15:22:57 | 只看该作者
    谢谢,我没全看懂,但是看懂的用上了。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2014-12-25 17:12
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    7#
    发表于 2014-12-25 14:21:53 | 只看该作者
    不错,很受用  帮我解决了个大问题~~~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2019-9-27 12:46
  • 签到天数: 179 天

    连续签到: 1 天

    [LV.7]测试师长

    8#
    发表于 2014-12-28 16:20:26 | 只看该作者
       Lr_save_string()函数和Itoa()函数的组合是经常用到的。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2016-8-16 16:45:11 | 只看该作者
    不错不错。学习了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2016-8-17 11:39:02 | 只看该作者
    紫毓E 发表于 2016-8-16 16:45
    不错不错。学习了

    参考这个写了个添加用户的脚本,多谢,写得很好。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2016-8-17 11:39:09 | 只看该作者
    紫毓E 发表于 2016-8-16 16:45
    不错不错。学习了

    参考这个写了个添加用户的脚本,多谢,写得很好。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-9-21 03:04 , Processed in 0.071163 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表