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




推荐阅读
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 在Python开发过程中,随着项目数量的增加,不同项目依赖于不同版本的库,容易引发依赖冲突。为了避免这些问题,并保持开发环境的整洁,可以使用Virtualenv和Virtualenvwrapper来创建和管理多个隔离的Python虚拟环境。 ... [详细]
  • Startup 类配置服务和应用的请求管道。Startup类ASP.NETCore应用使用 Startup 类,按照约定命名为 Startup。 Startup 类:可选择性地包括 ... [详细]
  • 本文详细介绍了IBM DB2数据库在大型应用系统中的应用,强调其卓越的可扩展性和多环境支持能力。文章深入分析了DB2在数据利用性、完整性、安全性和恢复性方面的优势,并提供了优化建议以提升其在不同规模应用程序中的表现。 ... [详细]
  • 优化联通光猫DNS服务器设置
    本文详细介绍了如何为联通光猫配置DNS服务器地址,以提高网络解析效率和访问体验。通过智能线路解析功能,域名解析可以根据访问者的IP来源和类型进行差异化处理,从而实现更优的网络性能。 ... [详细]
  • 本文详细分析了JSP(JavaServer Pages)技术的主要优点和缺点,帮助开发者更好地理解其适用场景及潜在挑战。JSP作为一种服务器端技术,广泛应用于Web开发中。 ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • 在计算机技术的学习道路上,51CTO学院以其专业性和专注度给我留下了深刻印象。从2012年接触计算机到2014年开始系统学习网络技术和安全领域,51CTO学院始终是我信赖的学习平台。 ... [详细]
  • CMake跨平台开发实践
    本文介绍如何使用CMake支持不同平台的代码编译。通过一个简单的示例,我们将展示如何编写CMakeLists.txt以适应Linux和Windows平台,并实现跨平台的函数调用。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • Composer Registry Manager:PHP的源切换管理工具
    本文介绍了一个用于Composer的源切换管理工具——Composer Registry Manager。该项目旨在简化Composer包源的管理和切换,避免与常见的CRM系统混淆,并提供了详细的安装和使用指南。 ... [详细]
  • 解决Linux系统中pygraphviz安装问题
    本文探讨了在Linux环境下安装pygraphviz时遇到的常见问题,并提供了详细的解决方案和最佳实践。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 本文详细介绍了 iBatis.NET 中的 Iterate 元素,它用于遍历集合并重复生成每个项目的主体内容。通过该元素,可以实现类似于 foreach 的功能,尽管 iBatis.NET 并未直接提供 foreach 标签。 ... [详细]
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社区 版权所有