測開入門篇《環境管理、編碼規范、項目結構》


堅持原創輸出,點擊藍字關注我吧

作者:清菡
博客: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的時候自帶安裝的pytzsqlparse包,卸載的時候並沒有卸載。

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的一個封裝。

在環境里如果要卸載相關的依賴包,例如卸載requestsrequests下面有4個相關的依賴包。

這里卸載requests,會把requests下面依賴的包也會進行卸載。而virtualenv卸載的時候只會卸載requestsrequests對應的依賴它是不會卸載的。

卸載命令: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+原創文章,歡迎關注、交流,禁止第三方擅自轉載。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM