【IT168技术文档】问题提出: 主要想试验下,在Controller中,多个用户,多次迭代中参数的取值.
方法: LoadRunner脚本
脚本: 我把取到的参数值和对应的VuserID记录下来保存到一个文件中,下面是例子的脚本
long fileopen;char *filename = "C:\\temp\\params.log"; vuser_init() { if ((fileopen = fopen(filename,"a+")) == NULL) { lr_error_message ("file isn't open,path=%s",filename); return 0; } return 0; } Action() { int id,scid; char *vuser_group;
//typedef long time_t; //time_t t; long t; char *a = "{aaa}"; char *b = "{bbb}"; lr_whoami(&id, &vuser_group, &scid); fprintf(fileopen,"%d,%s,%s,%s",id,lr_eval_string (a),lr_eval_string (b),ctime(&t)); return 0; } vuser_end() { fclose(fileopen); return 0; }
参数设置为:
取唯一值,每次迭代更新。
运行时设置的迭代次数为2。
场景的设置:
虚拟用户数:5个
运行模式:没有设置duration,选择的“Run until complete”
完成后的日志文件params.log的内容如下:
1,a1,b1,Thu Jan 01 08:00:05 1970
1,a2,b2,Thu Jan 01 08:00:05 1970
10,a5,b5,Thu Jan 01 08:00:05 1970
10,a6,b6,Thu Jan 01 08:00:05 1970
2,a3,b3,Thu Jan 01 08:00:05 1970
2,a4,b4,Thu Jan 01 08:00:05 1970
30,a9,b9,Thu Jan 01 08:00:05 1970
30,a10,b10,Thu Jan 01 08:00:05 1970
21,a7,b7,Thu Jan 01 08:00:05 1970
21,a8,b8,Thu Jan 01 08:00:05 1970
从生成的日志文件中可以看到VuserID分别为1,2,10,21,30
第一次迭代取参数分别为1,3,5,7,9
第二次迭代取参数分别为2,4,6,8,10
那试验的结果就是每个Vuser取参数的时候相同的Vuser在多个迭代中取的是连续的。不同的Vuser第一个的取值是计算了迭代次数后的那个顺序上的值。