堅持原創輸出,點擊藍字關注我吧
作者:清菡
博客: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+原創文章,歡迎關注、交流,禁止第三方擅自轉載。
