脚本优化-参数化之Parameter List参数取值

by:授客 QQ1033553122

参数取值选项

Select next row

Update value on

以上两个选项是改变参数化取值的关键选项。

Select
next row包含如下选项:

Sequential:顺序选择

Random:随机取值

Unique:唯一值

Update
value on包含以下选项:

Each
iteration:每次迭代更新。

Each
occurrence:每次取值更新

Once:只更新一次


Sequential+Each iteration
取值

这种取值是按顺序的,即按照Parameter
List中记录的先后顺序从上往下取值,当记录取完后,再重新从记录头开始取值,而Each
iteration是基于Run-timesettings->Run
Logic中的迭代次数完成记录变化操作的。

例子:

Action3()

{

lr_eval_string("{NewParam}");

return
0;

}

迭代次数1:NewParam取值

迭代次数5:NewParam取值

甲|乙|丙|丁|戊

迭代次数6:NewParam取值

甲|乙|丙|丁|戊|甲

注意:Update on value on Each
iteration时,只有开始了新的一次迭代,也就是说回放日志中出现了Starting
iteration才会触发记录变化,否则取值内容均不变化

例如:迭代次数为2

Action3()

{

for (int
i=0;i<2;i++)

{

lr_eval_string("{NewParam}");

}

return 0;

}

NewParam取值

甲甲乙乙


Sequential+Each occrrence
取值

按顺序取值,即按照Parameter
List中记录的先后顺序从上往下取值,当记录取完后,再重新从记录头开始取值,而Each
occrrence只要取了一次参数值,参数值就变化,取下一个参数值

例子:

Action3()

{

lr_eval_string("{NewParam}");

lr_eval_string("{NewParam}");

return 0;

}

如果迭代次数
1:NewParam取值

甲|乙

如果迭代次数
2:NewParam取值

甲|乙|丙|丁


 


Sequential+Once
取值

按顺序取值,即按照Parameter
List中记录的先后顺序从上往下取值,当记录取完后,再重新从记录头开始取值,而Once针对整个脚本来说,只要取了一次参数值,参数值就不再变化了

Action3()

{

lr_eval_string("{NewParam}");

return 0;

}

无管迭代多少次,或者for循环,NewParam取值都是甲


Random+Each iteration
取值

VuGen会从参数列表中随机取出一条记录,其取值的次数受到Update
value on选项的限制。

Random+Each
iteration:每当一次新的Starting
iteration开始,重新从参数列表中取一次随机值。


Random+Each occurrence

每当取一次该参数值,从参数列表中重新取一次随机值


Random+Once

当第一次取到随机内容后,再不更新记录。


Unique
取值

一种更高级的顺序取值,强调取值的唯一性,但是违反了该规则也能继续运行,VuGen提供了When
out of values选项来处理非唯一的情况【当且仅当Update
value on Each iteration,Update
value on Each occurrence, When out of values才可以用】

其中,update
value on和上面的意思一样,不再赘述

When
out of values

1)Abort
Vuser

当参加参数取值超出参数表记录的条数时,忽略用户脚本,停止运行脚本

2)Continue
in a cyclic manner

当参数取值超出参数表记录时,使用循环扫描的方式

3)Continue
with last value

当参数取值超出参数表记录时,使用参数表中的最后一个值

列子:


Action3()

{

lr_eval_string("{NewParam}");

return
0;

}

迭代6次


小技巧
:有时候,需要手工将参数的值下移一位(不管是不是Update
value on Each iteration),怎么办?使用lr_advance_param()函数来解决这个问题,

例子:前面脚本的参数{NewParam},Sequential+Each
iteration,使用脚本:

lr_eval_string(“{Newparam}”);

lr_eval_string(“{Newparam}”);

运行结果
甲|甲

lr_eval_string(“{Newparam}”);

lr_advance_param(“Newparam”);

lr_eval_string(“{Newparam}”);

运行结果
甲|乙

阅读下篇:

脚本优化-参数化之Parameter List参数同行取值

loadrunner 脚本优化-参数化之Parameter List参数取值的更多相关文章

  1. loadrunner 脚本优化-参数化之Parameter List参数同行取值

    脚本优化-参数化之Parameter List参数同行取值 by:授客 QQ:1033553122 select next row 记录选择方式 Same line as,这个选项只有当参数多余一个时 ...

  2. loadrunner 脚本优化-参数化方法

    脚本优化-参数化方法 by:授客 QQ:1033553122 方法一 1.确定需要参数化的内容 2.选中需要参数化的内容 3.右键选中的内容->Replace with a Parameter- ...

  3. Loadrunner脚本优化-参数化之关联MySQL数据库获取数据

    脚本优化-参数化之关联MySQL数据库获取数据 by:授客 QQ:1033553122 测试环境: Loadrunner 11 Win7 64位 实操: 1.   安装MySQL ODBC驱动程序 O ...

  4. loadrunner 脚本优化-参数化之场景中的参数化取值

    脚本优化-场景中的参数化取值 by:授客 QQ:1033553122   Action() { lr_eval_string("{NewParam}"); lr_eval_stri ...

  5. loadrunner脚本优化-ParameterList参数类型介绍

    脚本优化-Parameter List参数类型介绍 by:授客 QQ:1033553122 篇幅问题,这里采用网盘下载的方式和大家分享: 百度网盘分享: 链接: http://pan.baidu.co ...

  6. loadrunner 脚本开发-参数化之将内容保存为参数、参数数组及参数值获取

    转自:http://blog.sina.com.cn/s/blog_13cc013b50102v49c.html(查看原文) 在VuGen中默认使用{}的字符串称为参数 注意:参数必须在双引号中才能用 ...

  7. loadrunner 脚本优化-关联设置

    脚本优化-关联设置 by:授客 QQ:1033553122 关联的原理 关联也属于一钟特殊的参数化.一般参数化的参数来源于一个文件.一个定义的table.通过sql写的一个结果集等,但关联所获得的参数 ...

  8. loadrunner脚本中参数化和返回值输出log到外部文件

    loadrunner脚本中参数化和返回值输出log到外部文件 很多时候,我们在做性能测试之前,需要造数据,但是使用的这些参数化数据和生成的返回数据在后面的测试都会用的,所以我们需要在造数据过程中,将参 ...

  9. loadrunner脚本中写入脚本输出log到外部文件,分析参数取值方式

    loadrunner脚本中写入脚本输出log到外部文件,分析参数取值方式 分类: 心得 loadrunner 我的测试 2012-04-01 12:52 2340人阅读 评论(0) 收藏 举报 脚本l ...

随机推荐

  1. AI - 概念(Concepts)

    01 - AI.ML与DL的关系 从涵盖范围上来讲,人工智能(AI)大于机器学习(ML)大于深度学习(DL) 人工智能(AI):能够感知.推理.行动和适应的程序: 机器学习(ML):能够随着数据量的增 ...

  2. Emmet/Zen Coding 快速入门说明

    快速参考 以下是支持的特性: ele creates an HTML element tag 展开一个HTML元素标签 # creates an id attribute 作用于元素标签,展开一个id ...

  3. java开发之多线程基础篇

    首先我们先来了解下线程的生命周期上一张图: Java线程具有五中基本状态 新建状态(New):当线程对象对创建后,即进入了新建状态,如:Thread t = new MyThread(); 就绪状态( ...

  4. [原创]K8Cscan插件之端口扫描C#源码

    [原创]K8 Cscan 大型内网渗透自定义扫描器 https://www.cnblogs.com/k8gege/p/10519321.html Cscan简介:何为自定义扫描器?其实也是插件化,但C ...

  5. .NET Core 获取 HttpContext.Current 以及 AsyncLocal 与 ThreadLocal

    在 DotNetCore 当中不再像 MVC5 那样可以通过 HttpContext.Current 来获取到当前请求的上下文. 不过微软提供了一个 IHttpContextAccessor 来让我们 ...

  6. java相关知识点

    Java基础.语法 1. 简述Java跨平台原理 2. Java的安全性 3. Java三大版本 4. 什么是JVM?什么是JDK? 什么是JRE? 5. Java三种注释类型 6. 8种基本数据类型 ...

  7. 新装mysql数据库登陆不上去(账号密码正确)

    Open & Edit /etc/my.cnf Add skip-grant-tables under [mysqld] Restart Mysql You should be able to ...

  8. select实现高并发服务器

    前言:周末学了两天网络编程,把之前的不懂一些问题基本掌握了,例如TCP状态转换图.close和shutdown函数的区别.select函数等,今天分享给大家. 一.网络编程基础知识 在写代码之前,需要 ...

  9. ⑦JSP2.0的福利(标签文件)

    前言 本篇接着上一篇博客:[传送门] 这次讲的是JSP2.0的特性之一,我们可以编写标签文件,指没有标签处理器和标签类库描述符的定制动作指令,不编译,无标签类描述符. 本文结构: ①标签文件简介 ②第 ...

  10. windows系统下发布python模块到pypi

    1. 在pypi.python.org网站注册一个用户,记住用户名和密码. 2. 编写需要上传模块的源代码,文件名为:skyersfirstpythonmodule.py 3. 新建文件夹,名称为sk ...