1. 前言:
今天一同事在压测时提到怎么用jmeter里虚拟多个ip来发送请求,我想了一下以前用LR时用过虚拟ip地址,jmeter还没有使用过。想着原理应该是相通的,既然LR都能支持的话,那Jmeter应该也是支持,于是就有了jmeter虚拟化IP地址的研究。在网上也查找了相应的资料,摸索参考着实践了一把,坑吃了1个来小时吧,还是可行了。所以就以我自己的实践为案例把此操作记录下来,以备遇到同样问题的使用者做参考资源。
2. 前置条件:
操作系统: windows11
使用工具: jmeter5.4.3 、wireshark3.6.3、wps
3. 操作配置:
3.1. 把执行jmeter脚本的服务器ip地址设置为静态的ip地址。
首先,获取本网络段可用的闲置IP地址。
打开cmd命令窗口,”ipconfig“命令查看当前使用的ip信息,如本机的自动分配的ip地址是:192.168.40.27
查看网卡设置,点击右下角的状态栏里的网络图标,右键菜单“网络和interneter设置”,打开网络和Internet设置,如下图:
点击“高级网络设置”,“以太网”->右键“属性”→Internet协议版4→属性→高级→添加多个IP地址。
注意:添加是可用的ip地址,在添加时注意网关地址与DNS是当前网络里路由设置的网关地址与DNS.本文案例中使用的网关地址是192.168.40.1,DNS是192.168.20.2。这个根据实际情况进行配置。
配置时可以查看网关是否能ping通
配置完成后可以使用此命令“ipconfig /flushdns”手动刷新一下DNS,使DNS刷新使用最配置的DNS信息。
ipconfig /flushdns
ipconfig
配置完成后可以按“网络和Internet”->以太网->"查看其他属性"查看当前是否已经添加了新的IP配置信息,或是使用ipconfig查看,一样的效果
3.2. 创建虚拟ip参数化文件
使用wps创建IP.csv参数化文件
3.3. Jmeter中添加简单控制器
添加一个“CSV Data Set Config”和“HTTP Request”,这里的Request是以请求www.baidu.com为例进行设置的。
IP设置参数变量名为:ipaddress;
虚拟IP地址引用是在HTTP请求里设置,Advanced(高级)->Source address (IP/Hostname) 引用变量${ipaddress}
4.执行验证设置虚拟IP生效
我们设置了三个IP参数,在执行时把线程设置为3
“以管理员身份运行”wireshark,选择要监测的网卡流量,我们设置的网卡是“以太网”,就选择“以太网”或是在打开后在“捕获”菜单里设置选择“以太网”。
能过wireshark网卡流量可以核对我们设置的ip地址已经生效了。
windows命令“nslookup” 通过域名查看对应的域名解析出的路由地址
C:\Users\zhong>nslookup www.baidu.com
服务器: UnKnown
Address: 192.168.20.2
非权威应答:
名称: www.a.shifen.com
Addresses: 110.242.68.3
110.242.68.4
Aliases: www.baidu.com
5. 其他
不同的系统使用的查看路由信息命令汇总:
功能描述 | linux命令 | windows命令 | MAC命令 | 实例 |
查看路由状态 | route -n | route print | netstat -nr | |
发送ping包到地址IP | ping IP | ping IP | ping IP | |
探测前往地址IP的路由路径 | traceroute IP | tracert IP | traceroute IP | |
DNS查询,寻找域名domain对应的IP | host domain | nslookup domain | host domain | nslookup www.baidu.com |
反向DNS查询 | host IP | nslookup IP | host IP |
如果您觉得此文对您有帮忙就顺手点个赞,给予我继续写作下去的精神支持;
如果您对此文有疑问需要讨论或是解答的问题,请留言;
如果您对性能想有更多、更深入的了解也可参加我们当前正在招生中的三期高级性能班培训课,详情请点击“7DGroup性能工程高级班招生简章-第三期”;