Loadrunner参数化策略
测试小组齐国杰
使用工具:Loadrunner 8.1试用版
引子
近日没有具体的项目做,就总去泡论坛,发现有的网友会问一些参数化的问题,回答他们的问题时,突然发现自己也是一知半解,因此写了三个实验脚本,目的是彻底搞清楚参数化的做法以及参数化策略的疑问。
流程
参数化要做一些准备,主要是参数化数据的准备,例如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里)
备注:“…,…”省略符号,如果前后都相同则省略相同部分,如果前后不同则省略不同部分。
脚本二:
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里)
备注:“…,…”省略符号,如果前后都相同则省略相同部分,如果前后不同则省略不同部分。
脚本三:
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
备注:“…,…,…”省略符号,如果前后都相同则省略相同部分,如果前后不同则省略不同部分。
文档实例位置:
脚本一:try_param_2文件夹
脚本二:try_param_1文件夹
脚本三:try_param文件夹
参数文件:try_param.txt在每个脚本目录下。