2017-02-08 154 views
1

爲了測試IP欺騙我下面下面的步驟:的JMeter:IP欺騙不工作

  1. 打開CMD,做NSLOOKUP www.xyz.com.asdfg-staging.net
  2. 這將給IP地址在主機file.Here C:\Windows\System32\drivers\etc
  3. 打開的JMeter底部添加該IP地址,並添加該IP HTTP中樣品,如下所示:

如instrcuted在鏈接How to setup IP spoofing in jmeter?send requests with multiple ip address to my application using apache-JMeter(IP Spoofing) 4.運行測試,我只在View Results Tree監聽器中看到紅色錯誤,但我沒有按照步驟#3,那麼只有綠色。

我期望的是「欺騙IP」,即我在主機文件中添加的IP地址應該存在於View Results Tree偵聽器的Request選項卡中。

我在這裏做錯了什麼?上面分享的教程也要求編輯IPv4屬性,這對於實現我所期望的功能來說是非常必要的嗎?

+0

嘗試從這裏開始的步驟https://www.blazemeter.com/blog/using-ip-spoofing-simulate-requests-different-ip-addresses-jmeter。是的,您必須將IP地址添加到IPV4屬性(Adavanced選項卡 - >添加按鈕),那麼只有您可以在IP欺騙中指定那些添加的IP –

+0

如果我放置了IP地址(在IPv4中),那麼該機器上的Internet將停止。沒有?爲什麼? – paul

+0

我們不會在配置中保留任何隨機IP地址。IP必須表示相同的子網(如192.168或10.10)。通常情況下,路由器會爲您的機器分配一個IP地址(使用DHCP)。在我們的配置中,我們正在手動分配路由器可用的IP。 –

回答

2

IP欺騙是爲客戶端地址完成的。在您的屏幕截圖中,您正試圖在HOST標頭中查找欺騙IP的值,該標頭通常指向實際的服務器主機名而不是IP。

方案1,沒有分配的IPv4中與現場測試值對myhost.test.com做

Request Headers: 
Connection: close 
Content-Type: application/json 
Content-Length: 162 
Host: myhost.test.com 
User-Agent: Apache-HttpClient/4.5.2 (Java/1.8.0_111) 

方案2,具有源地址字段設置爲10.1.153.90

Request Headers: 
Connection: close 
Content-Type: application/json 
Content-Length: 162 
Host: myhost.test.com 
User-Agent: Apache-HttpClient/4.5.2 (Java/1.8.0_111) 
**X-LocalAddress: /10.1.153.90** 

對我來說,它看起來像你試圖欺騙你的服務器IP到服務提供商提供的特定IP,所以你只能像Akamai暫存環境那樣。在這種情況下,使用爲您的服務器(而不是客戶端)分配的IP來設置C:\ Windows \ System32 \ drivers \ etc \ hosts文件將在JMeter外部工作,並由OS(而不是JMeter)處理。

1.54.163.146 myhost.test.com 

在OS層面,你的操作系統將發送請求的護理解決了myhost.test.com到您在上文C給IP:\ WINDOWS \ SYSTEM32 \ DRIVERS \ ETC \ hosts文件

要看到實際的IP地址,添加預處理器(BeanShell的或同等學歷),並添加以下行

import java.net.InetAddress; 

InetAddress address = InetAddress.getByName("myhost.test.com"); 
log.info("Address=" + address.getHostAddress()); 

如果要衡量採取這個IP地址您的要求的時候,你可以把它放在一個變量並在採樣器名稱中加上

import java.net.InetAddress; 

InetAddress address = InetAddress.getByName("myhost.test.com"); 
log.info("Address=" + address.getHostAddress()); 
vars.put("addressused", address.getHostAddress()); 

然後將$ {addressused}附加到您的採樣器名稱。它會根據samplername + ipaddress來測量交易

+0

對我有意義。但是有沒有辦法,我可以看到在Jmeter中,頁面是通過主機文件中提供的IP獲得的? – paul

+1

您可以使用下面的代碼添加一個預處理器,它將打印實際的IP,如JVM如何解析它,然後由JMeter導入java.net.InetAddress; InetAddress address = InetAddress.getByName(「myhost.test.com」); log.info(「Address =」+ address.getHostAddress()); – Selva

+0

它將在哪裏打印,在日誌中?我正在GUI模式下運行,在那裏我可以看到日誌?我在CSV文件中點擊了很多URL,我想爲CSV文件中的每個URL記錄日誌。 – paul