|
最近用LR11对服务器做一个文件下载的并发测试:模拟各终端在服务器上下载一文件到终端磁盘某一目录下。目的是为了得到最大并发用户量
脚本如下:
vuser_init,vuser_end没有什么内容,直接return0
Action中:
Action()
{
int flen;
long filedes;
char filename[1024];
//time_t time;
//time(&time);
char s[1024];
sprintf(s,"%d", time(0));
web_set_max_html_param_len("1024000");
web_reg_save_param("fcontent", "LB=", "RB=","SEARCH=BODY", LAST);
lr_start_transaction("123");
web_url("123_101520105_08_126_3.0.1.zip",
"URL=http://192.168.35.73:8080/bst/download/123_101520105_08_126_3.0.1.zip",
"Resource=1",
"RecContentType=application/zip",
"Referer=",
"Snapshot=t1.inf",
LAST);
//获取文本类型的文件大小
//flen = strlen(lr_eval_string("{fcontent}"));
flen=web_get_int_property (HTTP_INFO_DOWNLOAD_SIZE);
//获取二进制文件类型的文件大小
//flen = web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE);
lr_message("-----------------flen:%d",flen);
//生成随机的文件名称,便于并发
strcpy(filename,"e:\\down\\aa_");
strcat(filename,s);
strcat(filename,".zip");
lr_rendezvous("11");
if(flen > 0)
{
//以写方式打开文件
if((filedes = fopen(filename, "wb")) == NULL)
{
lr_output_message("Open File Failed!");
return -1;
}
//写入文件内容
fwrite(lr_eval_string("{fcontent}"), flen, 1, filedes);
//关闭文件
fclose(filedes);
}
lr_end_transaction("123", LR_AUTO);
return 0;
}
运行的场景如下:
start vusers 50个,每15秒增加2个。
遇到的问题为:当running Vusers数达到9后,errors>0,run数量再也上不去了。也设置过IP欺骗,问题一样出现。
求指教。 |
|