热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

测开入门篇《环境管理、编码规范、项目结构》

坚持原创输出,点击蓝字关注我吧作者:清菡博客:oschina、云+社区、知乎等各大平台都有。目录一、前提准备二、虚拟环境1.virtualenv的安装和应用2.pipenv的安装和


坚持原创输出,点击蓝字关注我吧





作者:清菡


博客: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+原创文章 ,欢迎关注、交流,禁止第三方擅自转载。




推荐阅读
author-avatar
mobiledu2502926597
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有