lr_eval_string()

函数的主要作用:返回脚本中的一个参数当前的值(从参数中取得对应的值,并且转换为一个字符串)。

格式:lr_eval_string("{参数名}");

例如:lr_eval_string("{parm}");

返回值类型:char

由于返回值类型是char类型,所以可以直接使用lr_output_message(lr_eval_string("{parm}"))函数输出到日志中。

如:lr_output_message(lr_eval_string("{parm}"));

一般多用在调试脚本时输出参数的值.具体用法如下:
lr_output_message("The parameter1's value is %s",lr_eval_string("{parameter1}")),其中参数parameter1在之前已经定义了的参数

lr_log_message(lr_eval_string("{parameter1}"))

改变参数取值的关键在于Select next row和Update value on这两个选项

select next row包含以下选项:

Sequential 顺序取值

Random 随机取值

Unique 唯一取值

Same line as 取某个参数的同行

Update value on 包含以下选项:

Each iteration 每次迭代更新

Each occurrence 每次取值更新

Once 只更新一次

练习

编写一个脚本,并以此脚本为练习的实例:

Action()
{
lr_log_message(lr_eval_string("{parameters}"));
return 0;
}

parameters的参数值见图

情况一:Sequential 顺序取值+Each iteration 每次迭代更新

迭代次数为 1

结果为:甲

迭代次数为 2

结果为:甲 乙

迭代次数为 3

结果为:甲 乙 丙

迭代次数为6

结果为:甲 乙 丙 丁 戊 甲

扩展:

迭代次数为 1

Action()
{
int i;
for(i=0;i<3;i++)
{
lr_output_message(lr_eval_string("{parameters}"));
}
lr_output_message(lr_eval_string("{parameters}"));

return 0;
}

这段执行出的结果为:甲甲甲甲

以上脚本将迭代次数修改为2:

实行结果:甲甲甲甲 乙乙乙乙

得出的结论:当使用Update value on + Each iteration时,只有出现了Staring iteration 才会触发记录变化,否则取值内容均不会发生变化。

情况二:Sequential 顺序取值+Each occurrence 每次取值更新

迭代次数为 1

Action()
{
lr_log_message(lr_eval_string("{parameters}"));
return 0;
}

结果为:甲

迭代次数为 2

结果为:甲 乙

迭代次数为 3

结果为:甲 乙 丙

迭代次数为6

结果为:甲 乙 丙 丁 戊

扩展:

迭代次数为 1

Action()
{
int i;
for(i=0;i<3;i++)
{
lr_output_message(lr_eval_string("{parameters}"));
}
lr_output_message(lr_eval_string("{parameters}"));

return 0;
}

结果为:甲 乙 丙 丁

迭代次数为 2

结果为:甲 乙 丙 丁   戊 甲 乙 丙

得出的结论:Each occurrence 每次取值更新的效果就是,每次取值都会发生变化

情况三:Sequential 顺序取值+Once 只更新一次

迭代次数:2

Action()
{
lr_log_message(lr_eval_string("{parameters}"));
return 0;
}

结果:甲 甲

迭代次数:2

Action()
{
int i;
for(i=0;i<3;i++)
{
lr_output_message(lr_eval_string("{parameters}"));
}
lr_output_message(lr_eval_string("{parameters}"));

return 0;
}

结果:甲 甲 甲 甲 甲 甲 甲 甲

得出结论:无论怎么设置迭代或者for循环,取到的{parameters}的值都是“甲”,因为第一次取到的值是“甲”,以后在也不会更新,所以值不变。

顺序取值下的各种情况

顺序取值下的各种情况:

Random取值

顺序取值的各种方法搞明白后,Random取值(随机取值)就比较简单了,随机取值可以实现在参数列表中随机选择一条记录,将parameters这个参数的Select next row取值方法从sequential改为Random

Select next row下的Random选项是,参数化的取值情况如下表:

选择Select next row 下的Unique选项是,参数化取值情况如下表:

Action()
{
lr_log_message(lr_eval_string("{parameters}"));
return 0;
}

迭代一次:

1、unique+iteration:

迭代一次结果:甲

迭代7次结果:甲 乙 丙 丁 戊 + 两次"When Out Of Values" policy.

 2、unique+Each occurrence:

 3、unique+once

Action()
{
lr_log_message(lr_eval_string("{parameters}"));
return 0;
}

迭代一次:

执行结果:甲

迭代7次:

执行结果:甲甲甲甲甲甲甲

1.参数的赋值和取值

lr_save_string("hello world","param");
lr_eval_string("{param}");
2.变量到参数
int x;
x=10;
lr_save_string(x,"param");
lr_eval_string("{param}");
3.变量读参数
char x[100];
x="{param}";
lr_save_string("hello world","param");
lr_eval_string(x);
---------------------

lr函数之lr_eval_string()函数的使用学习的更多相关文章

  1. LoadRunner lr_eval_string() 函数使用及LR中变量、参数的简单使用

    lr_eval_string() 函数的主要作用:返回脚本中的一个参数当前的值, 返回值类型:char 一般多用在调试脚本时输出参数的值.具体用法如下:lr_output_message(" ...

  2. LR采用的Sigmoid函数与最大熵(ME) 的关系

    LR采用的Sigmoid函数与最大熵(ME) 的关系 从ME到LR 先直接给出最大熵模型的一般形式,后面再给出具体的推导过程. \[\begin{align*} P_w(y|x) &= \df ...

  3. JavaScript 引入方式 语言规范 语言基础 数据类型 常用方法 数组 if_else 比较运算符 for while 函数 函数的全局变量和局部变量 {Javascript学习}

    Javascript学习 JavaScript概述 ECMAScript和JavaScript的关系 1996年11月,JavaScript的创造者--Netscape公司,决定将JavaScript ...

  4. Python小白学习之路(十)—【函数】【函数返回值】【函数参数】

    写在前面: 昨天早睡之后,感觉今天已经恢复了百分之八十的样子 又是活力满满的小伙郭 今日份鸡汤: 我始终相信,在这个世界上,一定有另一个自己,在做着我不敢做的事,在过着我想过的生活.-------宫崎 ...

  5. Python学习笔记014——迭代工具函数 内置函数enumerate()

    1 描述 enumerate() 函数用于将一个可遍历的数据对象(如列表.元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中. 2 语法 enumerate(sequ ...

  6. Python学习(五)函数 —— 内置函数 lambda filter map reduce

    Python 内置函数 lambda.filter.map.reduce Python 内置了一些比较特殊且实用的函数,使用这些能使你的代码简洁而易读. 下面对 Python 的 lambda.fil ...

  7. 大一C语言学习笔记(5)---函数篇-定义函数需要了解注意的地方;定义函数的易错点;详细说明函数的每个组合部分的功能及注意事项

    博主学习C语言是通过B站上的<郝斌C语言自学教程>,对于C语言初学者来说,我认为郝斌真的是在全网C语言学习课程中讲的最全面,到位的一个,这个不是真不是博主我吹他哈,大家可以去B站去看看,C ...

  8. python学习道路(day4note)(函数,形参实参位置参数匿名参数,匿名函数,高阶函数,镶嵌函数)

    1.函数 2种编程方法 关键词面向对象:华山派 --->> 类----->class面向过程:少林派 -->> 过程--->def 函数式编程:逍遥派 --> ...

  9. javascript 函数声明和函数表达式的区别(学习笔记)

    javascript中声明函数的方法有两种:函数声明式和函数表达式. 区别如下: 1).以函数声明的方法定义的函数,函数名是必须的,而函数表达式的函数名是可选的. 2).以函数声明的方法定义的函数,函 ...

  10. SQL函数学习(十九):CAST()函数和CONVERT()函数

    19.CAST()函数和CONVERT()函数 CAST()函数可以将某种数据类型的表达式转化为另一种数据类型 CONVERT()函数 也 可以将指定的数据类型转换为另一种数据类型 19.1 CAST ...

随机推荐

  1. Solutions to an Equation LightOJ - 1306

    Solutions to an Equation LightOJ - 1306 一个基础的扩展欧几里得算法的应用. 解方程ax+by=c时,基本就是先记录下a和b的符号fla和flb(a为正则fla为 ...

  2. double发生精度丢失的解决办法

    发生精度丢失的原因: 个人理解:机器在运行时,使用2进制形式的计数方式,而我们日常生活中的计算是10进制的,对于整数的加减乘除,double还能适用,但是对于有小数的,则容易发生精度丢失,即用2进制表 ...

  3. Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bhive.session.id%7D_resources

    原因:环境变量设置问题 <property>    <name>Hive.exec.local.scratchdir</name>    <value> ...

  4. enum,sizeof,typedef

    枚举类型的使用方法 enum是C语言中的一种自定义类型 enum值可以根据需要自定义整形值 第一个定义的enum值默认为0 默认情况下的enum值是在前一个定义值得基础上加1 enum类型的变量只能去 ...

  5. zabbix server端配置

    # wget http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/2.0.6/zabbix-2.0.6.tar. ...

  6. phpstorm中快速添加函数注释

    Preferences 或 command+,快捷键 Live Templates - PHP 下方 - 新建模板 ,Abbreviation 命名随便写,点击Edit Variables配置变量信息 ...

  7. JDBC性能优化篇

    系统性能. 少用Metadata方法     与其它的JDBC方法相比, 由ResultSet对象生成的metadata对象的相对来说是很慢的. 应用程序应该缓存从ResultSet返回的metada ...

  8. codevs 1519 过路费

    时间限制: 1 s  空间限制: 256000 KB  题目等级 : 大师 Master 题目描述 Description 在某个遥远的国家里,有 n个城市.编号为 1,2,3,…,n.这个国家的政府 ...

  9. H3C S5024P交换机 vlan实验

    H3C S5024P交换机第二次vlan实验 实验1 与交换机端口G0/1和G0/2相连的PC1与PC2属于VLAN 1,与G0/3和G0/4相连的PC3和PC4属于VLAN 2,PC1.PC2.PC ...

  10. vs code 插件list

    vs code 插件list