问题提出:  主要想试验下,在Controller中,多个用户,多次迭代中参数的取值.

方法:

脚本: 我把取到的参数值和对应的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第一个的取值是计算了迭代次数后的那个顺序上的值。