1、Loadrunner 参数化策略测试小组齐国杰使用工具: Loadrunner8.1试用版引子近日没有具体的项目做, 就总去泡论坛, 发现有的网友会问一些参数化的问题, 回答他们的问题时, 突然发现自己也是一知半解, 因此写了三个实验脚本, 目的是彻底搞清楚参数化的做法以及参数化策略的疑问。流程参数化要做一些准备,主要是参数化数据的准备,例如 TXT 文本、 EXCEL 表格以及数据库中的表都可以作为参数的数据集载体,而且LR 都是支持的。具体的参数化流程如下:1 、录制脚本2 、准备参数的数据集(也可以不准备,让LR 自己生成固定格式参数)3 、把对应的变量参数化4、选择对应的参数化策略具体
2、的操作请查询 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。; 运行时设置:设置 action 的迭代次数为30 (runtime-setting 的RunLogic 里)回放结果:SelectNextRowUpdateValueOnReplayR
3、esult顺序(Sequential )每次迭代(Eachiteration)a1,b1a2,b2a3,b3,a30,b30顺序(Sequential )每次出现(Eachoccurrence)a1,b1a2,b2a3,b3,a30,b30顺序(Sequential )只取一次(once)a1,b1a1,b1,a1,b1随机(Random )每次迭代(Eachiteration)a5,b5a27,b27a21,b21a16,b16,a16,b16随机(Random )每次出现(Eachoccurrence)a5,b5a27,b27a21,b21a16,b16,a16,b16随机(Random
4、)只取一次(once)a15,b15a15,b15,a15,b15唯一(Unique )每次迭代(Eachiteration)a1,b1自动分配块大小a2,b2a3,b3,a30,b30唯一(Unique )每次出现(Eachoccurrence)a1,b1步长为1a2,b2a3,b3,a30,b30唯一(Unique )只取一次(once)a1,b1a1,b1,a1,b1备注:“,”省略符号,如果前后都相同则省略相同部分,如果前后不同则省略不同部分。脚本二:Action()inti;/循环种子for(i=0;i30;i+)/ 循环 30 次char*a=aaa;获得参数赋值给 achar*b
5、=bbb”;获得参数赋值给 blr_log_message(%s,%sn,lr_eval_string(a),lr_eval_string(b);/打印结果return。;运行时设置:设置 action 的迭代次数为1 (runtime-setting 的RunLogic 里) 回放结果:SelectNextRowUpdateValueOnReplayResult顺序(Sequential )每次迭代(Eachiteration)a1,b1a1,b1,a1,b1顺序(Sequential )每次出现(Eachoccurrence)a1,b1a2,b2a3,b3,a30,b30顺序(Sequen
6、tial )只取一次(once)a1,b1a1,b1,a1,b1随机(Random )每次迭代(Eachiteration)a21,b21a21,b21,a21,b21随机(Random )每次出现(Eachoccurrence)a5,b5a27,b27a21,b21a16,b16,a16,b16随机(Random )只取一次(once)a15,b15a15,b15,a15,b15唯一 U Unique )每次迭代(Eachiteration)a1,b1自动分配块大小a1,b1,a1,b1唯一(Unique )每次出现(Eachoccurrence)a1,b1步长为1a2,b2a3,b3,a3
7、0,b30唯一(Unique )只取一次(once)a1,b1a1,b1,a1,b1备注:“,”省略符号,如果前后都相同则省略相同部分,如果前后不同则省略不同部分。脚本三:Action()char*filename=C:worklogtry_params.log;typedeflongtime_t;time_tt;char*a=aaa;char*b=bbb”;longfileopen;if(fileopen=fopen(filename,a+)=NULL)lr_error_message(fileisntopen,path=%s,filename);return。;time(&t);fprin
8、tf(fileopen,%s,%s,%s,lr_eval_string(a),lr_eval_string(b),ctime(&t);fclose(fileopen);return。;运行时设置:设置 action 的迭代次数为1 (runtime-setting 的RunLogic 里)场景设置:不更改任何场景策略,运行 vuser数为30场景运行结果(C:worklogtry_params.log ):SelectNextRowUpdateValueOnReplayResult顺序(Sequential )每次迭代(Eachiteration)a1,b1,MonJun0416:55:232
9、007a1,b1,MonJun0416:55:232007a1,b1,MonJun0416:55:232007, ,a1,b1,MonJun0416:55:352007顺序(Sequential )每次出现(Eachoccurrence)a1,b1,MonJun0416:57:302007a1,b1,MonJun0416:57:302007a1,b1,MonJun0416:57:312007, ,a1,b1,MonJun0416:57:392007顺序(Sequential )只取一次(once)a1,b1,MonJun0417:00:222007a1,b1,MonJun0417:00:222
10、007a1,b1,MonJun0417:00:222007, ,a1,b1,MonJun0417:00:302007随机(Random )每次迭代(Eachiteration)a14,b14,MonJun0417:01:082007a18,b18,MonJun0417:01:082007a29,b29,MonJun0417:01:082007a9,b9,MonJun0417:01:092007, ,A29,b29,MonJun0417:01:172007随机(Random )每次出现(Eachoccurrence)a29,b29,MonJun0417:03:162007a3,b3,MonJun
11、0417:03:162007a1,b1,MonJun0417:03:172007a30,b30,MonJun0417:03:172007, ,a1,b1,MonJun0417:03:252007随机(Random )只取一次(once)a9,b9,MonJun0417:04:412007a30,b30,MonJun0417:04:412007a21,b21,MonJun0417:04:422007a7,b7,MonJun0417:04:422007, ,a9,b9,MonJun0417:04:492007唯一(Unique )每次迭代(Eachiteration)自动分配块大小a2,b2,Mo
12、nJun0417:12:412007a1,b1,MonJun0417:12:412007a3,b3,MonJun0417:12:412007a4,b4,MonJun0417:12:412007a5,b5,MonJun0417:12:422007a9,b9,MonJun0417:12:422007a8,b8,MonJun0417:12:422007a7,b7,MonJun0417:12:422007a6,b6,MonJun0417:12:422007a10,b10,MonJun0417:12:422007, ,a30,b30,MonJun0417:12:502007唯一 U Unique )每次
13、出现(Eachoccurrence)步长为1a1,b1,MonJun0417:14:072007a3,b3,MonJun0417:14:072007a2,b2,MonJun0417:14:072007a4,b4,MonJun0417:14:072007, ,a30,b30,MonJun0417:14:172007唯一 U Unique )只取一次(once)a2,b2,MonJun0417:15:102007a1,b1,MonJun0417:15:102007a3,b3,MonJun0417:15:102007a4,b4,MonJun0417:15:102007a5,b5,MonJun0417:15:112007, ,a30,b30,MonJun0417:15:212007备注:“,”省略符号,如果前后都相同则省略相同部分,如果前后不同则省略不同部分。文档实例位置:脚本一:try_param_2 文件夹脚本二:try_param_1 文件夹脚本三:try_param 文件夹参数文件: try_param.txt 在每个脚本目录下