写点什么

Python 自动化测试之模块、包与路径知识讲解

作者:伤心的辣条
  • 2022 年 6 月 14 日
  • 本文字数:2773 字

    阅读完需:约 9 分钟

Python自动化测试之模块、包与路径知识讲解

一、前言

小伙伴们,大家好呀,最近这几天因为端午假期的原因,有三天没有更文了,今天呢还是接着 python 基础来讲,这篇文章主要讲解 Python 中模块、包以及路径的相关知识点内容,是自动化测试框架设计的基础铺垫。


二、模块与包的知识合集


2.1 模块与包的定义


2.1.1 模块定义


模块(Module):Python 模块就是一个 Python 文件,以.py 结尾的文件,我们称之为模块,包含了 Python 对象定义和 Python 语句。



2.1.2 包的定义


包(Package):Python 中的包与我们平常所创建的文件夹不同,Python 包创建完成后包含一个__init__.py 文件的目录(文件夹)。


包的命名同变量、模块一样,都需要遵守标识符规则,这点需要注意。




2.2 模块与包的作用


2.2.1 模块的作用


模块的作用主要有以下几点:


1、模块能够让你更有逻辑的组织你的代码 2、把相关功能的代码写到一个模块里,能让你的代码使用更便捷、高效,并有一定的易读性 3、模块能定义函数、类、变量等等,模块中包含可执行的代码


2.2.2 包的作用


对于包而言,这个时候肯定会有疑问,那么__init__的作用是什么,其实是 Python 包的一个规则,它是根据这个文件来判断出这是一个 Python 包的,如果 Python 包中没有__init__这个文件,那么在后续导包时会出现模块、路径找不到的情况,故此我们需要保留__init__。如果我们新建一个文件夹,在文件夹里在新建一个__init__,那么 Python 将会自动识别为 Python 包:




2.3 包与模块的导入调用


2.3.1 模块调用


因为模块能够更好的组织代码,故此也会对代码进行一个模块划分,例如测试用例放在 excel 中,excel 放在测试用例的目录下,日志系统则放在日志的 py 文件中,放在日志的 Python 包下,道理是一样,相类似的功能都会分开进行管理,我们在 A 模块中需要使用 B 模块的内容,就需要进行模块调用,下面的示例需要从 main 模块调用 Demo 模块的函数,结构与示例如下:




如下示例所示,这样我们就成功的从 main 模块调用了 Demo 模块的 number 函数并可以在 main 模块中使用它:

# 导入: from 包名.模块名 import 函数名 / 变量 /...from Pkg_1.Demo import number
number()
复制代码



2.3.2 包的导入


一个包导入的路径我们可以通过 sys.path 来进行确认,导包 from 后面的路径是从 sys.path 当中截取的。

通常包括了项目目录、Python 安装目录以及 Python 虚拟环境:

import pprintimport syspprint.pprint(sys.path)
复制代码




在上图中我们可以看到,没有 Demo.py,那么就意味着,我们不能够直接 from Demo.py,因为系统无法识别找到:



2.3.3 模块与包导入方式


模块与包的导入方式主要有以下几个内容:


"""导入的几种方式:import *import ...import asfrom ... import *from ... import ...from ... import ... as ..."""

"""常用的主要有from import导入以及import的导入方式:import * 了解即可,切记不可在真实项目中使用!! import * 代表的含义是导入sys.path下所有的模块、函数、变量... from ... import * 导入某个包 / 文件 下面的所有内容,尽量避免使用,同样也是了解即可import ... 通常是导入一个模块,内置模块或者第三模块(需要先行安装才可使用),以此来使用
from ... import ... as ... as是给一个别名,A模块与B模块中有函数、变量名冲突等,那么给个别名,就可以通过别名进行调用,防止名称重复
特别注意:import导入不能直接导入函数,需要使用from的方式导入,import只能导入包和模块

"""
复制代码


2.3.4 安装三方模块


我们知道 Python 有内置模块,当我们需要实现一些功能,但 Python 内置模块没有时则需要导入三方模块,导入后即可使用对应功能,简易信息如下所示:


"""第三方模块的安装是在命令行进行的,格式为:pip install 三方模块名
安装方式1: pip install requests安装方式2:通过PyCharm中的Settings可以直接进行设置安装(不详细说明,大家可以自行百度,普遍推荐第一种命令安装方式)
如果不进行三方模块的安装,直接进行导入,那么是无法导入的,输入后会报红色波浪线(报错)"""
复制代码


2.3.5 国内镜像源


在安装时因为国内的下载速度有时候会比较慢,那么我们可以使用镜像源来提高加快下载速度,任意选择一种即可,笔者通常会使用清华、阿里云镜像源,我们可以一次性通过 Settings 进行永久设置:

"""镜像源合集:清华:https://pypi.tuna.tsinghua.edu.cn/simple阿里云:http://mirrors.aliyun.com/pypi/simple/中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/华中理工大学:http://pypi.hustunique.com/山东理工大学:http://pypi.sdutlinux.org/ 豆瓣:http://pypi.douban.com/simple/"""
复制代码





三、路径知识合集


3.1 路径处理


在 Python 中 os 模块是专门用来处理路径的,os 模块中有很多方法能够让我们通过代码实现对目录的增删改查,详见下列表格,前三个加粗格式的方法是常用方法需要掌握,其他方法在自动化测试领域中使用较少,了解即可:



路径有两种概念,相对路径和绝对路径,表格如下:



代码展示如下,代码中只列举了在自动化测试中会使用到的一些路径处理方式,大家需要掌握,其他方式了解即可,需要使用时可以查看对应的表格说明:


# __file__,当前的文件路径print(f"当前路径为:  {__file__}")
# 导入os模块import os
# 获取当前文件的绝对路径,"."点代表的意思是当前目录cwd = os.path.abspath('.')print(f"该文件的绝对路径为: {cwd}")
# 获取路径的目录dir_name = os.path.dirname(cwd)print(f"路径的目录为: {dir_name}")
# 路径拼接,这里只是拼接了路径,纯展示new_dir1 = os.path.join(dir_name, "正在拼接")print(new_dir1)
# 路径拼接举例2,这里文件举例,这样也只是纯展示而已,并不会新创建一个文件,如果想新创建文件,我们需要用到open函数new_dir2 = os.path.join(dir_name, "new_file.txt")print(new_dir2)
# 创建路径下的文件f = open("new_file.txt", encoding="utf-8", mode="w")f.close()
复制代码

四、总结


今天的分享就到这里啦,喜欢的可以点赞收藏评论加关注哟,关注我每天给你不同的惊喜哟。



最后: 可以在公众号:伤心的辣条 ! 自行领取一份 216 页软件测试工程师面试宝典文档资料【免费的】。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux 必备、Shell、互联网程序原理、Mysql 数据库、抓包工具专题、接口测试工具、测试进阶-Python 编程、Web 自动化测试、APP 自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。


学习技术千万不要孤军奋战,最好是能抱团取暖,相互成就一起成长,群众效应的效果是非常强大的,大家一起学习,一起打卡,会更有学习动力,也更能坚持下去。你可以加入我们的测试技术交流扣扣群:746506216(里面有各种软件测试资源和技术讨论)


喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

发布于: 刚刚阅读数: 4
用户头像

一个乐于分享技术的测试人... 2022.03.18 加入

公众号:【伤心的辣条】主要分享测试的学习资源,帮助快速了解测试行业,帮助想转行、进阶、小白成长为高级测试工程师。

评论

发布
暂无评论
Python自动化测试之模块、包与路径知识讲解_Python_伤心的辣条_InfoQ写作社区