背景:由于项目性能测试需要,最近玩socket,遇见了服务器限制ip请求,于是采用ip欺骗,但是设置过程中,总是报“找不到元素”,于是网上查找资料,基本上大同小异,经过反复分析和对比这些资料,找到一些让我受启发和解决问题的信息,接下来介绍一下解决问题的注意事项和vuer中参数化过程,至于具体ip欺骗大部分设置过程,可参考度娘即可。
注意事项1:在设置ip欺骗前,一定要确定本地ip为固定ip,而不是DHCP(本地连接—>属性—>internet协议版本4(tcp/ipv4)-->属性—>高级-->ip设置:查看ip地址(如图)),具体原因,我猜是因为DHCP是自动获取路由分配的ip,会与ip欺骗设置时起冲突,所以导致设置失败。
解决方法:设置静态ip(如下图)后,IP设置就显示设置的静态IP了,此时重新设置ip欺骗就ok了
注意事项2:在设置ip欺骗时,有些网上资料中偶尔会缺少一个选择网卡步骤,原因是因为有些pc是存在多网卡的,所以需要选择(如图)
解决方法:在网络连接中,查看本地连接图标中,就显示目前使用的网卡信息
注意事项3:如何在vuser中使用ip欺骗设置的ip,脚本如下:
vuser_init()
{
char *ip;
int rc;
lrs_startup(257);
ip = lr_get_vuser_ip();
lr_output_message("The IP address is %s" , ip);
lr_save_string(ip,"ip_url");
if(ip){
lr_output_message("The IP address is %s" , ip);
rc=lrs_create_socket("socket6", "TCP", "RemoteHost=<ip_url>:5555", LrsLastArg);
if (rc==0){
lr_output_message("Socket was successfully created ");
}else{
lr_output_message("An error occurred while creating the socket, Error Code: %d", rc);
return -1;
}
}
else{
lr_message("IP spoofing disabled");
return -1;
}
return 0;
}
要验证ip欺骗设置,在脚本中是否使用成功,这里要注意一些小细节4点:
1:获取ip,要引用 lr_get_vuser_ip()方法函数;
2:参数化前,要将获取的ip值存入参数化属性名中,不能直接引用,否则无法获取到;
3:vuser中,不能直接运行脚本使用ip欺骗,因为获取ip值为null,只有在controller运行场景,通过查看日志,才能确定是否获取和引用成功
4:使用ip欺骗,做完测试后,需要释放所有IP,否则会占用该网段的ip地址,导致其他用无法正常使用
参考资料:
https://www.cnblogs.com/fnng/archive/2013/03/02/2940284.html
https://jingyan.baidu.com/article/fec7a1e5f16a291190b4e73b.html