python
文章平均质量分 52
日常使用学习Python的笔记
易爻64
总结整理,避免重复踩坑!
展开
-
UML类图简单解析
文章目录前言工具类图表示法类的表示方式接口的表示方式类图中的关系泛化(继承关系)实现(实现关系)关联(关联关系)聚合(聚合关系)组合(组合关系)依赖(依赖关系)参考文档前言类图(Class diagram)主要用于描述系统的结构化设计。类图也是最常用的UML图,用类图可以显示出类、接口以及它们之间的静态结构和关系。可以帮助我们快速理理清楚业务概念以及它们的关系,如果能用好类图,你将能深入地剖析系统业务。工具Visio : Windows操作系统下运行的流程图软件, Microsoft Office软原创 2022-05-09 14:28:45 · 2444 阅读 · 0 评论 -
gc垃圾回收模块
文章目录前言参考文章前言显示的垃圾回收机制,后续再学到垃圾回收时详细的在看下参考文章https://blog.csdn.net/qq_38260497/article/details/87879064原创 2022-04-30 23:41:59 · 301 阅读 · 0 评论 -
tempfile模块
文章目录前言常用方法参考文章前言应用程序经常要保存一些临时的信息,这些信息不是特别重要,没有必要写在配置文件里,但又不能没有,这时候就可以把这些信息写到临时文件里。其实很多程序在运行的时候,都会产生一大堆临时文件,有些用于保存日志,有些用于保存一些临时数据,还有一些保存一些无关紧要的设置。在windows操作系统中,临时文件一般被保存在这个文件夹下:C:/Documents and Settings/User/Local Settings/Temp。其实我们最常用的IE浏览器在浏览网页的时候,会产生大量原创 2022-04-30 23:36:13 · 1121 阅读 · 0 评论 -
atexit模块
文章目录前言实现原理常用方法register标准语法应用举例参考文章前言atexit模块很简单,只定义了一个register函数用于注册程序退出时的回调函数,我们可以在这个回调函数中做一些资源清理的操作。如果程序是非正常crash,或者通过os._exit()退出,注册的回调函数将不会被调用。实现原理我们也可以通过sys.exitfunc来注册回调,但通过它只能注册一个回调,而且还不支持参数。所以建议大家使用atexit来注册回调函数。但千万不要在程序中同时使用这两种方式,否则通过atexit原创 2022-04-30 22:38:16 · 421 阅读 · 0 评论 -
subprocess
文章目录前言核心内容runPopen参考文档前言该模块允许我们启动一个新进程,并连接到它们的输入/输出/错误管道,从而获取返回值,在替代其他几个老的模块或者函数,比如:os.system os.spawn* os.popen* popen2.* commands.*核心内容run模块首先推荐使用的是它的 run 方法,更高级的用法可以直接使用 Popen 接口。subprocess.run(args, *, input=None,stdin=None, stdout=None, stderr=原创 2022-04-29 23:45:12 · 322 阅读 · 0 评论 -
python-ldap模块
文章目录Python语言提供的Python-Ldap框架,来操作和管理AD/LDAP中的用户,组织结构等,希望对大家有所帮助pip install python-ldap原创 2022-03-06 13:04:39 · 4221 阅读 · 0 评论 -
paramiko模块
文章目录模块简介下载安装应用实例开启SSH端口模块简介paramiko是一个用于做远程控制的模块,使用该模块可以对远程服务器进行命令或文件操作,值得一说的是,fabric和ansible内部的远程管理就是使用的paramiko来现实。下载安装pip3 install paramiko应用实例SSHClient 用于连接远程服务器并执行基本命令import paramiko# 创建SSH对象ssh = paramiko.SSHClient()# 允许连接不在know_hosts文原创 2021-12-27 23:43:32 · 90 阅读 · 0 评论 -
如何定位一闪而过的元素
定位一闪而过的元素:方式1,暂停页面:F12 -> Source -> 触发元素 -> 暂停按钮方式2 降低网速后,暂停页面:F12 -> 点击Network -> 选择 节流模式(也可以自定义)调低网速然后同方式1,触发弹框后再定位元素...原创 2021-11-01 00:17:50 · 1128 阅读 · 0 评论 -
使用python3自带的HTTP服务器分享文件
在linux机器上执行如下命令,启动http服务# 需要先安装python3python3 -m http.server 9999HTTP启动成功前端访问截图原创 2021-10-29 19:20:51 · 116 阅读 · 0 评论 -
allure报告添加环境配置(environment)
在 allure 报告首页 ENVIRONMENT 显示 ‘There are no environment variables’ 没有环境变量的配置信息。环境变量配置可以添加报告相关的配置参数,如运行的系统环境,版本号,测试环境,测试人员等基本信息environment 配置文件方法一:environment.properties 文件在allure的report根目录下添加一个 environment.properties 文件,配置文件不能放置中文,否则会出现乱码System=MACPyt原创 2021-10-19 14:14:39 · 3361 阅读 · 0 评论 -
allure.step()添加测试步骤
添加步骤的两种方式with allure.step(“step:步骤”) 这种方式代码可读性更好一点,但不会带上函数里面的传参和对应的值@allure.step(“step:步骤”) 这种方式会带上函数的传参和对应的值。原创 2021-10-19 00:01:16 · 1137 阅读 · 0 评论 -
pytest参数化结合allure.title()生成自定义用例描述
参数化(parametrize)可以实现测试数据和测试脚本完全分离,便于测试的维护和扩展如何在测试报告中展示参数化的用例:pytest可以在参数化的时候加 ids 参数对每个用例说明使用场景allure.title() 可以接收测试数据中的参数对每个用例说明使用场景,用例说明可以同测试维护在一起,数据可以一次性读取,更加方便测试脚本新增测试文件:test_parametrize.py#!/usr/bin/env python# -*- coding: utf-8 -*-# @File原创 2021-10-10 00:38:38 · 960 阅读 · 0 评论 -
python中的深浅拷贝
基础数据类型的赋值、深浅拷贝结论:对基础数据类型而言无论是赋值还是深浅拷贝,都是给变量建立一个到具体指的参照Python 存储变量的方法跟其他 OOP 语言不同。它与其说是把值赋给变量,不如说是给变量建立了一个到具体值的 reference。当在 Python 中 a = 1 应该理解为给 1 贴上了一个标签 a。当再赋值给 a 的时候,就好象把 a 这个标签从原来的 1 上拿下来,贴到其他对象上,建立新的 reference。>>> import c>>> a原创 2021-07-04 14:39:52 · 64 阅读 · 0 评论 -
python后台运行-nohup
在终端运行python脚本时,如果脚本需要长时间运行,则终端不能关闭或者断网,否则运行的程序就会中断。此时就需要在linux后台启动进程。示例如下:nohup python my.py >> /usr/local/python/xxf/my.log 2>&1 &nohup tomcat.sh > /dev/null 2>&1 &nohup命令nohup指不断地运行,是no hang up的缩写,指不间断,不挂断。运行一个进程的时候,原创 2021-06-17 00:13:37 · 978 阅读 · 0 评论 -
pytest基本应用
这两天看了一下pytest资料,发觉unittest确实………………, 这两天看下觉得要比java语言的testNg还要好用。所以写一篇文档做下记录,方便用的时候可以随时找到参考样例。pytest安装# 一般情况都是模式安装最新版的,对于特殊有版本依赖的可以使用package==版本号来指定版本pip install pytest -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn原创 2020-12-11 00:00:30 · 322 阅读 · 0 评论 -
python多线程比单线程效率低的原因及其解决办法
python多线程比单线程效率低的原因是:GILpython中有一个 GIL( Global Interpreter Lock),中文为:全局解释器锁 - 最开始时候设计GIL是为了数据安全。python为了数据安全设计了这个 GIL - 每个 CPU在同一时间只能执行一个线程 - 在单核 CPU下的多线程其实都只是并发,不是并行,并发和并行从宏观上来讲都是同时处理多路请求的概念。 但并发和并行又有区别,并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔内发生) 在原创 2021-06-10 21:20:34 · 7209 阅读 · 2 评论 -
Mysq批量快速插入blob类型的数据
工作需要往数据库中插入10条用户数据。由于用户信息部分的数据在mysql中存储的格式是blob,之前没有往数据库中插入过类似这个字段,在此记录下处理过程:1、通过数据库插入,由于不会插入blob类型的字段,故放弃;2、想通过用jmeter设置多个线程调用接口往数据库中插入,但是再实际执行过程中,当数据插入到2万条左右时,平均每个请求的响应时间要超过60s,速度太慢不能接受,故放弃;3、想使用SQLAlchemy解决blob字段的插入,由于之前没有用过这个框架所以放弃;4、通过查询发现mysql 中存原创 2021-06-09 17:13:38 · 1156 阅读 · 1 评论 -
如何查询mysql、postgresql的blob
1.配置文件格式:dbconfig.yamlmysql: host: 10.1.2.25 port: 3306 user: root passwd: '123456' database: xxxxxpostgresql: host: 10.1.2.140 port: 5433 user: postgres passwd: xxxxx database: xxxxxx获取项目先对路径:get_pathimport osdef get_base_pat原创 2021-05-12 18:42:26 · 1542 阅读 · 0 评论 -
验证并发死锁问题问题
背景:验证一些由于并发问题引起的死锁问题,需要用高并发发送请求来验证。我是采用gevent 来实现高并发的。在实际的使用过程中发现脚本并没有实现高并发进行,于是进行了测试验证,验证结果如下,例子采用网上通用的例子:monkey.patch_all()用猴子补丁 总耗时:1.0010900497436523不用猴子补丁 总耗时:15.034797191619873import timeimport geventfrom gevent.pool import Poolfrom gevent im原创 2021-01-27 19:36:47 · 230 阅读 · 0 评论 -
python基础-DBUtils
DBUtils简介DBUtils 是一套用于管理数据库连接池的Python包,为高频度高并发的数据库访问提供更好的性能,可以自动管理连接对象的创建和释放。并允许对非线程安全的数据库接口进行线程安全包装。DBUtils提供两种外部接口:PersistentDB :提供线程专用的数据库连接,并自动管理连接。PooledDB :提供线程间可共享的数据库连接,并自动管理连接。下载安装下载地址:https://pypi.org/project/DBUtils/# 方式1$ wget https://p原创 2020-11-19 22:44:12 · 4685 阅读 · 0 评论 -
python基础-读写csv
在python里面,读取或写入csv文件时,使用 csv这个库。读文件读取csv文件,用的是csv.reader()这个方法。返回结果是一个_csv.reader的对象, 可以把这个对象转换为列表,当做列表来处理import csvwith open('data.csv', 'r') as f: reader = csv.reader(f) print(type(reader)) for row in reader: print(row)...原创 2020-11-18 23:55:57 · 146 阅读 · 0 评论 -
python基础argparse
argparse模块主要用来为脚本传递命令参数功能,类似sys.args[1], 但是比sys.args[x]更加灵活。基本用法parser = argparse.ArgumentParser()parser.add_argument("echo")args = parser.parse_args()print args.echo参数定义ArgumentParser.add_argument(name or flags...[, action][, nargs][, const][, def原创 2020-08-20 23:53:21 · 192 阅读 · 0 评论 -
python基础-异常处理
什么是异常异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。一般情况下,在Python无法正常处理程序时就会发生一个异常。异常是Python对象,表示一个错误。当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。异常处理捕捉异常可以使用try/except语句。try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。如果你不想在异常发生时结束你的程序,只需在try里捕获它。python解释器检测到错误,触发异常(也原创 2020-08-16 22:33:05 · 133 阅读 · 0 评论 -
python基础unittest
python内置的用于测试代码的模块,核心的部分有TestFixture、TestCase、TestSuite、TestRunnerunittest case的运行流程写好一个完整的TestCase多个TestCase 由TestLoder被加载到TestSuite里面, TestSuite也可以嵌套TestSuite由TextTestRunner来执行TestSuite,测试的结果保存在TextTestResult中TestFixture指的是环境准备和恢复Test Fixture用于测试环原创 2020-08-16 16:55:33 · 106 阅读 · 0 评论 -
python基础 time
在日期、时间模块常用的功能函数如下:a. 若不指定参数t,则默认转换当前时间b.秒数从1970-01-01 0点整 计算01.time.asctime([t]) 将时间元组或者struct_time转换为时间字符串,a02.time.ctime([secs]) 将以秒数为代表的时间转化为时间字符串,a03.time.gmtime([secs]) 将以秒数为代表的时间转换为struct_time对象,a04.time.localtime([secs]) 将以秒数代表的时间转换为代表当前时间的s原创 2020-08-14 23:30:44 · 159 阅读 · 0 评论 -
python基础random
random模块主要包含生成伪随机数的各种功能变量和函数https://docs.python.org/3/library/random.html常用函数01.random.seed(a=None, version=2): 指定种子来初始化伪随机数生成器02.random.randrange(start,stop[,step]):返回从start开始到stop结束,步长为step的随机数03.random.randint(a,b):生成一个范围为 a<=N<=b的随机整数04.r原创 2020-08-12 23:05:13 · 216 阅读 · 0 评论 -
request 模块
使用requests可以模拟浏览器的请求,比起之前用到的urllib,requests模块的api更加便捷(本质就是封装了urllib3)注意:requests库发送请求将网页内容下载下来以后,并不会执行js代码,这需要我们自己分析目标站点然后发起新的request请求官方文档:http://cn.python-requests.org/zh_CN/latest/安装:pip3 install requestsrequests模块的各种请求方式以上方法均是在此方法的基础上构建requests.原创 2020-08-10 23:57:41 · 1157 阅读 · 0 评论 -
python基础yaml
一、yaml文件介绍YAML是一种简洁的非标记语言。其以数据为中心,使用空白,缩进,分行组织数据,从而使得表示更加简洁。yaml文件规则基本规则:大小写敏感使用缩进表示层级关系缩进时不允许使用Tab键,只允许使用空格。缩进的空格数目不重要,只要相同层级的元素左侧对齐即可使用#表示注释字符串可以不用引号标注yaml文件数据结构对象:键值对的集合(简称 “映射或字典”)键值对用冒号 “:” 结构表示,冒号与值之间需用空格分隔数组:一组按序排列的值(简称 “序列或列表”)数组前原创 2020-08-09 23:16:42 · 623 阅读 · 0 评论 -
os 模块
1.查看操作系统相关os.linesep:给出当前平台的行终止符。例如,Windows使用’\r\n’,Linux使用’\n’而Mac使用’\r’os.name:指示你正在使用的工作平台。比如对于Windows,它是’nt’,而对于Linux/Unix用户,它是’posix’os.sep:操作系统特定的路径分隔符os.environ:看系统环境变量os.getenv()和os.putenv:分别用来读取和设置环境变量os.system():运行shell命令os.exit():终止当前进程2原创 2020-08-08 23:30:11 · 233 阅读 · 0 评论 -
PIP升级-报错
PIP报错每次使用pip 看到这个升级的提示就很烦,按照提示操作报错,解决办法如下:建议使用国内的源来升级:python -m pip instatll --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn错误提示:You are using p...原创 2020-03-28 20:33:20 · 861 阅读 · 0 评论 -
python基础-容器相关类
set特点:不记录元素的添加顺序元素不允许重复set是可变容器,与之对应的是frozenset# 构建set集合 {}cs = {'白骨精'}# 添加元素cs.add('孙悟空')cs.add(6)print(f"当前集合cs中的元素个数是:{len(cs)}")# 删除指定元素cs.remove(6)print(f"当前集合cs中的元素个数是:{len(cs)}...原创 2020-03-24 22:02:11 · 92 阅读 · 0 评论 -
python基础paramunittest
paramunittest是unittest实现参数化的一个专门的模块,可以传入多组参数,自动生成多个用例参数可以是元组、数据、字典,其中字典中定义的形参要与字典中的key值一致1.官方文档地址:https://pypi.python.org/pypi/ParamUnittest/2.github源码下载地址:https://github.com/rik0/ParamUnittestimp...原创 2020-03-04 23:26:32 · 229 阅读 · 0 评论 -
python接口学习记录
1.获取项目的绝对路径import osclass GetBasePath: """ :获取项目的文件夹的绝对地址 """ @classmethod def get_base_path(cls): # __file__属性可以查看模块的源文件路径, # base_path = os.path.split(os.path...原创 2020-03-02 00:35:40 · 477 阅读 · 0 评论 -
python中的re模块
正则表达式正则表达式(Regular Expression)用于描述一种字符串的匹配模式(Pattern),它可以用来检查一个字符串是否包含某个子串,也可以用于从字符串中提起匹配的子串,或者对字符串中匹配到的子串执行替换操作。Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式re 模块使 Python 语言拥有全部的正则表达式功能re.compile(pa...原创 2020-02-14 21:29:24 · 378 阅读 · 0 评论 -
使用flask模块mock接口数据
mock接口流程:理清业务逻辑支付接口from flask import Flask, jsonify, request# flask: web框架# jsonify: 是用来序列化返回的json格式的数据# request: 是用来获取调用接口的时候传入的数据,这几个模块都是falsk里面的# 定义常见错误码# 方法错误method_err = { "code...原创 2020-02-12 19:30:12 · 845 阅读 · 0 评论 -
python中的特殊方法的特殊用法
如果正常使用类里面的方法的话,实例方法要先实例化类,然后才能调用,静态方法、类方法则需要用类名或者实例化之后的对象来调用,而实例化之后的这个对象,是不能被调用的,__call__方法就是把这个实例变成一个可以调用的对象,也就是说实例化之后,这个对象就可以和一个普通函数一样被调用。特殊用法:用类来写装饰器# -*-coding:utf-8 -*-# function : 计算程序运行时间...原创 2020-02-11 23:06:50 · 115 阅读 · 0 评论 -
使用logging模块打印日志
logging模块是python里面用来操作日志的模块logging模块中主要有4个类:Logger 记录器,暴露了应用程序代码能直接使用的接口;Handler 处理器,将(记录器产生的)日志记录发送至合适的目的地StreamHandler 控制台输出FileHandler 文件输出TimedRotatingFileHandler 按照时间自动分割日志文件RotatingFil...原创 2020-02-11 22:20:08 · 927 阅读 · 0 评论