自動化測試學習:使用python庫Paramiko實現遠端伺服器上傳和下載
前言
測試過程中經常會遇到需要將本地的檔案上傳到遠端伺服器上,或者需要將伺服器上的檔案拉到本地進行操作,以前安靜經常會用到xftp工具。今天安靜介紹一種python庫Paramiko,可以幫助我們透過程式碼的方式進行完成對遠端伺服器的上傳和下載操作,也可以進行對遠端伺服器輸入操作命令。 加我VX:atstudy-js 回覆“測試”,進入 自動化測試學習交流群~~
Paramiko屬於python的一個第三方庫,可以遠端連線Linux伺服器,進行透過python進行對Linux進行操作,可以實現進行對遠端伺服器進行下載和上傳檔案操作。
安裝
既然是第三方庫,我們可以透過pip進行安裝:
pip install paramiko
Paramiko庫主要包含兩個部分:SSHClient和SFTPClient
SSHClient:表示類似於Linux的ssh命令,我們可以透過SSHClient模組對遠端伺服器執行一些命令操作(Linux)。
SFTPClient:表示類似於SFTP工具,可以實現對遠端伺服器的檔案進行上傳和下載。
SSHClient
這裡安靜透過SSHClient進行對遠端伺服器上進行連線,並執行Linux命令,首先進行對paramiko下的SSHClient完成例項化,在使用SSHclient下的connet進行連線,後續進行操作一些命令:
import paramiko
# 進行對paramiko方法下的SSHclient進行例項化
ssh = paramiko.SSHClient()
# 儲存伺服器金鑰
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 輸入伺服器地址,賬戶名,密碼
ssh.connect(hostname='xxxx', port=22,username='root',password='xxxxxx')
# 返回了三個資料,第一個是輸入命令,第2個是命令返回的結果,第3個是命令錯誤時返回的結果
stdin, stdout, stderr = ssh.exec_command('pwd;lll')
# 返回了當前的路徑結果,如果錯誤則返回為空
print(stdout.read().decode('utf-8'))
# 返回錯誤的執行結果,如果正確則返回為空
print(stderr.read().decode('utf-8'))
透過執行程式碼操作後,就很清楚的看到我們已經完成了對linux命令的輸入,返回了正確的資訊和錯誤的資訊。
sftpclient前面也介紹了主要是類似於xftp的工具,可以幫助我們實現遠端檔案的上傳,下載。其實用方法也是一樣的。先進行例項化,然後透過登入到伺服器,透過建立sftp工具然後進行完成檔案的上傳和下載。
上傳檔案
安靜這裡先編寫一個txt檔案,然後將這個檔案透過程式碼的方法傳入到伺服器上。
import paramiko
# 對paramiko方法下的SSHclient進行例項化
ssh = paramiko.SSHClient()
# 儲存伺服器金鑰
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 輸入伺服器地址,賬戶名,密碼
ssh.connect(hostname='xxxxx', port=22, username='root',password='xxxxxx')
# 建立sftp客戶端
sftp = paramiko.SFTPClient.from_transport(ssh.get_transport())
# 本地路徑
aaa = "anjing.txt"
# 遠端路徑
bbb = "/home/anjing/222/anjing.txt"
sftp.put(aaa, bbb)
透過執行程式碼後,我們發現伺服器上已經存在了剛剛上傳的檔案。
我們透過進行將這個文字內容進行修改,然後將檔案傳到我們本地檔案中透過vi命令進行編輯。
下載這裡使用的方法是get(伺服器路徑,本地路徑):
import paramiko
# 對paramiko方法下的SSHclient進行例項化
ssh = paramiko.SSHClient()
# 儲存伺服器金鑰
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 輸入伺服器地址,賬戶名,密碼
ssh.connect(hostname='xxxxx', port=22, username='root',password='xxxxxx')
# 建立sftp客戶端
sftp = paramiko.SFTPClient.from_transport(ssh.get_transport())
# 遠端路徑
bbb = "/home/anjing/2
# 下載檔案
sftp.get(bbb, r'E:\web\anjing_01.txt')
透過執行程式碼後發現我們已經成功的將伺服器上修改過的檔案下載到了本地並修改了名稱。
安靜透過小小的例子簡單的介紹了paramiko如何對檔案上傳下載和執行linux的命令操作。對於我們測試來言,無論是日常測試中,還是在編寫自動化中,又遇到需要伺服器操作的時候,都可以嘗試下,一來可以在領導面前穩穩的裝一波,二來也可以增加我們對python知識的提高。好了,感謝您的閱讀,希望對您有所幫助。
最後:
可以我的 個人V:atstudy-js,可以免費領取一份10G軟體測試工程師面試寶典文件資料。以及相對應的影片學習教程免費分享!,其中包括了有基礎知識、Linux必備、Mysql資料庫、抓包工具、介面測試工具、測試進階-Python程式設計、Web自動化測試、APP自動化測試、介面自動化測試、測試高階持續整合、測試架構開發測試框架、效能測試等。
這些測試資料,對於做【軟體測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31407649/viewspace-2851944/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- python模組paramiko的上傳下載和遠端執行命令方法Python
- python模組paramiko的上傳下載和遠端執行命令方法薦Python
- python學習-fabric(高效遠端自動化部署工具)Python
- Python介面自動化——檔案上傳/下載介面Python
- git 自動上傳程式碼到遠端倉庫Git
- 使用 Postman 實現 API 自動化測試PostmanAPI
- 試著使用 jmeter 實現介面自動化測試JMeter
- UI自動化學習筆記- Selenium操作檔案上傳下載UI筆記
- 一隻自動化測試小白的學習記錄——Python+Selenium+pip+webdriver下載安裝 python自動化測試環境配置PythonWeb
- 使用Selenium/Ant做Web應用遠端自動化測試Web
- 自動化運維-Python paramiko 實現無客戶端系統巡檢運維Python客戶端
- Linux使用Shell指令碼實現ftp的自動上傳下載Linux指令碼FTP
- 用python實現selenium 自動化測試Python
- Python實現自動化測試入門指南Python
- fastlane實現自動化打包上傳測試平臺AST
- 如何學習自動化測試?從手工測試到自動化測試的過程…
- 面試題:上傳和下載怎麼測試?面試題
- Jmeter 介面自動化連載 (14) - 上傳與下載JMeter
- 使用 Python 和 Selenium 自動化網頁測試Python網頁
- 如何實現高度自動化測試?
- Postman實現UI自動化測試PostmanUI
- 模擬手機裝置:使用 Playwright 實現移動端自動化測試
- API自動化測試平臺,高效實現對API的自動化測試API
- python自動化測試Python
- Python實現效能自動化測試竟然如此簡單Python
- 使用paramiko遠端執行命令、下發檔案
- 【編測編學】自動化測試面試必背(上)面試
- iTerm2下配置ssh自動登入和使用lrzsz上傳下載
- 使用Python爬蟲實現自動下載圖片Python爬蟲
- Python3簡易介面自動化測試框架設計與實現(上)Python框架
- postman實現介面的自動化測試Postman
- 《軟體測試自動化》電子書下載
- 新手如何開始學習自動化測試?
- 學習 java 做自動化測試相關Java
- 【編測編學】自動化測試面試必背(下)面試
- 手工測試和自動化測試 BattleBAT
- 使用Vue+go實現前後端檔案的上傳下載,csv檔案上傳下載可直接照搬VueGo後端
- 自動化測試系列(2)—— 下載瀏覽器驅動瀏覽器