一、Python - 知识点总结
1. Python常用基础知识1(标准数据类型)
Numbers(数字) |
类型
|
String(字符串) |
定义:字符串就是多个字符组成,字符可以是数字、字母、下划线 |
内置函数:
|
|
List(列表) |
形式:
|
访问:列表中的值b= ['hangzhou', 1, '2' ,True, False ,['a', 1,3]]
|
|
方法:
|
|
Tuple(元组) |
与列表的区别:
|
访问元组中的值(同列表):
|
|
Dictionary(字典) |
形式:
|
方法:
|
|
访问:
|
|
Set(集合) |
2. Python常用基础介绍2
1. 逻辑控制 |
1.1 真值计算:任何非零数字或非空对象都为真;数字零、空对象([]、{}、””)以及特殊对象None都被认为是假 |
1.2 布尔运算 : X or Y 如果X或Y是真,就是真 X and Y 如果X和Y都为真,就是真 not X 如果X是假,就是真 | |
1.3 比较运算符: ==,!=,>, <, >=, <= | |
1.4 条件测试:根据条件,判断真假 | |
1.5 if 语句:通用格式: if elif elif else 元运算符: b = x if y else z |
|
1.6 while 循环:通用格式:while else break:跳出最近所在的循环 continue:跳到最近所在循环的开头处 |
|
1.7 for循环: 通用格式:for else 举例:for item in 数组 /range(5) / 字符串 / 字典; for index,value in enumerate(my_string) |
|
1.8 闭包函数 | |
1.9 with语句(with as 语句):、自定义上下文管理器来对软件系统中的资源进行管理,比如数据库连接、共享资源的访问控制等: http://c.biancheng.net/view/5319.html http://c.biancheng.net/view/4817.html |
|
2.0 装饰器
|
|
2. 函数 |
2.1 格式:def 函数名(参数列表) 功能代码 return 返回值 |
2.2 参数 :
|
|
2.3 作用域
|
|
enumerate() 函数:https://www.runoob.com/python/python-func-enumerate.html isinstance() 函数:https://www.runoob.com/python/python-func-isinstance.html |
|
3 类 |
3.1 类定义:
|
3.2 简单例子
|
|
3.3 类变量和实例变量
|
|
3.4 访问属性:可以用.来访问对象属性;可以添加、删除、修改对象属性 |
|
3.5 继承属性:即一个派生类(derivedclass)继承基类(baseclass)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待 | |
3.6 多重继承:圆括号中父类的顺序,若是父类中有相同的方法名,而在子类使用时未指定,python从左至右搜索, 即方法在子类中未找到时,从左到右查找父类中是否包含方法 | |
4 模块 |
4.1 导入模块
|
4.2 脚本执行模块:模块既可以被其他脚本导入使用,也可以作为脚本直接执行;注意:如果模块是被导入,fib(20)则不会被执行 | |
4.3 模块的搜索路径 : import sys >>> sys.path | |
5 内置函数和内置模块 |
5.1 内置函数
|
5.2 常用内置模块
|
Python Console和Terminal:
- Python Console叫做Python控制台,即Python交互模式;Terminal叫做终端,即命令行模式。
- Python交互模式主要有两种:CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。
- Python交互式模式可以直接输入代码,然后执行,并立刻得到结果,因此Python交互模式主要是为了调试Python代码用的。
- 命令行模式与系统的CMD(命令提示符)一样,可以运行各种系统命令。
3. python常用模块使用
|
|
---|---|
1 requests的使用 |
http原理:https://juejin.im/post/5ac1eb2d6fb9a028de44dd414 http请求报文 1xx:指示信息--表示请求已接收,继续处理。 2xx:成功--表示请求已被成功接收、理解、接受。 3xx:重定向--要完成请求必须进行更进一步的操作。 4xx:客户端错误--请求有语法错误或请求无法实现。 5xx:服务器端错误--服务器未能实现合法的请求。 响应头部:set-cookie http请求行请求 1.http请求方法 HTTP/1.1 定义的请求方法有8种:GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS、TRACE 2.请求地址示例 3.协议版本 协议版本的格式为:HTTP/主版本号.次版本号,常用的有HTTP/1.0和HTTP/1.1 Form Data 当发起一次POST请求时,若未指定content-type,则默认content-type为application/x-www-form-urlencoded。即参数会以Form Data的形式进行传递,不会显式出现在请求url中 代码实现 data声明为字典格式即可 以下三种post请求方式等效 Request Payload JSON类型的POST请求(application/json),参数不会显示出现在请求url中 代码实现 第一种方式:将字典格式的data数据赋给post方法的json参数(会自动将字典格式转为合法的json并添加headers) 第二种方式:data声明为字典格式(方便数据添加修改),然后再用json.dumps()方法把data转换为合法的JSON字符串格式,同时需要在headers里声明我们发送的格式 第三种方式:data声明为严格的JSON格式字符串,里面必须用双引号等 Query String Parameters 参数会以url string的形式进行传递,即?后的字符串为其请求参数,并以&作为分隔符 代码实现 将data组织为字典格式,传给get方法的params参数 获取接口响应数据 Session保持登录状态 |
2 数据库操作 |
常用模块 |
3 异常处理 |
异常处理机制 可以让程序具有良好的容错性,让程序更加健壮 python的所有异常类的基类是BaseException,但是如果要实现自定义异常,应该继承Exception类或其子类 Python常见异常类之间的继承关系 使用try...excepttry...except捕获异常捕获异 1.当python解释器收到异常对象后,会寻找能处理该异常对象的except块,如果找到合适的except块,则把该异常对象交给except块处理,即捕获异常。如果找不到捕获异常的except块,则运行时环境终止,python解释器退出 2.异常捕获原则:先处理小异常,再处理大异常 3.当try块没有异常时会执行else块 4.不管try块中的代码是否出现异常,甚至再try块或except块中执行了return语句,finally块总会被执行 5.在异常处理语法结构中,try必需有,except和finally至少出现其一,且finally位于所有的except块之后 自定义异常 异常处理自定义异常自定义异常 |
4 文件读写 |
文件读写要考虑的问题: 1.文件路径 2.文件读写文件读写要考虑的问题:1.文件路径2.文件类型txt?excel?json?yml?...... 3.涉及的操作打开、读、写(覆写还是追加) 4.字符编码 文件路径的处理: 尽量不要写死!!如:E:\projects\xxx.txt 存在的问题:1.代码在别人电脑上未必是同样路径 2.Linux下与windows下路径分割符不同 txt读写——使用内置函数使用内置函数openop 1.read() 每次读取整个文件,它通常将读取到底文件内容放到一个字符串变量中,也就是说.read() 生成文件内容是一个字符串类型。 2.readline()每只读取文件的一行,通常也是读取到的一行内容放到一个字符串变量中,返回str类型。 3.readlines()每次按行读取整个文件内容,将读取到的内容放到一个列表中,返回list类型。 excel读写 模块的选择–openpyxl Python对Excel的处理模块小结 Workbook 处理工作薄 Worksheet 处理工作表 Cell 处理单元格 考虑因素: 1.平台 windows/linux? 2.Excel的兼容性xls/xlsx 2003/2007... ? 3.文档操作打开/新建/修改/保存? Openpyxl—常用操作常用操作 pandas |
5 日志输出 |
Logging模块模 1.日志级别 DEBUG < INFO < WARNING < ERROR < CRITICAL 2.模块级别的函数记录日志 3.logging日志模块四大组件 简单点说就是:日志器(logger)是入口,真正干活儿的是处理器(handler),处理器(handler)还可以通过过滤器(filter)和格式器(formatter)对要输出的日志内容做过滤和格式化等处理操作。 4.配置日志的几种方式 使用Python代码显式的创建loggers, handlers和formatters并分别调用它们的配置函数 创建一个日志配置文件,然后使用fileConfig()来读取该文件的内容 创建一个包含配置信息的dict,然后把它传递给dictConfig()函数 https://www.cnblogs.com/yyds/p/6885182.html |
4. 自动化基础和标准工程介绍
1 虚拟环境 |
Python中的虚拟环境 Python的包只能同时安装一个版本 多个项目有不同的依赖关系,且不同的依赖关系可能会冲突 为每个项目设置隔离的虚拟环境,避免互相冲突 |
Virtualenv 安装Virtualenv pip install virtualenv 测试安装 virtualenv --version 为一个工程创建虚拟环境,在工程目录下:virtualenv venv(虚拟环境名称) 激活虚拟环境,进入虚拟环境目录Scripts下:activate 退出虚拟环境:deactivate 使用环境 进入环境后,使用pip install安装包 |
|
Python3 venv 在当前目录创建虚拟环境 python –m venv 启用虚拟环境 执行activate.bat文件 使用虚拟环境 退出虚拟环境 执行deactivate.bat文件 |
|
2 自动化标准工程 |
标准工程目录示例 |
3 公共库 |
sdet_common 主要模块 字符或者字符串处理 数据处理模块 加密处理模块 |
4 Pytest介绍 |
Pytest是一个python测试框架 易读、易写、易运行、失败提示信息清晰 第三方插件丰富、能够自定义扩展 和Jenkins集成 Report框架allure支持pytest Pytest的下载和安装 安装 pip install –U pytest 验证安装 pytest --version Pytest命名规则 测试文件应当命名为test_<something>.py或者<something>_test.py 测试函数、测试类方法应当命名为test_<something> 测试类应当命名为Test<Something> Pytest运行 pytest pytest test_<something>.py Pytest运行单个测试文件时的控制台输出信息 Pytest运行时使用命令行选项 -k选项允许你使用表达式指定希望运行的测试用例 -m选项可以用表达式指定多个标记名 --lf(--last-failed)选项,当一个或多个测试失败时,能够定位到最后一个失败的测试用例重新运行 -v选项输出详细的测试信息,测试的名字和结果都会显示出来 --tb=style选项决定捕捉到失败时输出信息的显示方式 编写测试函数 断言 捕获异常 参数化 |
异常抛出 1.用pytest编写测试时,若需要传递测试失败信息,则可以直接使用python自带的assert关键字 2.在测试过程中,经常需要测试是否如期抛出预期的异常,以确定异常处理模块生效。在 pytest 中使用 pytest.raises() 进行异常捕获 3.由于某种原因,我们只想执行指定的测试函数,使用pytest.mark在函数上进行标记 ,测试时使用-m选择标记的测试函数使用 mark,我们可以给每个函数打上不同的标记,测试时指定 ,就可以允 许所有被标记的函数一个函数可以打多个标记;多个函数也可以打相同的标记 4.对于尚未开发完成的测试,最好的处理方式就是略过而不执行测试,Pytest使用pytest.mark.skip指定要跳过的测试,pytest 使用 s 表示测试被跳过(SKIPPED) 5.如果我们事先知道测试函数会执行失败,但又不想直接跳过,而是希望显示的提示 6.当对一个测试函数进行测试时,通常会给函数传递多组参数。比如测试账号登陆,我们需要模拟各种千奇百怪的账号密码 |
|
5 Fixture |
fixture是一些函数,pytest会在执行测试函数之前(或之后)加载运行它们 fixture中的代码可以定制 pytest使用conftest.py文件集中管理fixture 预处理和后处理 fixture的作用是为了抽离出重复的工作和方便复用,为了更精细化控制fixture(比如只想对数据库访问测试脚本使用自动连接关闭的fixture),pytest 使用作用域来进行指定fixture的使用范围 在定义fixture时,通过 scope 参数声明作用域,可选项有: function: 函数级,每个测试函数都会执行一次fixture; class: 类级别,每个测试类执行一次,所有方法都可以使用; module: 模块级,每个模块执行一次,模块内函数和方法都可使用; session: 会话级,一次测试只执行一次,所有被找到的函数和方法都可用 最简单使用fixture方式是作为测试函数参数 执行结果可以清楚看到各fixture的作用域和执行顺序 重命名 |
6 常用插件 |
pytest-xdist:并行运行测试用例 |
7 项目自动化 |
|