Internal data

Date/Time,Group Name,Iteration Number,Load Generator Name,Ramdom Number,Table,Unique Number,User Defined Function,Vuser ID统一归为Inernal data,Vuser运行时自动生成,这里和一般的参数化的区别是主页是要参数化的内容是否程序给定的,不是自己的指定的。

1.Date/Time

提供了获取当前时间的参数方式。虽然在VUGen中有now()函数用来获取当前日期,但是不如参数化的简单明了。

注意:如果要修改格式,可以选择需要的格式,然后在图示红色方框中编辑后,回车。回车后会关闭对话框,再次打开可看到修改效果,其他类型的参数编辑也是如此。

offset

提供了偏移的策略,不但可以获得当前时间,还能对这个时间做一个往前往后的移动:

1.仅选中offset parameter可以指定偏移的日期和时间(当前时间往前进行偏移)

比如:当前时间为22号,这里选择偏移2天,那么输出为24号

2.同时勾选Working day only,该选项只指获得的日期为周一到周五,不包括周末时间(周六,周日),偏移精确度到天

比如:当前时间为22号,星期四,偏移时间为2天,那么偏移后为星期六,勾选该选项后输出时间为星期一

3.同时勾选Prior to current,改选项指往后偏移,生成过去的时间

比如:当前时间为22号,偏移时间选择1天,那么偏移后为21号,勾选该选项后输出时间为星期一

应用举例:

Action(){

char *time_now;

time_now=NULL;

time_now=lr_eval_string("{current_time}");//lr_eval_string表示用字符串表示current_time

lr_output_message(time_now);//打印

return 0;

}

运行结果:

2.Grooup Name

在VUGen中称一段代码叫做一个虚拟用户脚本,这个脚本只有一个Vuser去运行,到了场景中,一个脚本有很多Vuser来运行,这成为Group Name,也就是指一个组里面有一定数目的人,并且做了同样的事情(运行同一个脚本)。通过这个参数,可以在脚本里面获得当前脚本所在的Group Name,用于某些处理。

说明:其中%5s,表示group_name字符串占5位,不足左边补0

应用举例:

Action(){

char * groupName;

groupName=NULL;

groupName=lr_eval_string("{group_name}");

lr_output_message(groupName);

return 0;

}

运行结果:

3.Iteration Number

获得当前所在的迭代号

应用举例;

Action(){

char * iteration_num;

iteration_num=NULL;

iteration_num=lr_eval_string("{iteration_number}");

lr_output_message(iteration);

return o;

}

运行结果:

4.Load Genertor Name

当负载生成时,脚本是放在Load Generator上执行的,通过这个参数可以获得脚本运行时所在服务器的名称

应用举例:

Action(){

char * lr_generator_name;

lr_generator_name=NULL;

lr_generator_name=lr_eval_string({"generator_name"});

lr_output_message(lr_generator_name);

return 0;

}

运行结果:

说明:生成器名称为Local,因为格式化字符串,不满足位数,左边补齐3个0

5.Random Number

直接提供生成一定格式的随机内容,可以通过设置最大值和最小值,来实现范围内随机数的生成,也可以通过c语言中的rand()函数来处理。

应用举例:

Action(){

char * ramdom_num;

ramdom_num=NULL;

ramdom_num=lr_eval_string({"ramdom_number"});

lr_output_message(ramdom_num);

return 0;

}

运行结果:

6.Vuser ID

这个参数类型可以虚拟用户的编号,在场景中,每个用户都有一个唯一用户名,区别是这个用户名是通过用户的ID来说明的,例如:Vuser1,这里说明用户名为Vuser(一般为脚本名),而用户编号为1,如果需要获得用户的编号,就可以通过这个参数来实现。

应用举例:

Action(){

char * vuser_ID;

vuser_ID=NULL;

vuser_ID=lr_eval_string({"vuser_id"});

lr_output_message(vuser_ID);

return 0;

}

运行结果:

7.Unique number

获得一个唯一的数据,在做某些组件的属性时会比较方便。

注意:当需要大量用户名时,可以参数化用户名的编号,将其设置为唯一取值即可。例如在:web_submit_date()函数中设置username属性为“name=username”,"Value=cloud{userid}"。这里设置{userid}参数为唯一取值,如果block_size(指参数间隔),如果设置为1,第二个参数值为2,如果设置为10,第二个参数值为11,依次类推

应用举例:

Action(){

char * unique_num;

unique_num=NULL;

unique_num=lr_eval_string({"unique_num"});

lr_output_message(unique_num);

return 0;

}

运行结果:

8.File类型

1.File

指定保存参数的文件,如图NewParam(1).dat,点击Browse可以指定其他文件替换当前参数文件。

注意:在默认情况下,参数记录只显示100条记录,超过100条记录可以被操作,但是无法在VUGen中显示,修改安装目录下的VUGen.ini【安装路径\config\vugen.ini】文件中的【ParamTable】属性下的MaxVisibleLines为想显示的记录条数即可。

2.Edit with Notepad

可以打开*.dat参数文件,可以看到参数名以及参数的值,一般我们都是用这种方式修改参数值,比较方便

3.Add Coloumn/Add row

添加行/列

4.File format

提供参数文件的内容格式设置,包含两种格式:

1)Column:列的格式包括Comma(逗号分隔符),Tab(制表符分隔符),Space(空格分隔符),用来帮助分割表格中的列,默认选择Comma【建议选择这个】,如上图Edit with Notepad所示

2)First data:设置行的记录从第几行开始的,设置几就是从第几行开始作为当前参数的参数值数据行,不计算标题,设置First data为2时,原先的第一条记录就被隐藏,第二条记录放到第一条进行显示,脚本执行时将从第二条开始取值

5.Select column

通过序列号或者列名取值

1)By Number

通过列号指定,默认1,即第一列,以图为例,可供选择的是1,2,1则表示NewParam列,2则表示NewParma2这列,默认设置如下,如果选择的是NewParma2这列,那么参数取值仅从这列数据中取。

2)By Name

通过列名指定,默认,以图为例,可供选择的是NewParam,NewParam2

6.Simulate Parameter

当前参数设置如下,模拟运行迭代时参数的取值

假设当前参数设置如下

Number of Vuser:要模拟的用户数量

场景运行模式:

1)Run until completion 运行指定的迭代次数直到完成

Take number of iterations from Run-time settins,从运行时 设置中获取迭代次数

2)Run indefinitely

Number of iterations to show 指定表中要显示迭代数,即列数

无限期,可以自由指定要运行的次数

7.Date Wizard 通过数据库导入,此部分(略)

9.Table类型

一个file类型的增强版,提供了一些独特的功能

Colums

提供了对列的分割方式的设置,file参数类型的缺点就在于他的分割符号只提供了逗号,制表符,空格三种方式。如果参数化的对象同时存在逗号,制表符,空格时,只有使用Table参数类型才能解决这个问题

1)Select all columns

勾选后,那么取值的时候参数会认为整个表只有一个属性,通过回车符划分记录。

例子:

Action(){

lr_eval_string("{NewParam}");

return 0;

}

如下图,table='NewParam.dat' column='0' row='2',把两个列看成一列。

2)Columns by number

通File类型中说述

 3)Column

同file类型中的列分隔符

Rows

提供了对回车符号的处理,可以修改Rows per来说明每个参数带几行记录

1)Rows per

设置每个参数包含多少行参数值

例子:设置Rows per=2

如下图,可以看到记录,参数值每次去了两条记录,参数值合一起了,回车符直接被忽略掉了

2)First line of

在脚本执行的时候选择第几行数据使用。列标题是第0行,若从列标题后面的第一行开始取值的话,那就在“First data line”输入1

3)Table information

如图,提示参数值表中有4条记录,每一次迭代取值2行,从第一行开始,有足够的行用于2次迭代

注意:如果是5行记录,每次取值两次,迭代三次,那么会导致第三次取值出错

table表参数行溢出规则:

当记录不够时,参数化会根据规则来取值

1)Parameter will get less rows than required

如果记录条数不够,那么取值多少取多少。那上述例子来说,如果是5行记录,每次取值2行,迭代3次,那么最后一次取值就是【value5,5Value】

2)Use behavior of "select Next Row”

如果是选择改选项,VUGen会检查下一次取值是否能够得到足够的记录行数,如果不够就跳过后续记录,根据我们设置好的取值方式重新进行取值,按照同样的设置,最后一次取值结果变成了【value,textValue2,2Value】

Rows delimeter for log用来设置定界符的日志

例子:

User Defined Function类型

这时VUGen提供的扩展功能,当需要通过外部程序生成某些数据的时候,可以通过dll的方式来完成特殊的输入

也可以通过lr_load_dll()函数来实现调用外部的dll扩展脚本的功能

例子:Windows弹出窗提示

lr_load_dll("user32.dll");

MessageBox(NULL,"This is the message body","message_caption",0);

对于VUGen来说,确保你创建的external library(dll)必须遵守dll创建规则

10.XML类型

点击Edit Data,弹出右边Edit窗口,

如下图,通过邮件对XML的元素和节点属性进行维护,

其中的小绿色方块图标表示生效,如果去掉绿色图标,点击ok后Schema中是看不到的

对于XML格式的数据可以使用VUGen中的xml系列函数来进行处理,例如希望获得XML中的某些元素,可以用lr_xml_get_values()函数,详细信息请参考帮助文档。

Loadrunder之脚本篇——参数类型的更多相关文章

  1. loadrunder之脚本篇——int类型和字符串的相互转换

    字符串转化为int型变量 Action2() { int j = 0; j = atoi("12345");  //将字符串变为整形 lr_output_message(" ...

  2. loadrunder之脚本篇——加密解密

    密码加密 可以给密码加密,意在把结果字符串作为脚本的参数或者参数值.例如,完整可能有一个用户密码填写的表单,你想测试网站针对不同密码的反应,但是你又想保护密码的安全.Password Encoder允 ...

  3. Loadrunder之脚本篇——参数化取值策略

    参数取值选项 Select next row Update value on 以上两个选项是改变参数化取值的关键选项. Select next row包含如下选项: Sequential:顺序选择 R ...

  4. Loadrunder之脚本篇——参数化方法

    导语 参数化旨在模拟多数据来进行测试,所以再选择参数化你明确你参数化的内容! 方法一 1.确定需要参数化的内容 2.选中需要参数化的内容 3.右键选中的内容->Replace with a Pa ...

  5. loadrunder之脚本篇——脚本基础知识和常用操作

    1)编码工具设置 自动补全输入Tools->General Options->Environment->Auto complete word 显示功能语法Tools->Genr ...

  6. loadrunder之脚本篇——定义全局变量

    如果参数是全局的,在脚本中的任何一个Action中都可以使用,变量一般是局部的,如果跨Action调用会出现未声明的错误. 打开Script视图中左侧Action列表中的globals.h文件,可定义 ...

  7. loadrunder之脚本篇——接口传参为本地文件

    导言 前几天需要对公司一个专门很重要的接口进行压测,这个还不是重点,重点是传参为本地的图片!刚刚开始通过web_custom_request()函数来解决,可是脚本并不能通过!后面又百度不到答案,通过 ...

  8. Loadrunder之脚本篇——关联函数对话框详解

    Insert->New Step,打开Add Step对话框 选择函数web_reg_save_param,点击OK,打开关联函数设置窗口 说明: Parameter Name 此处设置存放参数 ...

  9. Loadrunder之脚本篇——关联

    关联的原理 关联也属于一钟特殊的参数化.一般参数化的参数来源于一个文件.一个定义的table.通过sql写的一个结果集等,但关联所获得的参数是服务器响应请求所返回的一个符合条件的.动态的值. 例子:常 ...

随机推荐

  1. [Android]生成heap dump文件(.hprof)

    Android生成heap dump文件(.hprof) 一个heap dump就是一个程序heap的快照,能够获知程序的哪些部分正在使用大部分的内存. 它保存为一种叫做HPROF的二进制格式.对于A ...

  2. Sublime 中 SFTP插件的使用

    首先说明的是Sumblime Text 3,下载安装后,打开软件, 按下Ctrl+Shift+P调出命令面板, 按回车键后弹出下面的 然后 点击左上角的 文件 >SFTP/FTP > Se ...

  3. spring cloud使用zuul实现反向代理和负载均衡

    首先,这篇文章参考的是http://blog.didispace.com/springcloud5/这位大牛的博客.本人是通过这篇博客来学习zuul的,现在写的博客只是个人在学习时个人的一些感受和理解 ...

  4. Nginx区分PC或手机访问不同网站

    近几年来,随着手机和pad的普及,越来越多的用户选择使用移动客户端访问网站,而为了获取更好的用户体验,就需要针对不同的设备显示出最合适的匹配,这样就是近年来流行的“响应式web设计”. 响应式web设 ...

  5. 【转】锤子CTO钱晨:福利好是一种堕落的公司文化

    “这是拉勾网对锤子科技CTO钱晨的访谈,作为中国手机界三大产品经理之一,他带领着一众硬件工程师在手机红海中厮杀.钱晨喜欢焦虑的工程师,佩服有方向感的人. 本文作者:西岳 拉勾网原创出品,转载请注明作者 ...

  6. MyBatis实战——自动回复机器人

    案例分析 基本功能 接收发送指令 根据指令自动回复对应内容 模块划分 回复内容维护 对话功能 回复内容列表 回复内容删除 MyBatis的下载和核心架构的搭建 下载地址:https://github. ...

  7. OpenCV学习笔记十六:opencv_calib3d模块

    一,简介: 该库用于3D信息重建,姿态估计,摄像机标定等.

  8. day2 python基础 while 循环补充

    一.上节内容回顾 二.pycharm安装. 安装好以后激活方法:直接打开pycharm,选License server激活,输入:http://idea.imsxm.com 三.补充知识:如果字符串本 ...

  9. @Resource 注解

    @Resource 注解被用来激活一个命名资源(named resource)的依赖注入,在JavaEE应用程序中,该注解被典型地转换为绑定于JNDI context中的一个对象. Spring确实支 ...

  10. php简单工厂模式

    工厂类中有一个创建对象的方法,根据传入参数的不同来生成不同的对象 class Operation extends Model{ private $numberA; private $numberB; ...