案例故事: 在測驗環境搭建環節,尤其是需要在新的電腦上搭建Python測驗環境時,
可以考慮把日常自動化測驗所需要用到的第三方Python包(非自帶內置包), 一次性批量安裝上,
準備階段
- 確保python及pip已經添加到了Path環境變數
- 可以利用os.system("具體命令")函式來實作批量安裝
- 自動化測驗人員,常用的第三方包如下表:
| 第三方包名 | 應用場景 |
|---|---|
| requests | 介面測驗,檔案下載,http訪問 |
| httprunner | 自動化測驗框架,更適合介面 |
| selenium | Web UI自動化 |
| openpyxl | Excel讀寫操作 |
| robotframework | 自動化框架,更適合移動終端或web UI自動化 |
| appium-python-client | App UI自動化 |
| uiautomator2 | Android App UI 自動化 |
| locust | Web 性能測驗工具 |
| flask | Web框架,搭建測驗環境用 |
| django | Web框架,搭建測驗環境用 |
| pillow | 圖片處理 |
| pandas | 資料分析 |
| keyboard | 鍵盤事件 |
| python-jenkins | Jenkins構建任務自動化 |
| pyinstaller | Py腳本編譯成二進制可執行檔案 |
| python_docx | Word讀寫操作 |
| plotly | 制圖工具 |
| pyserial | 串口設備通訊 |
| pymysql | 資料庫處理 |
| MySQLdb | 資料庫處理 |
| mongodb | 資料庫處理 |
| redis | 資料庫處理 |
Bat vs Python批處理腳本形式
Dos Bat批處理腳本(.bat檔案)是最簡單Windows自帶的批量處理腳本語言,
記住批處理腳本的精髓:批量順序執行陳述句,Python一樣可以實作,
以下是DOS bat批處理腳本:
pip install requests
pip install httprunner
pip install selenium
pip install openpyxl
pip install robotframework
pip install appium-python-client
pip install uiautomator2
pip install locust
pip install flask
pip install django
pip install pillow
pip install pandas
pip install keyboard
pip install python-jenkins
pip install pyinstaller
pip install python_docx
pip install plotly
pip install pyserial
pip install pymysql
pip install MySQLdb
pip install mongodb
pip install redis
pause
以下是對應的Python批處理腳本形式:
import os
os.system("pip install requests")
os.system("pip install httprunner")
os.system("pip install selenium")
os.system("pip install openpyxl")
os.system("pip install robotframework")
os.system("pip install appium-python-client")
os.system("pip install uiautomator2")
os.system("pip install locust")
os.system("pip install flask")
os.system("pip install django")
os.system("pip install pillow")
os.system("pip install pandas")
os.system("pip install keyboard")
os.system("pip install python-jenkins")
os.system("pip install pyinstaller")
os.system("pip install python_docx")
os.system("pip install plotly")
os.system("pip install pyserial")
os.system("pip install pymysql")
os.system("pip install MySQLdb")
os.system("pip install mongodb")
os.system("pip install redis")
os.system("pause") # 暫停并查看執行結果避免直接關閉
$$$
咋一看,是Dos bat批處理腳本更為簡單直接,但是bat語法太過簡單,只能處理簡單的資料,
在稍大點的程式處理程序中,bat顯得很吃力且不科學,還是Python更為合理!
Python面向程序函式形式
其實本案例Python批處理腳本形式實作即可,以下只是用于編程思維訓練,
找到可以封裝成一個函式塊的小代碼塊兒, 用函式封裝起來,
函式的命名一般建議用"動詞", 所以我們命名為: "install_3rd_package",
封裝好后, install_3rd_package()函式呼叫即可,
備注:3rd就是第三方的意思,third party的簡寫,
# coding=utf-8
import os
def install_3rd_package(): # 定義功能函式
os.system("pip install requests")
os.system("pip install httprunner")
os.system("pip install selenium")
os.system("pip install openpyxl")
os.system("pip install robotframework")
os.system("pip install appium-python-client")
os.system("pip install uiautomator2")
os.system("pip install locust")
os.system("pip install flask")
os.system("pip install django")
os.system("pip install pillow")
os.system("pip install pandas")
os.system("pip install keyboard")
os.system("pip install python-jenkins")
os.system("pip install pyinstaller")
os.system("pip install python_docx")
os.system("pip install plotly")
os.system("pip install pyserial")
os.system("pip install pymysql")
os.system("pip install MySQLdb")
os.system("pip install mongodb")
os.system("pip install redis")
install_3rd_package() # 呼叫功能函式
os.system("pause") # 暫停并查看執行結果避免直接關閉
Python面向物件類形式
其實本案例Python批處理腳本形式實作即可,以下只是用于編程思維訓練,
- 以"一切皆可歸類"的思想, 先抽象化出一個類來,
類名一般建議用"名詞", 所以我們命名為"PackageInstaller",
代表包安裝器, 且一般要駝峰式(首字母大寫)來規范類的命名. - 養成良好的類的初始化(init)的習慣,
初始化程序中, 可以pass(什么都不做) - 這個PackageInstaller類, 目前需要一個截屏的函式(動作功能)就足夠了,
函式的命名一般建議用"動詞", 所以我們命名為: "install_package"這個各單元函式,
再定義一個批量函式"install_3rd_package", - 類是一個抽象的事物, 必須實體化成具體的物件后,
才能進行呼叫, 所以我們實體化并命名成了m_obj, 表明是一個物件, - 實體化成具體物件后, 物件就可以呼叫install_3rd_package這個函式了,
# coding=utf-8
import os
class PackageInstaller(object):
def __init__(self):
pass
def install_package(self, package_name):
os.system("pip install %s" % package_name)
def install_3rd_package(self):
self.install_package("requests")
self.install_package("httprunner")
self.install_package("selenium")
self.install_package("openpyxl")
self.install_package("robotframework")
self.install_package("appium-python-client")
self.install_package("uiautomator2")
self.install_package("flask")
self.install_package("django")
self.install_package("locust")
self.install_package("pillow")
self.install_package("pandas")
self.install_package("keyboard")
self.install_package("python-jenkins")
self.install_package("pyinstaller")
self.install_package("python_docx")
self.install_package("plotly")
self.install_package("pyserial")
self.install_package("pymysql")
self.install_package("MySQLdb")
self.install_package("mongodb")
self.install_package("redis")
if __name__ == '__main__':
m_obj = PackageInstaller() # 實體化一個物件
m_obj.install_3rd_package() # 該物件呼叫install_3rd_package函式
os.system("pause") # 暫停并查看執行結果避免直接關閉
運行方式與效果
以上代碼的3種實作形式都可以直接運行,比如保存為install_3rd_package.py并放在桌面,
建議python install_3rd_package.py運行,當然也可以雙擊運行,
小提示: 日常作業中,我們會碰到很多很多的比如開發人員,專案經理及其他測驗同仁等給到.bat的批處理腳本,不妨把他們轉成Python腳本,有利于將Python運用并解決實際測驗作業中遇到的問題,Python腳本也更有利于維護、擴展、及移植(到Linux系統環境),
更多更好的原創文章,請訪問官方網站:www.zipython.com
自拍教程(自動化測驗Python教程,武散人編著)
原文鏈接:https://www.zipython.com/#/detail?id=e5517f7c823c4092bb4ce668bb51c98a
也可關注“武散人”微信訂閱號,隨時接受文章推送,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/75670.html
標籤:Python
上一篇:Selenium中Chrome驅動無法獲取alert
下一篇:python練習001
