开启IP欺骗功能必须是winxp系统,如果是win7系统则会出现IP欺骗设置后,在日志中可以看到每个用户用的ip还是压测机的本机IP
解决上述情况有两种方法:
1、将压测机版本换成xinxp系统
2、使用websocket协议,指定每个虚拟用户的ip,代码如下:
//获取虚拟线程分配到的ip
ipaddress = lr_get_vuser_ip();
lr_output_message("+++++%s++++++++",ipaddress);
lr_save_string(ipaddress,"ip_address");
lr_output_message("+++++%s++++++++",lr_eval_string("{ip_address}"));
lr_start_transaction("登录");
rc =lrs_create_socket("socket1","TCP","LocalHost={ip_address}:","RemoteHost={P_Host}:80", LrsLastArg);
这样会产生一个问题:通过socket协议登录后如果后面请求用http请求session不共享(也就是说执行后面的http请求处于未登录状态),为了解决这种问题socket登录关联到session,再将session塞到后面的http请求中。实现代码如下:
//关联session
lrs_save_searched_string("socket1", LRS_LAST_RECEIVED,"frontend","LB/BIN=advanced-frontend=","RB/BIN=;",1,0,-1);
//将session塞到后面的http请求。DOMAIN是必填项,这个函数不是作用于全局,只能作用于函数之后的一个请求
web_add_cookie("advanced-frontend={frontend}; DOMAIN={P_Host}");
这样再进行http请求就是登录状态了