自動化測試學習:使用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學習-fabric(高效遠端自動化部署工具)Python
- 自動化運維-Python paramiko 實現無客戶端系統巡檢運維Python客戶端
- Python介面自動化——檔案上傳/下載介面Python
- 一隻自動化測試小白的學習記錄——Python+Selenium+pip+webdriver下載安裝 python自動化測試環境配置PythonWeb
- 用python實現selenium 自動化測試Python
- git 自動上傳程式碼到遠端倉庫Git
- UI自動化學習筆記- Selenium操作檔案上傳下載UI筆記
- 使用 Postman 實現 API 自動化測試PostmanAPI
- 使用 Python 和 Selenium 自動化網頁測試Python網頁
- 試著使用 jmeter 實現介面自動化測試JMeter
- 模擬手機裝置:使用 Playwright 實現移動端自動化測試
- 使用Python爬蟲實現自動下載圖片Python爬蟲
- Jmeter 介面自動化連載 (14) - 上傳與下載JMeter
- 如何學習自動化測試?從手工測試到自動化測試的過程…
- Python實現效能自動化測試竟然如此簡單Python
- python自動化測試Python
- Python通過paramiko從遠處伺服器下載檔案資源到本地Python伺服器
- 如何實現高度自動化測試?
- Postman實現UI自動化測試PostmanUI
- Python3簡易介面自動化測試框架設計與實現(上)Python框架
- iTerm2下配置ssh自動登入和使用lrzsz上傳下載
- 小白進階之路,python實現介面自動化測試中如何使用pymysql直連資料庫?PythonMySql資料庫
- API自動化測試平臺,高效實現對API的自動化測試API
- 【編測編學】自動化測試面試必背(上)面試
- Appium+Python實現iOS自動化測試~環境搭建APPPythoniOS
- 【編測編學】自動化測試面試必背(下)面試
- Python 介面自動化測試Python
- 使用Vue+go實現前後端檔案的上傳下載,csv檔案上傳下載可直接照搬VueGo後端
- 前端實現檔案下載和拖拽上傳前端
- 學生黨自學Python:1分鐘搭建HTTP伺服器並實現遠端下載PythonHTTP伺服器
- postman實現介面的自動化測試Postman
- 中小水庫中的水情遙測系統如何實現遠端監控和自動報警?
- python自動化測試工具selenium使用指南Python
- Python自動化測試 :urllib2 傳送HTTP RequestPythonHTTP
- 科普|不同協議下遠端伺服器檔案上傳_下載優劣對比協議伺服器
- (資料科學學習手札132)Python+Fabric實現遠端伺服器連線資料科學Python伺服器
- 再見Xshell、Xftp!Python執行Linux命令、上傳下載遠端檔案FTPPythonLinux