做者:清菡
博客:oschina、雲+社區、知乎等各大平臺都有。python
測試平臺是作什麼的?
linux
測試開發研發的測試平臺是給點點點的人用的,能夠幫助咱們作自動化測試、用例管理、報表生成等,提升測試工做效率。git
例如用市面上的postman作的一些測試,不符合公司項目的實際。可是自動化測試平臺能夠根據公司實際項目需求作定製化開發。github
Python環境:python3.7是python3裏面目前最穩定的一個版本,3以上的版本都沒有問題。web
電腦:Windows10家庭版算法
Python虛擬環境的主要目的是:爲了給不一樣的工程建立互相獨立的運行環境。在虛擬環境下,每個工程都有本身的依賴包,而與其它的工程無關。sql
不一樣的虛擬環境中同一個包能夠有不一樣的版本。而且,虛擬環境的數量沒有限制,咱們能夠輕鬆地用virtualenv或pipenv等工具來建立多個虛擬環境。shell
1.pip 安裝 virtualenvdjango
pip install virtualenv
json
2.pip安裝虛擬環境管理包
pip install virtualenvwrapper-win
(這個是windows下的管理工具)
注意:若是是用的mac或者在linux上安裝,直接pip install virtualenvwrapper
便可。
3.建立一個存放虛擬環境的目錄(建議命名爲.env或者.virtualenv,也能夠叫其它名字,注意不要中文命名)。
4.配置環境變量(變量名:WORKON_HOME
,值:上面建立的目錄路徑)
查看電腦中的虛擬環境,輸入workon
,會顯示全部的虛擬環境:
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
安裝django的時候,會把django相關的依賴包都安裝下來。安裝django的時候自帶安裝的pytz
和sqlparse
包,卸載的時候並無卸載。
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算法將包的名稱和版本,及依賴關係生成哈希值,能夠保證包的完整性。
我這裏是前面已經安裝過了。裝好以後,不須要配置環境變量,直接就能夠用了。
在工程裏建立虛擬環境,直接在工程裏面輸入pipenv install
這裏默認的是python37,因此使用默認的python37解釋器建立虛擬環境。
在虛擬環境中安裝模塊或者包 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 |
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確定有這個文件。
requirements.txt文件,裏面記錄了當前程序的全部依賴包及版本號。
其做用是用來在另外一個環境上從新構建項目所須要的運行環境依賴。
導出當前環境到requirements.txt | pip freeze > requirements.txt |
---|---|
使用requirements.txt恢復環境 | pip install -r requirements.txt |
拿到這個文件,也能夠恢復到服務器上去。
pipenv能夠經過Pipfile和Pipfile.lock文件進行環境恢復。也能夠經過requirements.txt
進行環境恢復。
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文件。
若是沒進入虛擬環境,就沒有相關的依賴包,啓動項目就啓動不了。
文檔地址(中文):
https://blog.csdn.net/ratsniper/article/details/78954852
文檔地址:
https://github.com/qiuxiang/pep/blob/master/peps/257.md
文檔地址:
https://www.python.org/dev/peps/pep-0020/
重點:
調整代碼格式:Ctrl+Alt+L
註釋:
模塊和包相關規範:
命名規範:
代碼要寫得簡潔明瞭,項目裏面的結構也得簡潔明瞭,別人點開項目文件就知道哪一個文件裏面放的什麼東西。
一個項目裏確定有其它的文件夾,可是一個項目裏有這些文件夾,顯得規範一些,哈哈哈。
公衆號 "清菡軟件測試" 首發,更多原創文章:清菡軟件測試 105+原創文章,歡迎關注、交流,禁止第三方擅自轉載。