LoadRunner_参数化
- 格式:pdf
- 大小:604.48 KB
- 文档页数:15
Loadrunder之脚本篇——参数化⽅法导语 参数化旨在模拟多数据来进⾏测试,所以再选择参数化你明确你参数化的内容!⽅法⼀1、确定需要参数化的内容2、选中需要参数化的内容3、右键选中的内容->Replace with a Parameter->填写参数名,类型->保存4、Vuser->Parameter List中设置参数值和参数更新⽅式5、通过回放后的⽇志验证参数取值举例:编写⼀简单脚本,如下Action(){lr_eval_string(“text”);return 0;}右键选中text,然后单击⿏标右键,弹出菜单中选择“Replace with a Parameter”,将选中部分替换成参数结果如图说明:1.ParamName:参数名;2.{}:指定参数的边界,可在Tools>General Options>Parameterization中设置,如下图3.参数值被保存在菜单Vuser->Parameter List中,按Ctrl+L组合键或者单击⼯具栏上的Parameter List按钮单击Add Row可以添加⾏记录(可取的参数值)查看参数取值结果第⼀步:打开Run-Time Settins中的Log选项,选中Enable logging并且使⽤Always send messages,在Log的等级中设置使⽤Extended log 并且选中Parameter substitution,保存,如图,第⼆步:运⾏脚本,查看Output Window窗⼝中的Replay log窗⼝中出现的每次参数取值结果⽅法⼆1、View->Parameter List(Ctrl+L)中添加参数并设置值2、代码中选中要参数化的内容3、右键选中的内容->Use Existing Parameter将选中内容替换为Parameter List中所添加参数的参数举例:第⼀步:在Parameter List窗⼝中,单击左下⾓的New按钮新建参数第⼆步:设置好参数的值后,选中要参数化的内容,在右键菜单中选择Use Existing Parameter中的ParamName参数进⾏参数化,或者点击Select from parameter list,打开Parameter list,从中⾯板左侧窗格选择需要的参数。
loadrunner 参数化路径LoadRunner 参数化是一种常用的性能测试技术,可以有效地模拟真实世界的负载情况,实现测试数据的灵活性和可重复性。
在LoadRunner中,参数化路径是指在测试过程中将路径作为参数进行动态调整,以模拟不同用户访问不同路径的情况。
为了更好地理解LoadRunner参数化路径的使用,我们首先需要了解LoadRunner的基本原理。
LoadRunner是一款用于模拟和分析应用程序性能的测试工具,通过模拟用户的行为和生成负载来评估系统的性能。
在性能测试中,经常需要模拟大量用户同时访问不同路径的情况,以验证系统的承载能力和响应时间。
在LoadRunner中,参数化路径可以通过多种方式实现,常用的有使用数据文件、使用函数和使用正则表达式等。
下面将分别介绍这几种参数化路径的方法。
使用数据文件进行参数化路径是最常见的方法之一。
通过将路径保存在一个数据文件中,LoadRunner可以在每次执行测试时,自动从数据文件中读取不同的路径,并进行相应的访问。
这种方法适用于需要模拟大量用户访问不同路径的情况,可以有效地减少测试脚本的维护工作。
使用函数进行参数化路径是另一种常见的方法。
LoadRunner提供了一系列内置函数,可以在测试脚本中使用这些函数生成不同的路径。
例如,可以使用lr_paramarr_random函数从一个路径数组中随机选择一个路径进行访问,或者使用lr_paramarr_idx函数按照一定的顺序选择路径进行访问。
这种方法适用于需要按照一定的规则生成路径的情况,可以灵活地控制路径的生成方式。
使用正则表达式进行参数化路径是一种更为灵活的方法。
LoadRunner提供了lr_eval_string函数,可以在测试脚本中使用正则表达式从一个字符串中提取出符合某种规则的路径。
例如,可以使用正则表达式从一个HTML页面中提取出所有的链接,并将这些链接作为路径进行访问。
这种方法适用于需要从复杂的页面中提取路径的情况,可以实现更加精细的参数化路径。
一、参数化的方法选中需要参数化的数据方法一,右键---【Replace with a new parameter】方法二,菜单【insert】----【new Parameter…】Parameter Properties (参数属性对话框)----我们的参数化设置就通过这个对话框完成.二、参数化的方式:其实参数化得方式有很多种,这里简述几种比较常见人方式。
其实方式略有不同,但其结果都是将数据添加进来。
1、编辑数据点击Create Table 会出现表格,在表格,再次点击Edit with Notepad ,然后会打开一个记事本,我们可以对记事本进行添加数据2、添加dat数据文件点击File输入框后面的“Browse..”按钮,找到本地的txt数据文件,进行添加就可以了。
需要注意的是,文件里面的数据不要乱写,每条数据一行,不然会读取有误。
3、数据库添加数据在很多情况下,我添加的数据不是十条二十条,也不是一百两百,如果还通过上面的两种方式添加,我想会是一件非常纠结的事情。
所以我们可以通过数据库将数据导入。
你是否疑虑数据库的数据怎么弄,数据库的数据生成非常简单,可以写一段简单的代码生成,也可以通过数据库数据生成工具来完成点击Date Wizard 打开连接数据库向导。
通常不用这种方式,而是直接在数据库中把数据查询出来,然后放到参数化列表当中。
4、其他类型设置如果我们要参数化的不是一个文件,比如是特定的日期时间,可以从Parameter type列表中进行选择这里可以设置日期时间格式,循环迭代方式,不过除了file类型外,其他用的不多。
其他类型用法我也不是十分了解。
参数化之间的关联前面我们已经对用户名进行了参数化,或对密码进行了参数化,这样是不是脚本就能正常跑了,不好说。
因为用户名和密码不是一一对应关系,每次运行脚本时取的用户名和密码没有对应上的话肯定就会出问题。
假设,我们已经对用户名已经进行了参数化,参数名为【username】,下面设置密码参数化与用户名关联。
LoadRunner 参数化的功能详解参数化的定义:使用指定的数据源中的值来替换脚本录制生成的语句中的参数。
对Vuser脚本进行参数化的好处:1、减小脚本的大小2、提供了使用不同的脚本的值执行脚本的能力参数化涉及两个任务:1、用参数替换Vuser脚本的常量值2、为参数设置属性和数据源“Select next ro w”定义的是如何选择下一行数据。
该处有三个选项"Sequential","Random","Unique",Sequential:顺序地向Vuser分配数据。
Random:当测试开始运行时,“随机”方法为每个Vuser分配一个数据表中的随机值。
Unique:为每一个Vuser的参数分配一个唯一的顺序值。
在这种情况下必须确保表中的数据对所有的Vuser和它们的迭代来说是充足的。
如果拥有20个Vuser并且要进行5次迭代,则测试者的表格中必须至少包含100个数值。
“Update value on”定义的是什么时候更新数据值,备选项有每次迭代,每次出现和一次。
表LoadR unner参数更新方法和数据分配如果LoadRunner的函数中某个参数不能直接使用LoadRunner参数,那么可以通过lr_eval_string进行转换取到参数的值。
参数表中sel ect next row和upda te value on的设置LR的参数的取值,和select next row和update value on的设置都有密不可分的关系。
下表给出了select next row和update value on不同的设置,对于LR的参数取值的结果将不同,给出了详细的描述。
Loadrunner中参数的设置转载自51CMM做负载或者压力测试时,很多人选择使用了Loadrunner测试工具。
该工具的基本流程是先将用户的实际操作录制成脚本,然后产生数千个虚拟用户运行脚本(虚拟用户可以分布在局域网中不同的PC机上),最后生成相关的报告以及分析图。
loadrunner 参数化取值方式(原创版)目录1.概述2.LoadRunner 的基本概念3.LoadRunner 参数化取值的方式4.结论正文1.概述LoadRunner 是一种用于测试应用程序性能的负载测试工具。
它可以模拟大量用户同时访问应用程序,以评估其性能和稳定性。
在 LoadRunner 中,参数化是测试脚本中的一个重要部分,它可以帮助测试人员更轻松地管理和调整测试数据。
2.LoadRunner 的基本概念在 LoadRunner 中,参数化是指将测试脚本中的某些值替换为实际运行时获取的值。
这些值可以是数据库中的记录、文件中的数据或其他来源的值。
通过参数化,测试人员可以轻松地为测试脚本设置不同的输入数据,以模拟不同的用户操作和场景。
3.LoadRunner 参数化取值的方式LoadRunner 提供了多种参数化取值的方式,包括:(1) 直接参数化:在测试脚本中直接指定参数的取值。
例如,测试脚本中可以通过`lr_param_string`函数设置一个字符串参数的值。
(2) 从文件中读取参数:测试脚本可以从文件中读取参数的取值。
例如,可以使用`lr_load_string_file`函数从文件中读取字符串参数的值。
(3) 从数据库中获取参数:测试脚本可以从数据库中获取参数的取值。
例如,可以使用`lr_get_result_set`函数从数据库中获取记录集,并将其作为参数传递给测试脚本。
(4) 使用随机数生成器:测试脚本可以使用 LoadRunner 内置的随机数生成器生成随机参数值。
例如,可以使用`lr_random_number`函数生成一个随机数。
(5) 使用 Excel 文件:测试脚本可以从 Excel 文件中读取参数的取值。
例如,可以使用`lr_load_excel_file`函数从 Excel 文件中读取数据。
4.结论LoadRunner 提供了多种参数化取值的方式,测试人员可以根据实际需求选择合适的方式为测试脚本设置参数值。
如何对Loadrunner脚本进行参数化在录制程序运行的过程中,脚本生成器自动生成由函数组成的用户脚本。
函数中参数的值就是在录制过程中输入的实际值。
参数化是编辑脚本最重要的一部分之一。
对用户脚本进行参数化有两大优点:a.可以减少脚本的大小和脚本数量,借助参数化我们可以减少脚本的数量,如果不进行参数化我们为了达到目标可能要拷贝并修改很多个脚本。
b.可以使用不同的数值来测试你的脚本,使业务更接近真实的客户业务,每个虚拟用户使用不同参数值来模拟这样才接近客户的实际情况。
如何进行参数化:参数化包含以下两项任务:1.参数的创建,即在脚本中用参数取代常量值。
2.定义参数的属性以及设置其数据源。
值得注意的是,参数化仅可以用于一个函数中的参量。
不能用参数表示非函数参数的字符串。
另外,不是所有的函数都可以参数化的。
一、参数的创建创建参数可以指定名称和类型来创建。
不存在对脚本中参数个数的限制。
在Web程序的用户脚本中,你可以使用如下过程在基于文本的脚本视图中创建参数。
或者,也可以在基于图标的树形视图中创建参数。
通过以下步骤在基于文本的脚本视图中创建一个参数:1、将光标定位在要参数化的字符上,点击右键。
打开弹出菜单。
2、在弹出菜单中,选择"Replace with a Parameter"。
选择或者创建参数的对话框弹出。
3、在"Parameter name"中输入参数的名称,或者选择一个在参数列表中已经存在的参数。
4、在"Parameter type"下拉列表中选择参数类型。
5、点击"OK",关闭该对话框。
脚本生成器便会用参数中的值来取代脚本中被参数化的字符,参数用一对"<>"括住。
注意:在参数化CORBA或者General-Java 用户脚本的时候,必须参数化整个字符串,而不是其中的部分。
另外注意:除了Web或者WAP,缺省的参数括号对于任何脚本都是"<>"。
9.loadrunner性能测试之参数化⼀、参数化概念1 A.位置:要参数化的值右键替换为参数2 或者快捷键栏的P图标(Ctrl+L)3 参数化后右键可以还原被参数化的值4 B.概念:对脚本中某些常量,使⽤参数来代替,减少脚本数量,更接近真实业务场景⼆、参数化之File参数化策略1 A.取值顺序2 Sequential顺序-----------------(A1)3 Random随机---------------------(A2)4 Unique唯⼀,需考虑值⽤光时策略-(A3)5 B.何时更新6 Each iteration每次迭代---------(B1)7 Each occurrence每次出现--------(B2)8 Once只取⼀次-------------------(B3)9 C.取值超出后(选择Unique后)10 Abort Vuser放弃11 Continue in a cyclic manner继续循环取12 Continue with last value⽤最后的值继续13 D.参数化策略组合情况14 -- A1B1:顺序取值,迭代才更新值,与迭代有关,不迭代该始终⽤顺去取到的值在该脚本⼀直使⽤15 A1B2:顺序取值,脚本每次出现参数,就会顺序得到新值,与迭代⽆关16 A1B3:顺序取第⼀个值后不再发⽣变化,只取⼀次,迭代也不再更新17 -- A2B1:随机取值,迭代才更新值,与迭代有关,不迭代该始终⽤顺去取到的值在该脚本⼀直使⽤18 A2B2:随机取值,脚本每次出现参数,就会随机得到新值,与迭代⽆关(登录,购买)19 A2B3:随机取第⼀个值后不再发⽣变化,只取⼀次,迭代也不再更新20 -- A3B1:顺序取值,迭代才更新值,可⾃动或⼿动分配块⼤⼩,值取尽后要看C中值超出策略21 A3B2:顺序取值,脚本每次出现参数,且⼿动设置每个vuser分配的块⼤⼩,同样考虑值超出策略(注册)22 A3B3:顺序取第⼀个值后不再发⽣变化三、参数化之数据库连接安装MySQL ODBC驱动,选择File⽅式的参数化,并且如下图进⾏配置,配置完成数据会⾃动添加到File中四、其他参数化⽅式4.1、Date/time(⽇期/时间)4.2、Group Name(组名)参数类型使⽤Vuser组名替换参数,要执⾏Vuser组的名称,否则组名始终是⽆4.3、Iteration Number(迭代编号)使⽤当前的迭代编号替换参数,格式可⾃⼰设置4.4、Load Generator Name(负载发⽣器名)使⽤Vuser脚本名替换参数4.5、Random Number(随机数)随机⽣成的整数替换参数,可通过设置最⼩值和最⼤值4.6、Unique Number(唯⼀数)启动:指的是开始的数量每个Vuser块⼤⼩:开始是1000然后每个⽤户最多+100⽤户1取值1000-1099,⽤户2取值1100-1199以此类推4.7、Vuser ID(⽤户ID)使⽤虚拟⽤户ID来替换参数值。
实训LoadRunner测试脚本的参数化1.1实训目标能够使用参数化数据解决系统压力问题能够使用数据池中数据对参数变量实施参数化能够使用数据库中数据对参数变量实施参数化具备使用不同数据对系统施加预期压力的能力1.2问题引出:观察以下示例代码web_url("MercuryWebTours","URL=http://localhost/MercuryWebTours/","Resource=0","RecContentType=text/html","Referer=","Snapshot=t2.inf","Mode=HTML",LAST);lr_think_time(5);web_submit_form("login.pl","Snapshot=t3.inf",ITEMDATA,"Name=username", "Value=jojo", ENDITEM,"Name=password", "Value=bean", ENDITEM,"Name=login.x", "Value=53", ENDITEM,"Name=login.y", "Value=18", ENDITEM,LAST);代码分析:在这段代码中,用灰色背景黑色字体标识的是用户输入的用户名和口令,如果直接使用这段脚本对应用进行测试,则所有VU都会使用同一个用户名和口令登录系统。
如果要模拟更加真实的应用场景(例如,不同权限的用户执行同一个操作),就有必要将用户名和口令用变量代替,为变量的取值准备一个“数据池”并设定变量的取值规则,这样每个VU在执行的时候就能根据要求取不同的值。
LoadRunner参数化设置:数据分配与取值⽅式参数化设置中有九种取值⽅式:(以⽤户名参数user为例,其数据参数列表为:jojo、201401、201402、201403、201405、201406、201407、201408、201409,迭代次数设置为10次) 1、Sequential+Each Iteration 脚本会执⾏10次,每次迭代会按数据列表顺序取值,每⼀次迭代中出现的参数user的值是当前第⼀次参数替换的值。
第1次迭代均为jojo,以此类推。
2、Sequential+Each Occurrence 脚本执⾏10次,每次迭代中出现参数user,顺序取值⼀次,第1次迭代中出现3次user,则user取值为jojo、201401、201402,等到取值到201409,下次会从第⼀个数顺序取值。
3、Sequential+Once 脚本执⾏10次,user只取值⼀次,每次出现的user替换参数值都是jojo。
4、Random+Each Iteration 脚本执⾏10次,数据表中的数据随机取,⽐如第⼀次迭代取值201405,则这次迭代中出现参数user地⽅则⽤201405替代。
5、Random+Each Occurrence 脚本执⾏10次,数据表中的数据随机取,迭代过程中只要出现参数user的地⽅就随机取值⼀次。
第1次迭代出现3次user,则随机数为201407、jojo、201403。
6、Random+Once 脚本执⾏10,数据表中数据随机取值,参数user只取值⼀次,10次迭代过程中出现参数user的地⽅都是⽤随机取值(⽐如201406)替代。
7、Unique+Each Iteration 每个⽤户对应⼀次数据,当迭代次数超过⽤户数据量,根据设置情况处理情况,如下图所⽰: 每次迭代出现的参数user⽤当前取值替代。
8、Unique+Each Occurrence 当前有9条数据,没出现⼀次参数user,只能⽤⼀个数值替代,9条数据取完之后根据设置超出值处理。
LR参数取值的几种配置介绍
“Select next row ”有以下几种选择:
⏹ Sequential:按照顺序一行行的读取。
每一个虚拟用户都会按照相同的顺序读取
⏹ Random:在每次循环里随机的读取一个,但是在循环中一直保持不变
⏹ Unique :唯一的数。
注:使用该类型必须注意数据表有足够多的数。
比如Controller 中设定20 个虚拟用户进行5 次循环,那么编号为1 的虚拟用户取前5个数,编号为2 的虚拟用户取6-10 的数,依次类推,这样数据表中至少要有100个数据,否则Controller 运行过程中会返回一个错误。
⏹ Same Line As 某个参数(比如Name):和前面定义的参数Name 取同行的记录。
通常用在有关联性的数据上面。
我们这里取值Sequential 即可。
Advance row each iteration 选中即可,表示每一次循环都往前走一行。
手工输入数据比较简单,这里就不再单独介绍了。
LR参数取值配置举例:
假设有2个虚拟用户,每个用户执行3次循环,共有10条数据,如下:100001,100002,100003,100004,100005,100006,100007,100008,1000109,100110。
LR在录制程序运行的过程中,VuGen(脚本生成器) 自动生成了包含录制过程中实际用到的数值的脚本,如果你企图在录制的脚本中使用不同的数值执行脚本的活动(如查询、提交等等),那么你必须用参数值取代录制的数值,这个过程叫做参数化。
以下为参数化过程:参数化过程比较简单,参数化时复杂的是对参数属性的设置。
主要是以下两个属性的组合。
select next row 中有三个选项: Sequential(顺序读取)、Random(随机读取)、Unique (唯一)update the value 中也有三个选项: Each Occurrence(每次遇到 )、 Each iteration(每次迭代 )、 Once(一直 )这两个属性可以有九种组合方式,每种方式都不一样。
接下来我们就用一个小实例来验证一下每种取值方式的效果。
录制一个lr自带实例WebTours的定单脚本。
脚本中将出发城市与到达城市均参数化一下。
参数化后还需做个关联(这个就重点说了)保证回放脚本成功。
设置10个用户并发持续加载的场景(参数文件中有10个数据),用默认设置均可。
即每15秒加载两个用户,持续时间为5分钟,每30秒停止5个用户。
然后并发跑脚本。
以下为9种组合的测试结果:(1)sequential Once十个用户每个用户取值均一样,,每个用户的所有迭代中的取值均一样。
第一个用户执行了5次迭代,每次迭代均取得第一个参数。
第二个用户也执行了5次迭代,每次迭代均取的第一个参数。
第三个。
第四个。
等等十个用户均一样。
(2)unique once十个用户每个用户取值都唯一,每个用户的所有迭代中的取值均一样。
第一个用户执行了5次迭代,每次迭代均取第一个参数;第二个用户执行了5次迭代,每次迭代均取第二个参数;第三个。
第四个。
依此类推。
第十个用户执行了5次迭代,每次迭代均取第十个参数。
(3)Random Once十个用户,每个用户为随机取值,每个用户的所有迭代中的取值均一样。
Loadrunner参数化策略测试小组齐国杰使用工具:Loadrunner 8.1试用版引子近日没有具体的项目做,就总去泡论坛,发现有的网友会问一些参数化的问题,回答他们的问题时,突然发现自己也是一知半解,因此写了三个实验脚本,目的是彻底搞清楚参数化的做法以及参数化策略的疑问。
流程参数化要做一些准备,主要是参数化数据的准备,例如TXT 文本、EXCEL表格以及数据库中的表都可以作为参数的数据集载体,而且LR都是支持的。
具体的参数化流程如下:1、录制脚本2、准备参数的数据集(也可以不准备,让LR自己生成固定格式参数)3、把对应的变量参数化4、选择对应的参数化策略具体的操作请查询LR帮助手册例子下面我来介绍几个例子,例子统一使用try_params.txt做参数数据集,txt内容如下:aaa bbba1 b1a2 b2……a30 b30脚本一:Action(){char *a = "{aaa}"; //获得参数赋值给achar *b = "{bbb}";//获得参数赋值给blr_log_message("%s,%s,%s,",lr_eval_string(a),lr_eval_string (b),ctime(&t));//打印结果return 0;}运行时设置:设置action的迭代次数为30(runtime-setting的Run Logic里)回放结果:备注:“…,…”省略符号,如果前后都相同则省略相同部分,如果前后不同则省略不同部分。
脚本二:Action(){int i; //循环种子for (i=0;i<30;i++) //循环30次{char *a = "{aaa}"; //获得参数赋值给achar *b = "{bbb}";//获得参数赋值给blr_log_message("%s,%s\n",lr_eval_string (a),lr_eval_string (b));}//打印结果return 0;}运行时设置:设置action的迭代次数为1(runtime-setting 的Run Logic里)回放结果:备注:“…,…”省略符号,如果前后都相同则省略相同部分,如果前后不同则省略不同部分。
loadrunner怎么设置参数化?loadrunner参数化设置的图
⽂教程
在进⾏使⽤到loadrunner的⼯具进⾏对⽹页进⾏性能的测试,⽽对⽹页的性能测试时,对有⽹页的登录的界⾯,在做压⼒测试情况下就会使⽤到多⽤户进⾏登录,就需要对代码进⾏参数化,那么loadrunner怎么参数化设置呢?下⾯⼩编要为⼤家带来的是loadrunner参数化设置的图⽂教程!感兴趣的朋友⼀起去看看吧!
⽅法:
1、在loadrunner的进⾏编写脚本,或者⼀个⽹页登录界⾯进⾏录制脚本,录制完成之后,在脚本找登录的⽤户名,选中⽤户右键》》replace with a pararmeter。
2、弹出了⼀个为select or create parameter的框,可以对parameter name名称重名,也可不命名。
3、这样在代码脚本中的⽤户名就变为了⼀种颜⾊,变为参数名。
4、需要对参数名进⾏参数化,可以点击菜单中的open parameter list的按钮,点击进⼊。
5、可以看到的是newparam默认的⼀个参数了为xinling,需要在⾏中在添加数据,可点击add row添加⾏,输⼊数据双击value就可进⾏输⼊,输⼊⽹页中其它的⽤户名。
6、参数化数据准备好之后,就进⾏执⾏了,在执⾏前,需要到run-time settings设置的界⾯中,run logic的选项界⾯中,把循环的次数改为2次,因准备数据只有两条了,
7、设置完成之后,可以点击loadrunner的界⾯中菜单运⾏按钮,等待脚本完成之后,可以在执⾏log看到执⾏的结果数据,是成功执⾏成功的。
1.1参数化1.选中用户名,右击– Relace with a Parameter2.弹出下图窗体,输入name,点击P roperties…3.弹出下图窗体,点击Create Table4.弹出确认框,确认后,显示如下图,点击E dit with Notepad…5.弹出记事本,可编辑需参数化内容,添加多个用户名添加之后,效果如图用户名、密码:点击Add Column,弹出Add new column窗体,输入列名,进行步骤5参数值编辑操作添加效果图:1.2Parameter Properties(参数属性)1.2.1S elect next row(获取数据方式)、1.2.2U pdate value on(参数值改变时间)注:对Each Iteration而言,一个VU执行时,每次迭代时更新参数的值,如果在一个迭代过程中某参数出现了多次,参数取相同的值;而对Each Occurrence而言,如果在一个迭代过程中某参数出现了多次,每次都取不同的之1.2.3When out of values(数据量不能支持迭代和Unique要求的数据量时,指示LoadRunner的处理方法)When out of values选项只在Select next row设置为Unique时才有效,当数据池中的数据量不能支持迭代和Unique要求的数据量时,可以通过设置该选项的值指示LoadRunner的处理方法:设置为Abort VUser,则遇到这种情况,VU停止运行;设置为Continue in a cyclic manner,则遇到这种情况,重新从数据池的第一个取值开始循环;设置为Continue with last value,则遇到这种情况,所有不足的取值都用最后一个取值来代替1.2.4S elect column、Select column(列数值/名称;分隔符)1)选择列。
在Select column部分,指定列的数值或名称。
Loadrunner中参数化取值⽅式分析Loadrunner中参数化取值依赖两个维度:1.取值顺序分为“顺序”“随机”“唯⼀”。
select next row:Sequential , Random,unique2.更新值时分为“每次迭代”“每次更新”“仅⼀次”。
update value on:Each iteration ,Each occurence,Once3 当参数不够⽤时的补救策略分成[从头再来][凑合使⽤最后⼀个][放弃部分⽤户]按照基本排列组合会产⽣9种组合,现在⼀⼀进⾏分析测试脚本Action(){int i = 0;for (i=0; i<3; i++) {lr_eval_string("{p1}");lr_eval_string("{p2}");}return0;}p1=a1......a10p2=b1......b10以上测试代码中运⾏⼀次叫做⼀次迭代,每次迭代中有⼀个for循环,循环中参数P1和参数p2会分别出现3次。
取值结果我们从单⽤户和多⽤户取值来分析1.顺序+每次迭代单⽤户运⾏结果多⽤户运⾏结果我们以参数设置的模拟器进⾏查看分析由此可见,顺序+每次迭代只是在迭代的时候更新⽤户值,并且多⽤户每次迭代取值都是⼀样的。
2.顺序+每次出现单⽤户结果如下:p1和p2参数每次出现的值都不⼀样,说明每次出现都会更新值多⽤户的取值情况如下:3.顺序+仅⼀次,单⽤户和多⽤户的情况⼀致,都只取唯⼀值多⽤户的情况取值如下:4.随机+每次迭代5.随机+每次更新6.随机+once注;⽤户⼀与⽤户⼆的取值不⼀定相同,但有概率相同7.唯⼀+每次迭代取值⽅式选择了唯⼀的情况,并发⽤户1与并发⽤户2的取值是数据总池的⼦集,并发⽤户1与并发⽤户2之间没有⼦集并发⽤户1 p1 :a1-------a5 并发⽤户2 p1:a6---------a10p2:b1--------b5 p2:b6---------b108.唯⼀+每次更新解释:当多⽤户运⾏时,每个⽤户分配5个值,当所有值使⽤完,继续使⽤最后那个值9.唯⼀+once。
Load Runner 参数化基础讲解Loadrunner中参数的设置在做负载或者压力测试时,很多人选择使用了Loadrunner测试工具。
该工具的基本流程是先将用户的实际操作录制成脚本,然后产生数千个虚拟用户运行脚本(虚拟用户可以分布在局域网中不同的PC机上),最后生成相关的报告以及分析图。
但是在录制脚本的过程中会遇到很多实际的问题,比如不同的用户有不同的使用数据,这就牵涉到参数的设置问题。
本文就Loadrunner中参数的设置进行说明,希望对大家有所帮助。
在录制程序运行的过程中,VuGen(脚本生成器)自动生成了包含录制过程中实际用到的数值的脚本。
如果你企图在录制的脚本中使用不同的数值执行脚本的活动(如查询、提交等等),那么你必须用参数值取代录制的数值。
这个过程称为参数化脚本。
本文主要包括如下内容:理解参数的局限性、建立参数、定义参数的属性、理解参数的类型、为局部数据类型设置参数的属性、为数据文件设置参数的属性、从已经存在的数据库中引入数据。
除了GUI,以下的内容适合于各种类型的用户脚本。
一、关于参数的定义在你录制程序运行的过程中,脚本生成器自动生成由函数组成的用户脚本。
函数中参数的值就是在录制过程中输入的实际值。
例如,你录制了一个Web应用程序的脚本。
脚本生成器生成了一个声明,该声明搜索名称为“UNIX”的图书的数据库。
当你用多个虚拟用户和迭代回放脚本时,也许你不想重复使用相同的值“UNIX”。
那么,你就可以用参数来取代这个常量。
结果就是你可以用指定的数据源的数值来取代参数值。
数据源可以是一个文件,也可以是内部产生的变量。
用参数表示用户的脚本有两个优点:① 可以使脚本的长度变短。
② 可以使用不同的数值来测试你的脚本。
例如,如果你企图搜索不同名称的图书,你仅仅需要写提交函数一次。
在回放的过程中,你可以使用不同的参数值,而不只搜索一个特定名称的值。
参数化包含以下两项任务:① 在脚本中用参数取代常量值。
② 设置参数的属性以及数据源。
参数化仅可以用于一个函数中的参量。
你不能用参数表示非函数参数的字符串。
另外,不是所有的函数都可以参数化的。
二、参数的创建可以指定名称和类型来创建参数。
不存在对脚本中参数个数的限制。
在Web程序的用户脚本中,你可以使用如下过程在基于文本的脚本视图中创建参数。
或者,也可以在基于图标的树形视图中创建参数。
要创建一个参数:1、将光标定位在要参数化的字符上,点击右键。
打开弹出菜单。
2、在弹出菜单中,选择“Replace with a Parameter”。
选择或者创建参数的对话框弹出。
3、在“Parameter name”中输入参数的名称,或者选择一个在参数列表中已经存在的参数。
4、在“Parameter type”下拉列表中选择参数类型。
5、点击“OK”,关闭该对话框。
脚本生成器便会用参数中的值来取代脚本中被参数化的字符,参数用一对“{}”括住。
注意:在参数化CORBA或者General-Java 用户脚本的时候,必须参数化整个字符串,而不是其中的部分。
另外注意:除了Web或者WAP,缺省的参数括号对于任何脚本都是“{}”。
你可以在“General Options”对话框中的“Parameterization”标签(Tools>General Options)中定义参数括号种类。
6、用同样的参数替换字符的其余情况,选中参数,点击右键,弹出菜单。
从弹出的菜单中,选择“Replace More Occurrences”。
搜索和替换对话框弹出。
“Find What”中显示了你企图替换的值。
“Replace With”中显示了括号中参数的名称。
选择适当的检验框来匹配整个字符或者大小写。
如果要搜索规则的表达式(.,!,?等等),选中“Regular Expression”检验框,然后点击“Replace”或者“Replace All”。
注意:小心使用“Replace All”,尤其替换数字字符串的时候。
脚本生成器将会替换字符出现的所有情况。
7、如果想用以前定义过的参数来替换常量字符串的话,选中该字符串,点击右键,然后选择“Use Existing Parameter”,子菜单“Use Existing Parameters”弹出。
从子菜单“Use Existing Parameters”选择参数,或者用“Select from Parameter List”来打开参数列表对话框。
注意:如果用以前定义过的参数来替换常量字符串的话,那么,使用“Parameter List”非常方便。
同时,还可以查看和修改该参数的属性。
8、对于已经用参数替换过的地方,如果想取回原来的值,那么,就在参数上点击右键,然后选择“Restore Original Value”。
在Web用户脚本的树形视图中创建参数在Web用户脚本的树形视图中创建一个参数的步骤1、将光标定位在企图参数化的地方,点击右键,从弹出的菜单中选择“Properties”。
则相关的属性对话框打开。
2、点击在要参数化的参量的旁边的“ABC”形状的图标。
“Select or Create Parameter”对话框打开。
3、在“Parameter name”中输入参数的名称,或者从列表中选择一个已经存在的参数。
4、在“Parameter type”中输入参数的类型。
5、点击“OK”关闭该对话框。
用户脚本生成器会用参数来替换最初的字符串常量,并用一个表格形状的图标替换“ABC”形状的图标。
6、要恢复参数化以前的值,点击图标,然后从弹出的菜单中选择“Undo Parameter”,则以前的值便会重现。
三、定义参数的属性创建参数完成后,就可以定义其属性了。
参数的属性定义就是定义在脚本执行过程中,参数使用的数据源。
在Web用户脚本中,你既可以在基于文本的脚本视图中定义参数属性,也可以在基于图标的树形视图中定义参数属性。
下面的过程将教你如何在基于本文的脚本视图中定义参数属性。
定义参数属性步骤:1、在参数上点击右键,有菜单弹出。
2、在弹出的菜单中,选择“Parameter Properties”。
参数属性对话框打开,显示和当前参数类型相关的属性。
3、输入参数的属性值。
4、点击“Close”关闭参数属性对话框。
在Web用户脚本的树形视图中定义参数的属性1、将关标定位在参数上,然后点击右键,选择“Properties”。
属性对话框打开。
2、点击要定义属性的参数旁边的表格形状按钮,点击右键,选择“Parameter Properties”。
参数属性对话框打开,和参数类型相关的属性显示出来。
3、输入参数的属性。
4、点击“Close”关闭参数属性对话框。
使用参数列表使用参数列表可以在任意时刻查看所有的参数,创建新的参数、删除参数,或者修改已经存在参数的属性。
要使用参数列表:1、点击参数列表按钮或者用“Vuser>Parameter List”。
参数列表对话框打开。
2、要创建新的参数,点击“New”按钮。
新的参数则被添加在参数树中,该参数有一个临时的名字,你可以给它重新命名,然后回车。
注意:不要将一个参数命名为“unique”,因为这个名称是用户脚本生成器本身的。
设置参数的类型和属性,点击“OK”,关闭参数列表对话框。
注意:用户脚本生成器创建新的参数,但是不会自动用该参数在脚本中替换任意选中的字符串。
3、要删除已有的参数,那么,要先从参数树中选择该参数,点击“Delete”,然后确认你的行为即可。
4、要修改已有参数,那么,要先从参数树中选择该参数,然后编辑参数的类型和属性。
四、理解参数的类型在你定义参数属性的时候,要指定参数值的数据源。
你可以指定下列数据源类型的任何一种:Internal Data 虚拟用户内部产生的数据。
Data Files 存在于文件中的数据。
可能是已存在的文件或者是用脚本生成器新创建的。
User-Defined Functions 调用外部DLL函数生成的数据Internal Data包括以下几种:1. Date/TimeDate/Time用当前的日期/时间替换参数。
要指定一个Date/Time格式,你可以从菜单列表中选择格式,或者指定你自己的格式。
这个格式应该和你脚本中录制的Date/Time格式保持一致。
2. Group NameGroup Name 用虚拟用户组名称替换参数。
在创建scenario的时候,你可以指定虚拟用户组的名称。
当从用户脚本生成器运行脚本的时候,虚拟用户组名称总是None。
3. Load Generator NameLoad Generator Name用脚本负载生成器的名称替换参数。
负载生成器是虚拟用户在运行的计算机。
4. Iteration NumberIteration Number用当前的迭代数目替换参数。
5. Random NumberRandom Number用一个随机数替换参数。
通过指定最大值和最小值来设置随机数的范围。
6. Unique NumberUnique Number用一个唯一的数字来替换参数。
你可以指定一个起始数字和一个块的大小。
7. Vuser IDVuser ID用分配给虚拟用户的ID替换参数,ID是由Loadrunner的控制器在scenario运行时生成的。
如果你从脚本生成器运行脚本的话,虚拟用户的ID总是-1。
五、数据文件数据文件包含着脚本执行过程中虚拟用户访问的数据。
局部和全局文件中都可以存储数据。
可以指定现有的ASCII文件、用脚本生成器创建一个新的文件或者引入一个数据库。
在参数有很多已知值的时候数据文件非常有用。
数据文件中的数据是以表的形式存储的。
一个文件中可以包含很多参数值。
每一列包含一个参数的数据。
列之间用分隔符隔开,比如说,用逗号。
对数据文件设置参数属性如果使用文件作为参数的数据源,必须指定以下内容:1. 文件的名称和位置2. 包含数据的列3. 文件格式,包括列的分隔符4. 更新方法如果参数的类型是“File”,打开参数属性(Parameter Properties)对话框,设置文件属性如下:1. 在“File path”中输入文件的位置,或者点击“Browse”指定一个已有文件的位置。
缺省情况下,所有新的数据文件名都是“parameter_name.dat”,注意,已有的数据文件的后缀必须是.dat。
2. 点击“Edit”。
记事本打开,里面第一行是参数的名称,第二行是参数的初始值。
使用诸如逗号之类的分隔符将列隔开。
对于每一新的表行开始一行新的数据。
注意:在没有启动记事本的情况下如果想添加列,就在参数属性对话框中点击“Add Col”,那么“Add new column”对话框就会弹出。
输入新列的名称,点击“OK”。