LoadRunner中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;

  }

版权声明:51Testing 软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像。 51testing软件测试网欢迎与业内同行进行有益的合作和交流,如果有任何有关内容方面的合作事宜,请联系我们



lr_eval_string()函数的主要是返回脚本中的一个参数当前的值,返回值类型为char型.一般多用在调试脚本时输出参数的值.具体用法如下:
lr_output_message("The parameter1's value is %s",lr_eval_string("{parameter1}")),其中参数parameter1在之前已经定义了.你的代码中将int型数据拷 贝到char型数组里是不行的,参考一下2#楼的代码.
1 lr_eval_string(), eval应该是evaluate的缩写。
功能 如果只有一个参数,则返回当前参数的值。它的参数必须是{newParam} 的形式,也就是被大括号包起来
应用:对每个迭代过程中需要需要使用参数化的内容的时候。lr_output_message("value : %s", lr_eval_string("The row count is: {row_cnt}")); 

例如:有一个int的参数化值{paraInt},如果直接把它作为一个int是错的。必须atoi(lr_eval_string({ParaInt}))
所以不能直接把一个int变量作为参数。
2.如何实现“我想把iTemp转换成字符串存到变量chArr里”
int iTemp=3;
char chArr[1024] = {0};
// if not unicode
itoa( itemp, charr, 10  );
应该可以








====================================分割线================================



最新内容请见作者的GitHub页:http://qaseven.github.io/

上一篇:RSA算法加解密示例


下一篇:C++11 正则表达式——基础知识介绍