測開入門篇《環境管理、編碼規範、專案結構》
堅持原創輸出,點選藍字關注我吧
作者:清菡
部落格:oschina、雲+社群、知乎等各大平臺都有。
目錄
一、前提準備 二、虛擬環境 1.virtualenv的安裝和應用 2.pipenv的安裝和使用 3.匯出虛擬環境為requirements.txt檔案 4.pipenv的相關使用命令 5.需要在虛擬環境中起專案
三、Python程式碼規範 四、工程結構化
測試平臺是做什麼的?
測試開發研發的測試平臺是給點點點的人用的,可以幫助我們做自動化測試、用例管理、報表生成等,提高測試工作效率。
例如用市面上的postman做的一些測試,不符合公司專案的實際。但是自動化測試平臺可以根據公司實際專案需求做定製化開發。
一、前提準備
Python環境:python3.7是python3裡面目前最穩定的一個版本,3以上的版本都沒有問題。
電腦:Windows10家庭版
二、虛擬環境
Python虛擬環境的主要目的是:為了給不同的工程建立互相獨立的執行環境。在虛擬環境下,每一個工程都有自己的依賴包,而與其它的工程無關。
不同的虛擬環境中同一個包可以有不同的版本。並且,虛擬環境的數量沒有限制,我們可以輕鬆地用virtualenv或pipenv等工具來建立多個虛擬環境。
1.virtualenv的安裝和應用
(windows)安裝步驟:
1.pip 安裝 virtualenv
pip install virtualenv
2.pip安裝虛擬環境管理包
pip install virtualenvwrapper-win
(這個是windows下的管理工具)
注意:如果是用的mac或者在linux上安裝,直接pip install virtualenvwrapper
即可。
3.建立一個存放虛擬環境的目錄(建議命名為.env或者.virtualenv,也可以叫其它名字,注意不要中文命名)。
4.配置環境變數(變數名:WORKON_HOME
,值:上面建立的目錄路徑)
檢視電腦中的虛擬環境,輸入workon
,會顯示所有的虛擬環境:
建立虛擬環境有一些命令,virtualenv的使用命令:
wokon | 列出所有的虛擬環境 |
---|---|
workon[name] | 進入指定的虛擬環境 |
deactivate | 退出當前的虛擬環境 |
mkvirtualenv[name] | 建立虛擬環境 |
rmvirtualenv[name] | 刪除虛擬環境 |
包安裝:
虛擬環境中,安裝對應的依賴包,進入虛擬環境直接使用pip install
進行安裝。
mkvirtualenv -p python3 qinghan
如果電腦裡只安裝了python3,那麼直接輸入mkvirtualenv qinghan
後面你看到多了這個虛擬環境名,建立虛擬環境後會自動進入虛擬環境裡面。
先輸入exit();
再輸入deactivate
進入某個虛擬環境,可以這樣輸入:例如workon qinghan
刪除某個虛擬環境,可以這樣輸入:rmvirtualenv tester
輸入pip list
可檢視當前電腦已安裝的python相關的依賴包。
檢視虛擬環境中有多少依賴包:
先輸入workon qinghan
再輸入pip list
在qinghan這個虛擬環境中安裝一個django包:
pip install django
這個包在其它虛擬環境中是看不到的,獨立隔開的。
解除安裝包pip uninstall django
使用virtualenv這個管理工具有個缺點:
安裝django的時候,會把django相關的依賴包都安裝下來。安裝django的時候自帶安裝的pytz
和sqlparse
包,解除安裝的時候並沒有解除安裝。
2.pipenv的安裝和使用
pipenv集成了pip,virtualenv兩者的功能,且完善了兩者的一些缺陷。
過去用virtualenv管理requirements.txt檔案可能會有問題,Pipenv使用Pipfile和Pipfile.lock。
Pipfile檔案用來記錄專案依賴包列表,Pipfile.lock檔案記錄了固定版本的詳細依賴包列表,檢視依賴關係是十分方便。
支援python2和python3。支援mac,win,linux,在各個平臺的命令都是一樣的。各個地方使用了雜湊校驗,無論安裝還是解除安裝包都十分安全。
安裝:pip install pipenv
建立虛擬環境
第一步建立資料夾 | mkdir py3env |
---|---|
第二步進入資料夾 | cd py3env |
第三步初始化虛擬環境 | pipenv install |
建立好虛擬環境後會生成:一個Pipfile檔案和一個Pipfile.lock。
專案提交時,可將Pipfile檔案和Pipfile.lock檔案一併提交,待其他開發克隆下載。
Pipfile.lock檔案是通過hash演算法將包的名稱和版本,及依賴關係生成雜湊值,可以保證包的完整性。
Pycharm會自動定位到當前工程的路徑下面:
我這裡是前面已經安裝過了。裝好之後,不需要配置環境變數,直接就可以用了。
在工程裡建立虛擬環境,直接在工程裡面輸入pipenv install
這裡預設的是python37,所以使用預設的python37直譯器建立虛擬環境。
pipenv管理模組和包
在虛擬環境中安裝模組或者包 pipenv install 包名
(注意在當前專案路徑下執行以上命令)
通過–-dev
指明只安裝在開發環境中(開發環境是你當前開發的環境,生產環境是上線部署的實際環境)
pipenv install requests --dev
安裝包記錄是在[dev-packages]部分,或是[packages]部分。
在安裝時,指定–-dev
引數,則只安裝[dev-packages]下的包;若安裝時不指定–-dev
引數,只會安裝[packages]包下面的模組。
解除安裝虛擬環境的模組包 | pipenv uninstall 包名 |
---|---|
檢視安裝包及依賴關係 | pipenv graph |
生成requirements.txt檔案 | pipenv lock -r --dev > requirements.txt |
通過requirements.txt安裝環境 | pipenv install -r requirements.txt |
pipenv install有3個作用:
1.當前路徑下不存在虛擬環境,它就建立虛擬環境。
2.pipenv install 相關模組名
,比如pipenv install requests
那麼它就是安裝一個requests模組的意思。
3.url = "https://pypi.org/simple"
是國外源,需換成Python國內源:清華大學源https://pypi.tuna.tsinghua.edu.cn/simple
現在安裝個包:pipenv install requests
安裝的時候,會預設把安裝的包記錄在[packages]下面:
如果想安裝某個包只想在開發環境下用,不想放在[packages]下面,可以放在[dev-packages]下面,可通過--dev
指定一下:
一個Pipfile檔案和一個Pipfile.lock這兩個檔案,是用來記錄當前環境下的相關的依賴包的,以及在伺服器上恢復環境用的。
Pipfile.lock這個檔案記錄的更完整,比如在虛擬環境中安裝了requests
了,但是requests
有依賴其它的包嗎?那就記錄在Pipfile.lock檔案裡面。Pipfile.lock這個檔案不可隨意修改!
Pipfile.lock檔案這個記錄的很準確很詳細:
比如在這個工程下開發了一個專案,那麼接下來要把這個專案部署到伺服器裡面,Pipfile.lock檔案和專案程式碼一起傳到伺服器上面去。
在伺服器上通過Pipfile.lock檔案可以恢復當前開發的環境,通過對應的命令可以進行恢復。
在哪個路徑下執行pipenv
這個命令,那麼就預設在哪個路徑下面建立虛擬環境。
Pipfile檔案中這裡是可以修改的:
安裝的包,要在伺服器上用的話,那就裝在[packages]裡,如果只是開發環境用的話就裝在[dev-packages]
= "*"
這個不用管什麼意思。
要在class_01day資料夾裡面再建立一個虛擬環境,把Pipfile檔案和Pipfile.lock檔案複製過來。把專案上傳到伺服器的時候,同樣也把這2個檔案拿到伺服器裡面來。
比如伺服器下面的工程是class_01day,是伺服器下面專案的一個路徑。
在伺服器下面恢復當前程式碼執行的環境,進入路徑下面,執行命令pipenv install
建立個虛擬環境就可以了。
注意:不是隻複製這2個檔案就行了啊。要把專案程式碼和這2個檔案一起傳過去。通過這2個檔案可以把開發時候的所有的環境恢復到伺服器上面。
檢視當前虛擬環境下已經安裝好的依賴包:
pipenv graph
開發環境裡面的包是不會恢復進去的。
之前在test_01資料夾下的Pipfile檔案裡手動新增的flask = "*"
。
在把這2個檔案複製到python_ck01資料夾下,恢復的時候會自動化安裝[packages]下面的包。
也可以把[dev-packages]的包恢復進來,輸入命令pipenv install --dev
pipenv這個工具比virtualenv強大一些。pipenv是對virtualenv的一個封裝。
在環境裡如果要解除安裝相關的依賴包,例如解除安裝requests
。requests
下面有4個相關的依賴包。
這裡解除安裝requests
,會把requests
下面依賴的包也會進行解除安裝。而virtualenv解除安裝的時候只會解除安裝requests
,requests
對應的依賴它是不會解除安裝的。
解除安裝命令:pipenv uninstall requests
一個虛擬環境只能裝一個requests
。
requests和依賴包的關係,requests是依賴這些模組實現的:
只能通過graph這個看,不能通過json檔案看。
解除安裝requests
後,它的相關依賴是儲存下來了,這些包掉到外面來。
但是將這2個檔案拷貝到伺服器裡面去,在恢復的時候,那麼它所依賴的包是不會恢復進去的。
如果使用virtualenv這個工具,virtualenv也可以把虛擬環境匯出來。
比如把requests解除安裝了,用virtualenv匯出來的相關環境,去伺服器上進行恢復的時候,requests雖然沒有了,但是requests下面的依賴包也會恢復進去。
匯出virtualenv相關的依賴包,可以匯出一個requirements.txt檔案,用的virtualenv肯定有這個檔案。
3.匯出虛擬環境為requirements.txt檔案
requirements.txt檔案,裡面記錄了當前程式的所有依賴包及版本號。
其作用是用來在另一個環境上重新構建專案所需要的執行環境依賴。
匯出當前環境到requirements.txt | pip freeze > requirements.txt |
---|---|
使用requirements.txt恢復環境 | pip install -r requirements.txt |
拿到這個檔案,也可以恢復到伺服器上去。
pipenv可以通過Pipfile和Pipfile.lock檔案進行環境恢復。也可以通過requirements.txt
進行環境恢復。
4.pipenv的相關使用命令
pipenv –rm | 刪除虛擬環境 |
---|---|
pipenv –where | 列出本地工程路徑 |
pipenv –venv | 列出虛擬環境路徑 |
pipenv –py | 顯示Python直譯器資訊 |
pipenv graph | 檢視包依賴 |
pipenv lock | 生成lock檔案 |
pipenv –rm | 刪除虛擬環境 |
pipenv shell | 直接進入虛擬環境 |
exit | 退出虛擬環境 |
pipenv是對virtualenv的封裝。pipenv的底層還是virtualenv和pip實現的。 pipenv集成了virtualenv和pip兩個工具。
virtualenv只能通過requirements.txt進行環境恢復。
通過virtualenv,不用看當前所在的路徑,通過命令操作所有的虛擬環境。
通過pipenv,這個命令只能操作當前所在目錄下的虛擬環境。
刪除完虛擬環境,Pipfile和Pipfile.lock檔案以及資料夾不會被刪除,需要我們手動來刪除。
通過virtualenv建立的可以這樣刪除:
rmvirtualenv fff
通過pipenv --where
列出當前虛擬環境所在的目錄。
虛擬環境是存放在virtualenv下面的。檢視當前虛擬環境存放在哪,輸入命令pipenv --venv
解除安裝了某些包,可以通過pipenv lock
這個命令重新生成lock檔案。
現在這個lock檔案是同步生成的。如果把lock檔案刪除了,可以通過這個命令生成lock檔案。
5.需要在虛擬環境中起專案
如果沒進入虛擬環境,就沒有相關的依賴包,啟動專案就啟動不了。
三、Python程式碼規範
1.pep8(python程式碼樣式規範)
文件地址(中文):
https://blog.csdn.net/ratsniper/article/details/78954852
2.pep257 (python文件字串相關的約定):
文件地址:
https://github.com/qiuxiang/pep/blob/master/peps/257.md
3.pep20(python程式碼的理念):
文件地址:
https://www.python.org/dev/peps/pep-0020/
重點:
調整程式碼格式:Ctrl+Alt+L
註釋:
模組和包相關規範:
命名規範:
四、工程結構化
程式碼要寫得簡潔明瞭,專案裡面的結構也得簡潔明瞭,別人點開專案檔案就知道哪個檔案裡面放的什麼東西。
結構介紹:
一個專案裡肯定有其它的資料夾,但是一個專案裡有這些資料夾,顯得規範一些,哈哈哈。
公眾號 "清菡軟體測試" 首發,更多原創文章:清菡軟體測試 105+原創文章,歡迎關注、交流,禁止第三方擅自轉載。