2014-07-23 44 views
0

我需要測試某些方法在Internet連接斷開時是否仍可正常運行。如何暫時禁用JVM網絡連接

這個測試可以運行在Linux,Windows甚至是虛擬機上的Jenkins上,所以我認爲特定於操作系統的解決方案並不是最好的方法。我也認爲改變安全策略文件並不理想。

理想的執行流程是這樣的:

disableNetwork() 
testMethod() 
enableNetwork() 
+1

沒有'JVM網絡連接'來禁用。拉電纜。 – EJP

+0

pullTheCable()? – MarcioB

+0

對不起,我想我的問題已經很清楚了。 – MarcioB

回答

0

,因爲它在其他的答案被說在這裏,有這樣做的任何Java本機方法。因此需要一個OS解決方案。這是我爲Linux所做的:

public void pullTheCable() { 
    Runtime.getRuntime().exec("sudo ifconfig eth0 down"); 
} 

這將禁用網絡適配器。 (用相應的適配器替換'eth0')。而這將再次把它:

public void pushTheCable() { 
    Runtime.getRuntime().exec("sudo ifconfig eth0 up"); 
} 

您還需要編輯文件/ etc/sudoers中給予的權限給用戶內部消除詢問口令執行sudo命令。更多關於這裏:

how do you make sudo save the password?

只要我有一個Windows的解決方案,我會更新這個答案。