1. 程式人生 > >Windows從web下載文件的幾種方式

Windows從web下載文件的幾種方式

cmd 進行 mage 需要 插件 tro brush 條件 是否

最近搞app自動化測試,需要自動從網頁上下載apk用於測試,順便學習了幾種從web下載文件的方式。

一、PowerShell DownloadFile 命令

PowerShell 是一種winodws原生的腳本語言,使用很方便,可以實現很多復雜的功能。

首先啟動PowerShell,可以在cmd裏執行 start powershell,也可以按住shift建右擊選擇打開powershell

技術分享圖片

啟動powershell後輸入如下命令:

$client = new-object System.Net.WebClient
$client.DownloadFile(‘url‘, ‘file‘)

 這裏的url是下載文件的地址,file是文件保存路徑(包括文件名)。如果出現報錯如下:使用“2”個參數調用“DownloadFile”時發生異常:“在 WebClient 請求期間發生異常。”

技術分享圖片

就是文件保存路徑沒有寫完整,一定要包括文件名。如:D:\app-release.apk

在Jenkins build step 中執行 PowerShell 命令

當然這是手動在powershell命令行執行的,並沒有實現自動化。我們需要把它放到Jenkins中去實現。

在Jenkins中執行powershell命令需要先安裝相應插件如下:

技術分享圖片

安裝完重啟,就可以在任務構建中添加執行powershell命令的操作:

技術分享圖片

填入上面的兩條命令,就可以執行文件下載操作了。

多個build step

如果有多個step呢?如果想要在下載文件失敗後進行其他操作呢?

上面的操作,無論怎麽執行 PowerShell 命令,build step 的結束狀態都是 "成功"(包括一些命令執行失敗的情況)。這是因為PowerShell 執行的過程中沒有執行 exit 調用,Jenkins 無法判斷執行的命令是否成功退出,所以就默認是成功的了。實際上,當命令執行失敗或是滿足一些條件時,我們希望 build step 的結束狀態是 "失敗",後續的 build step 根據前面 step 的結束狀態決定是否執行。

這就需要在PowerShell 命令執行後執行 exit 調用:判斷腳本執行成功時調用 exit 0;判斷腳本執行失敗時調用 exit 1

也就是執行三條命令,例如:

$client = new-object System.Net.WebClient
$client.DownloadFile(‘url‘, ‘file‘)
exit 1

二、python實現文件下載

未完待續

Windows從web下載文件的幾種方式