分类: 项目管理
2008-07-10 16:21:12
引子
近日没有具体的项目做,就总去泡论坛,发现有的网友会问一些参数化的问题,回答他们的问题时,突然发现自己也是一知半解,因此写了三个实验脚本,目的是彻底搞清楚参数化的做法以及参数化策略的疑问。
参数化要做一些准备,主要是参数化数据的准备,例如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的迭代次数为30(runtime-setting的Run 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的迭代次数为1(runtime-setting的Run 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的迭代次数为1(runtime-setting的Run 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在每个脚本目录下