一、前言
今天一同事在压测时提到怎么用 JMeter 里虚拟多个 IP 来发送请求,我想了一下以前用LR时用过虚拟ip地址,JMeter 还没有使用过。想着原理应该是相通的,既然 LR 都能支持的话,那 JMeter 应该也是支持,于是就有了JMeter 虚拟化IP地址的研究。在网上也查找了相应的资料,摸索参考着实践了一把,坑吃了1个来小时吧,还是可行了。所以就以我自己的实践为案例把此操作记录下来,以备遇到同样问题的使用者做参考资源。
二、前置条件
- 操作系统::windows11
- 使用工具: JMeter 5.4.3 、wireshark3.6.3、wps
三、操作步骤
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查看,一样的效果
2、创建虚拟ip参数化文件
使用 wps 创建IP.csv参数化文件
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:\>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、其他
不同的系统使用的查看路由信息命令汇总: