《LoadRunner 12七天速成宝典》—第2章2.5节参数和变量

简介: 编程实现有两条路径:一个是走纯变量,另一个是走变量转参数。

本节书摘来自异步社区《LoadRunner 12七天速成宝典》一书中的第2章,第2.5节参数和变量,作者陈霁,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.5 参数和变量
云云:接着来说一下关于编程实现的方式,编程实现有两条路径:一个是走纯变量,另一个是走变量转参数。

恋恋:变量和参数有什么区别来着?

云云:前面不是说过么,参数是特殊的变量,参数是LR(LoadRunner的缩写)级别的,变量是C级别的。变量是属于语言体系的,所以它需要符合C语言或者当前脚本语言体系的基本语法规范,比如:

Action()
{
  int c;
  char x[100];
  char *y;
  c=10;
  strcpy(x,"abc");
  y="aya i love you";
  lr_output_message("%d",c);
  lr_output_message(x);
  lr_output_message(y);
  return 0;
}

这里我用了3种变量,整型、字符串数组、指针型字符串,并且对其进行了赋值以及输出。

恋恋:C语言我懂,当年大学我C语言学的可好了,输出是system.out.print,对吧。

云云:那是Java,C语言是sprintf。

恋恋:快讲参数!

云云:在LR中还有一种东西就是参数,其实前面你一直在用,但是用了所谓的参数化的概念,所谓的参数就是你看到可以用“{}”访问的内容,我们通过一个代码可以将参数的值转化为变量,也可以通过另外一个参数把变量转化为参数。

恋恋:貌似好像,也许,确实讲过。

云云:看懂下面的代码,我们就可以准备出门了。

Action()
{
  char *y;
  y="aya i love you";
  lr_save_string(y,"temp");
  lr_output_message(lr_eval_string("{temp}"));
  return 0;
}

恋恋:让我运行一下看看。

(几分钟过去后)

恋恋:哈哈,以我的聪明才智还能搞不定你这点小问题,这里temp是一个参数,你写了个函数lr_save_string把变量y的值保存到了temp中,然后我记得lr_output_message后面要带字符串,所以你用lr_eval_string把temp参数的值取了出来转成了字符串,所以最后就输出了,对吧。

云云:赞许地点了点头。那么要做大量数据参数化怎么办呢?

恋恋:我来写个代码看看。

Action()
{
  int i;
  for(i=0;i<10;i++)
  {
  lr_save_string(i,"temp");
  lr_output_message(lr_eval_string("{temp}"));
  }
  return 0;
}

奇怪为啥运行不起来呢?

云云:C语言的语法比较严谨,在这里lrsave_string需要把一个字符串保存到一个参数中去,但是_i是一个整型。

恋恋:那该怎么办呢?

云云:其实解决办法很简单,按一下F1键试试!

恋恋:我想偷懒,算了我还是自己试试。

恋恋:我就知道很简单,帮助里面有个lr_save_int函数,这个东西就能把整型放进参数,看代码。

Action()
{
  int i;
  for(i=0;i<10;i++)
  {
  lr_save_int(i,"temp");
  lr_output_message(lr_eval_string("{temp}"));
  }
  return 0;
}

云云:嗯,但是你这个是数字,如果要用字符串呢?

恋恋:是不是还要别的函数啊?

云云:是的,算了这个不考你了,你看看我写的代码就懂了。

Action()
{
  int i;
  char *y;
  char x[100];
  y="aya i love you";
  for(i=0;i<10;i++)
  {
  sprintf(x, "cloud_%s%d", y, i); 
  lr_save_string(x,"temp");
  lr_output_message(lr_eval_string("{temp}"));
  }
  return 0;
}

看懂我们就出门吃饭!

恋恋:sprintf这个函数好厉害,懂了,快出发吧!

**小结
能够区分变量和参数,熟悉参数变量的转换,对参数的跟踪有一定的了解。**

相关文章
|
12月前
|
测试技术
Loadrunner 运行场景-场景中的全局变量与关联结果参数
Loadrunner 运行场景-场景中的全局变量与关联结果参数
87 0
|
测试技术
loadrunner 脚本开发-参数化之将内容保存为参数、参数数组及参数值获取Part 2
loadrunner 脚本开发-参数化之将内容保存为参数、参数数组及参数值获取Part 2
84 0
|
测试技术
loadrunner 脚本开发-参数化之将内容保存为参数、参数数组及参数值获取
loadrunner 脚本开发-参数化之将内容保存为参数、参数数组及参数值获取
87 0
|
测试技术 数据安全/隐私保护
loadrunner 脚本优化-参数化之Parameter List参数同行取值
loadrunner 脚本优化-参数化之Parameter List参数同行取值
137 0
|
测试技术
loadrunner 脚本优化-参数化之Parameter List参数取值
loadrunner 脚本优化-参数化之Parameter List参数取值
102 0
|
测试技术
软件测试面试题:LoadRunner的Controller组件中Pacing参数的作用是什么?
软件测试面试题:LoadRunner的Controller组件中Pacing参数的作用是什么?
73 0
|
测试技术
软件测试面试题:性能测试时,是不是必须进行参数化?为什么要创建参数?LoadRunner中如何创建参数?
软件测试面试题:性能测试时,是不是必须进行参数化?为什么要创建参数?LoadRunner中如何创建参数?
158 0
|
存储 测试技术
Loadrunner中参数和变量的使用
//字符串复制strcpy(str,"Hello ") ; //字符串连接strcat(str,"World !");lr_message("str: %s",str); //变量转为参数,将变量str的值存到参数Param中lr_save_string(str,"Param"); //参数复...
1043 0
|
测试技术 C语言