Chinaunix首页 | 论坛 | 博客
  • 博客访问: 648684
  • 博文数量: 107
  • 博客积分: 4135
  • 博客等级: 上校
  • 技术积分: 1182
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-06 16:01
文章分类

全部博文(107)

文章存档

2020年(2)

2012年(5)

2011年(6)

2010年(23)

2009年(17)

2008年(35)

2007年(19)

我的朋友

分类: 项目管理

2008-07-10 16:21:12

Loadrunner参数化策略

引子

       近日没有具体的项目做,就总去泡论坛,发现有的网友会问一些参数化的问题,回答他们的问题时,突然发现自己也是一知半解,因此写了三个实验脚本,目的是彻底搞清楚参数化的做法以及参数化策略的疑问。

 

流程

       参数化要做一些准备,主要是参数化数据的准备,例如TXT文本、EXCEL表格以及数据库中的表都可以作为参数的数据集载体,而且LR都是支持的。具体的参数化流程如下:

1、 录制脚本

2、 准备参数的数据集(也可以不准备,让LR自己生成固定格式参数)

3、 把对应的变量参数化

4、 选择对应的参数化策略

 

具体的操作请查询LR帮助手册

 

例子

下面我来介绍几个例子,例子统一使用try_params.txt做参数数据集,txt内容如下:

aaa       bbb

a1   b1

a2   b2

 

a30 b30

 

脚本一:

Action()

{

       char *a = "{aaa}"; //获得参数赋值给a

       char *b = "{bbb}";//获得参数赋值给b

       lr_log_message("%s,%s,%s,",lr_eval_string (a),lr_eval_string (b),ctime(&t));//打印结果

       return 0;

}

 

运行时设置:设置action的迭代次数为30runtime-settingRun Logic里)

回放结果

Select Next Row

Update Value On

Replay Result

顺序(Sequential

每次迭代(Each iteration)

a1,b1

a2,b2

a3,b3

,

a30,b30

顺序(Sequential

每次出现(Each occurrence)

a1,b1

a2,b2

a3,b3

,

a30,b30

顺序(Sequential

只取一次(once)

a1,b1

a1,b1

,

a1,b1

随机(Random

每次迭代(Each iteration)

a5,b5

a27,b27

a21,b21

a16,b16

,

a16,b16

随机(Random

每次出现(Each occurrence)

a5,b5

a27,b27

a21,b21

a16,b16

,

a16,b16

随机(Random

只取一次(once)

a15,b15

a15,b15

,

a15,b15

唯一(Unique

每次迭代(Each iteration)

自动分配块大小

a1,b1

a2,b2

a3,b3

,

a30,b30

唯一(Unique

每次出现(Each occurrence)

步长为1

a1,b1

a2,b2

a3,b3

,

a30,b30

唯一(Unique

只取一次(once)

a1,b1

a1,b1

,

a1,b1

备注:“…,…”省略符号,如果前后都相同则省略相同部分,如果前后不同则省略不同部分。

 

 

 

脚本二:

Action()

{

       int i;   //循环种子

       for (i=0;i<30;i++) //循环30

       {

              char *a = "{aaa}"; //获得参数赋值给a

              char *b = "{bbb}";//获得参数赋值给b

              lr_log_message("%s,%s\n",lr_eval_string (a),lr_eval_string (b));

       }//打印结果

       return 0;

}

运行时设置:设置action的迭代次数为1runtime-settingRun Logic里)

回放结果

Select Next Row

Update Value On

Replay Result

顺序(Sequential

每次迭代(Each iteration)

a1,b1

a1,b1

,

a1,b1

顺序(Sequential

每次出现(Each occurrence)

a1,b1

a2,b2

a3,b3

,

a30,b30

顺序(Sequential

只取一次(once)

a1,b1

a1,b1

,

a1,b1

随机(Random

每次迭代(Each iteration)

a21,b21

a21,b21

,

a21,b21

随机(Random

每次出现(Each occurrence)

a5,b5

a27,b27

a21,b21

a16,b16

,

a16,b16

随机(Random

只取一次(once)

a15,b15

a15,b15

,

a15,b15

唯一(Unique

每次迭代(Each iteration)

自动分配块大小

a1,b1

a1,b1

,

a1,b1

唯一(Unique

每次出现(Each occurrence)

步长为1

a1,b1

a2,b2

a3,b3

,

a30,b30

唯一(Unique

只取一次(once)

a1,b1

a1,b1

,

a1,b1

备注:“…,…”省略符号,如果前后都相同则省略相同部分,如果前后不同则省略不同部分。

 

 

 

 

 

脚本三:

Action()

{

       char *filename = "C:\\work\\log\\try_params.log";

       typedef long time_t;

       time_t t;

       char *a = "{aaa}";

       char *b = "{bbb}";

       long fileopen;

       if ((fileopen = fopen(filename,"a+")) == NULL) {

              lr_error_message ("file isn't open,path=%s",filename);

              return 0;

       }

       time(&t);

       fprintf(fileopen,"%s,%s,%s",lr_eval_string (a),lr_eval_string (b),ctime(&t));

       fclose(fileopen);

       return 0;

}

运行时设置:设置action的迭代次数为1runtime-settingRun Logic里)

场景设置:不更改任何场景策略,运行vuser数为30

场景运行结果(C:\work\log\try_params.log

Select Next Row

Update Value On

Replay Result

顺序(Sequential

每次迭代(Each iteration)

a1,b1,Mon Jun 04 16:55:23 2007

a1,b1,Mon Jun 04 16:55:23 2007

a1,b1,Mon Jun 04 16:55:23 2007

,,

a1,b1,Mon Jun 04 16:55:35 2007

顺序(Sequential

每次出现(Each occurrence)

a1,b1,Mon Jun 04 16:57:30 2007

a1,b1,Mon Jun 04 16:57:30 2007

a1,b1,Mon Jun 04 16:57:31 2007

,,

a1,b1,Mon Jun 04 16:57:39 2007

顺序(Sequential

只取一次(once)

a1,b1,Mon Jun 04 17:00:22 2007

a1,b1,Mon Jun 04 17:00:22 2007

a1,b1,Mon Jun 04 17:00:22 2007

,,

a1,b1,Mon Jun 04 17:00:30 2007

随机(Random

每次迭代(Each iteration)

a14,b14,Mon Jun 04 17:01:08 2007

a18,b18,Mon Jun 04 17:01:08 2007

a29,b29,Mon Jun 04 17:01:08 2007

a9,b9,Mon Jun 04 17:01:09 2007

,,

A29,b29,Mon Jun 04 17:01:17 2007

随机(Random

每次出现(Each occurrence)

a29,b29,Mon Jun 04 17:03:16 2007

a3,b3,Mon Jun 04 17:03:16 2007

a1,b1,Mon Jun 04 17:03:17 2007

a30,b30,Mon Jun 04 17:03:17 2007

,,

a1,b1,Mon Jun 04 17:03:25 2007

随机(Random

只取一次(once)

a9,b9,Mon Jun 04 17:04:41 2007

a30,b30,Mon Jun 04 17:04:41 2007

a21,b21,Mon Jun 04 17:04:42 2007

a7,b7,Mon Jun 04 17:04:42 2007

,,

a9,b9,Mon Jun 04 17:04:49 2007

唯一(Unique

每次迭代(Each iteration)

自动分配块大小

a2,b2,Mon Jun 04 17:12:41 2007

a1,b1,Mon Jun 04 17:12:41 2007

a3,b3,Mon Jun 04 17:12:41 2007

a4,b4,Mon Jun 04 17:12:41 2007

a5,b5,Mon Jun 04 17:12:42 2007

a9,b9,Mon Jun 04 17:12:42 2007

a8,b8,Mon Jun 04 17:12:42 2007

a7,b7,Mon Jun 04 17:12:42 2007

a6,b6,Mon Jun 04 17:12:42 2007

a10,b10,Mon Jun 04 17:12:42 2007

,,

a30,b30,Mon Jun 04 17:12:50 2007

唯一(Unique

每次出现(Each occurrence)

步长为1

a1,b1,Mon Jun 04 17:14:07 2007

a3,b3,Mon Jun 04 17:14:07 2007

a2,b2,Mon Jun 04 17:14:07 2007

a4,b4,Mon Jun 04 17:14:07 2007

,,

a30,b30,Mon Jun 04 17:14:17 2007

唯一(Unique

只取一次(once)

a2,b2,Mon Jun 04 17:15:10 2007

a1,b1,Mon Jun 04 17:15:10 2007

a3,b3,Mon Jun 04 17:15:10 2007

a4,b4,Mon Jun 04 17:15:10 2007

a5,b5,Mon Jun 04 17:15:11 2007

,,

a30,b30,Mon Jun 04 17:15:21 2007

备注:“…,,…”省略符号,如果前后都相同则省略相同部分,如果前后不同则省略不同部分。

 

 

文档实例位置:

脚本一:try_param_2文件夹

脚本二:try_param_1文件夹

脚本三:try_param文件夹

参数文件:try_param.txt在每个脚本目录下

阅读(4989) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~