loadrunner脚本中写入脚本输出log到外部文件,分析参数取值方式
、controller中运行脚本时无法查看输出log,可以手动写入代码输出log到外部文件,通过查看该log获得相关信息:
以下脚本是为了分析场景中多用户运行时参数列表如何取值(id,groupid,sid,uname),设置集合点后通过查看时间点是否实现并发操作(times)
int id,scid;//定义保存vuser信息的2个整形变量
char *group;//定义保存groupname
char *filename = "c:\work.log";//手动创建存储log文件
long file_stream;
if ((file_stream = fopen(filename,"a+")) == NULL) //打开文件
{
lr_error_message("Cannot open %s", filename);
return -1;
}
lr_whoami (&id,&group,&scid);//获取变量
lr_save_datetime("%H:%M:%S",DATE_NOW + TIME_NOW,"times");//获取当前时间,判断用户登录时间
if (id > 0)
{
fprintf(file_stream,"vuser用户的信
息:time=%s,id=%d,group=%s,scid=%d,uname=%s
",lr_eval_string("{times}"),id,group,scid,lr_eval_string("{uname}"));
}
fclose(file_stream);
由于测试系统限制每个账号只允许一个人登录,当参数化后在场景中运行时,error信息非常多。通过上面输出log,测试是否是参数化取值方式所致。
参数化:用户1,用户2,用户3,用户4,用户5 ,用户6、用户7、用户8、用户9、用户10,值更新方式设置为sequence+iteration 或unique+iteration
controller:设置用户数为5,循环2次
验证参数化取值方式结果:
sequence方式时,5个用户第一次取值分别是用户1、用户1、用户1、用户1、用户1,第二次取值分别是用户2、用户2、用户2、用户2、用户2
unique方式是,5个用户第一次取值分别是用户1、用户2、用户3、用户4、用户5,第二次取值分别是用户6、用户7、用户8、用户9、用户10
因此若限制每个账号只允许一个人登录(即不允许同时多个人用一个账号登录),这必须设置unique+iteration,所以问题找到答案,解决。