自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 收藏
  • 关注

原创 点云处理--Open3D点云坐标放大

放大点云单个坐标系的值,便于观察import open3d as o3dimport numpy as nppcd = o3d.io.read_point_cloud("aaa.pcd")vis = o3d.visualization.Visualizer()vis.create_window(window_name='可视化', width=800, height=600)opt = vis.get_render_option()opt.background_color = np.asar

2022-04-27 13:04:33 1328

原创 python学习--深拷贝、浅拷贝、赋值

深拷贝和浅拷贝都是对象的拷贝,都会生成一个看起来相同的对象,他们本质的区别是拷贝出来的对象的地址是否和原对象一样,也就是地址的复制还是值的复制的区别。深拷贝和浅拷贝需要注意的地方就是可变元素的拷贝不可变元素包括int,float,complex,long,str,unicode,tuple类型赋值浅拷贝深拷贝不可变元素变不不可变元素变变不赋值原始列表改变,赋值的列表也会做相同的改变a=[1,2,3,4,5,['a','b']]#原始对象b=a

2021-08-19 16:21:42 100

原创 python学习--装饰器

目录闭包函数装饰器无参数装饰器带参数装饰器类装饰器wraps装饰器闭包函数函数内创建一个函数,这种函数只可以在外部函数的作用域内被正常调用,在外部函数的作用域之外调用会报错。如果内部函数里引用了外部函数里定义的对象,那么此时内部函数就被称为闭包函数。闭包可以将其自己的代码和作用域以及外部函数的作用结合在一起。def count(): a = 1 b = 1 def sum(): c = 1 return a + c return

2021-08-19 15:52:54 140

原创 python学习--类、模块、包

目录面向对象编程思想类的特点类的定义类的变量类的方法类中的方法类方法静态方法实例方法类的继承子类的定义覆写父类的方法私有化下划线相关变量命名模块包面向对象编程思想类:把共同属性抽象出来对象:把类实例化,设置各自的属性类的特点封装 继承 多态类的定义创建一个类后,可以通过类名访问其属性和方法。定义了构造方法后,类的实例化操作会自动调用它。可以没有构造方法,但必须有set方法初始化。self表示实例对象,代表类的实例,不是类。class Person1(object):#类的定义

2021-08-19 12:50:39 253

原创 软件测试知识(3)--缺陷

缺陷基本概述属性类型严重程度优先级状态来源根源生命周期识别报告编写目的准则缺陷描述准则基本概述没有实现产品说明书要求的功能出现了不该出现的功能实现了说明书没有提到的功能没有实现说明书未提及但是应该实现的目标软件不易使用,难以理解,运行缓慢属性类型功能,界面,文档,软件包,性能,接口需求分析、设计阶段,文档类型的缺陷多,集成测试阶段,接口缺陷多,系统测试阶段,功能界面类型多,验收测试,性能缺陷,实施过程,软件包缺陷严重程度致命,严重,一般,较小优先级立即解决,高优

2021-08-18 22:04:51 240

原创 软件测试知识(2)--测试用例

测试用例定义模板作用用例编写黑盒用例设计方法等价类划分法原理步骤边界分析法因果图法步骤判定表步骤场景法步骤正交实验法原理步骤功能图法步骤定义设计一个情况,软件程序在此情况下,必须能正常运行并且达到程序设计的预期结果如果在此情况不能运行,要标识出来下版本还要用此情况测试,保证已经修改完成模板标识符:测试设计过程说明和测试程序说明引用的唯一标识符测试项:被测试的详细特性,代码模块。还要指出引用的产品说明书或其他文档依赖项:此测试项收到的其他测试项的影响测试步骤:操作的步骤测试数据:测试

2021-08-18 21:59:38 501

原创 软件测试基础(1)--软件测试概述

软件测试概述软件测试的定义软件测试的目的测试和调试的区别测试流程测试模型V模型W模型H模型X模型软件测试分类按开发阶段分单元测试集成测试确认测试系统测试验收测试按代码运行分按照软件特性划分按照测试技术黑盒测试白盒测试灰盒测试按测试运行主体软件测试原则软件测试的定义对软件形成过程中产生的程序和相关文档等进行测试,不仅仅是对程序的运行进行测试确认应用和功能是否实现验证需求是否实现软件测试的目的以最少的人力物力时间找出软件中潜在的各种错误和缺陷,保证各种错误和缺陷得以修复,避免软件发

2021-08-18 21:51:08 135

原创 web自动化--python+selenium自动化

目录自动化测试用例遵循原则自动化测试用例设计测试点转为测试用例的原则验证码自动化方法自动化测试模型线性测试模块化驱动测试数据驱动测试参数化的方式:CSV文件Excel文件关键字驱动测试检查点自动化测试用例自动化测试用例一般可以由手工测试用例转化来,但是不是所有的手工测试用例都要转化为自动化测试用例考虑到脚本开发的成本,不要选择流程太复杂的用例,如果必要,可以把流程差分为多个用例来实现脚本。选择的用例最好可以构建成场景,如一个功能模块,分成多个用例,多个用例使用同一个场景重复执行,繁琐的部分,如字

2021-08-17 18:27:35 216

原创 web自动化--python和selenium.webdriver

目录selenium配置python中的selenium自动化步骤定位元素id 定位Name定位Class name定位Tag name定位Link text定位Partial link text定位Xpath定位绝对路径定位元素属性定位:层级和属性结合:逻辑运算符:css定位.:class选择器#:id选择器元素A>元素B:A为父元素B为子元素元素操作浏览器操作控制浏览器窗口大小回退前进刷新截屏关闭鼠标键盘操作鼠标键盘警告窗口处理多窗口、多表单处理多窗口案例元素等待隐式等待显式等待强制等待sele

2021-08-17 18:11:31 1051

原创 web自动化--selenium介绍

selenium的组成版本组成1.0IDE RC GRID2.0IDE RC webdriver GRID3.0IDE GRID webdriverSelenium IDE:UI用户界面的脚本录制工具,采用关键字驱动的方式进行脚本开发Rc:c/s c:java/python开发的脚本 s:浏览器Webdriver:包,对浏览器的元素或浏览器操作,提高了对浏览器的调度效率Selenium IDE使用Firefox浏览器插件,再扩展中添加即可新建工程,

2021-08-17 17:49:41 81

原创 POSTMAN的使用

POSTMAN介绍使用Get不带参数带参数POSTPostman的参数化运行机制案例JSON简介定义特点语法规则文件postman的断言内置断言使用tests编写断言复杂的断言配置环境变量和全局变量生成不同类型的代码介绍一款功能强大的网页调试和发送网页HTTP请求,并能运用测试用例的WEB API测试工具能够模拟各种HTTP Request:GET/POST/RESTful的PUT/DELETE等 发送文件,额外的HEADER使用Get不带参数创建测试集合 collection在集合中创

2021-08-15 18:52:35 649 2

原创 接口测试概述

目录接口测试概述测试的主要内容接口测试的使用场景接口测试的好处与界面功能测试的区别接口测试的必要条件如何获取接口信息用例设计用例模板接口测试概述接口测试是测试系统内部各个组件间的接口,以及系统和外部系统之间的交互点。测试的主要内容检查数据的交换传递和控制管理过程系统间的相互逻辑依赖关系接口测试的使用场景多系统间交互开发适用于为其他系统提供服务的底层框架系统和中心服务系统适用于一个上层系统中的服务层接口平台越复杂,系统越庞大,接口测试效果越明显接口测试的好处可以发现很多在

2021-08-15 18:32:47 90

原创 python学习---使用pymysql连接数据库,对数据库进行操作

import pymysqlclass Dept():def init(self,id,name,old,sex):self.id =idself.name = nameself.old = oldself.sex = sexdef str(self):return f’{self.id}\t{self.name}\t{self.old}\t{self.sex}’def main():#创建连接对象connection =pymysql.connect(host='localhost'

2021-08-11 19:49:52 250

原创 python测试---pytest使用 fixture、mark

Pytest框架pytest框架的优势pytest框架的规范pytest框架的使用参数化多个assert超时用例依赖pytest框架的优势简单灵活,容易上手;支持参数化; 测试用例的skip和xfail处理;能够支持简单的单元测试和复杂的功能测试,还可以做selenium/appnium等自动化测试、接口自动化测试(pytest+requests);pytest具有很多第三方插件,并且可以自定义扩展, 较好的如pytest-allure(完美html测试报告生成)、pytest-xdist(多

2021-08-11 19:32:37 339

原创 python学习---进程和线程(2)线程、协程

目录多线程优点分类步骤共享数据锁线程同步死锁避免死锁方法协程通过生成器完成使用greenlet使用gevent猴子补丁 monkey patch案例多线程多线程类似于同时执行多个不同程序每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。每个线程都有他自己的一组CPU寄存器,称为线程的上下文,该上下文反映了线程上次运行该线程的CPU寄存器的状态。指令指针和堆栈指针寄存器是线程上下文中两个最重要的寄存器,线程总

2021-08-09 18:37:00 148

原创 python学习---进程和线程(1)进程

目录多应用任务线程和进程并发和并行实现多任务的方式进程创建进程自定义进程进程池阻塞式非阻塞式进程间的通信多应用任务def func1(n): for i in range(n): print('搬砖',i) yield Nonedef func2(n): for i in range(n): print('听歌',i) yield Noneg1 = func1(3)g2 = func2(3)while True

2021-08-09 17:53:52 173

原创 python学习---re模块与正则表达式、hashlib模块

目录正则表达式优点规则分组提取re模块compile()match()search()span()group()findall()sub()split()贪婪匹配和惰性匹配hashlib模块正则表达式正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。优点测试字符串内的模式。例如,可以测试输入字符串,以查看字符串内是否出现电话号码模式或信用卡号码模式。这称为数据验证。替换文本。可以使用正则表达式来识别文档中的特定文本,完全删除该文本或者用其他文本替换它。基于模式匹

2021-08-09 12:35:53 110

原创 python学习---random模块、time和datetime

random模块random()randrange()randint()choice()shuffle()应用:产生验证码time和datetimetime模块sleep(sec)time()ctime()localtime()mktime()strftime()strptime()时间格式datetime模块time()date()datetime()datetime.datetime.now()datetime.date.today()timedelta()random()产生随机数randran

2021-08-09 11:40:10 172

原创 python学习---捕捉异常

目录try/except 捕捉异常raise 抛出异常try/except 捕捉异常捕捉异常可以使用try/except语句。try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。try:<语句> #运行代码except: 发生异常,执行这块代码except(Exception1[, Exception2[,...ExceptionN]]]): 发生以上多个异常中的一个,执行这块代码except Excepti

2021-08-09 11:24:27 827

原创 python学习---迭代器和生成器

迭代器和生成器迭代器isinstanceiternext生成器方式1 列表推导式列表推导式列表推导式得到生成器方式2 借助函数完成输出生成器内容g.__next__()next(g)send()迭代器迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。isinstance判断列表是否可迭代isinstance(a,b)判断a是不是b类型iter字符串,列表或元组对象都可用于创建迭代器:iter(a) 把可迭代

2021-08-09 11:10:47 85

原创 python学习---文件操作

文件操作文件操作打开和关闭文件open()方法打开文件模式bufferingclose()方法读写文件read()方法readable()readline()readlines()write()方法writelines()os.path模块dirname()方法getcwd()方法join()方法获取文件名basename() 返回文件名stream.name 文件名和目录名获取绝对路径abspathisabs获取相对路径splitjoinsplitextgetsizeexist文件的复制listdirmk

2021-08-09 10:52:22 301

转载 Linux下修改Mysql的用户(root)密码,查看、修改默认端口的方法

目录Linux下修改Mysql的用户(root)密码拥有原来的mysql的root的密码在mysql系统外,使用mysqladmin通过登录mysql系统忘记原来的mysql的root的密码查看MySQL的默认端口查看默认端口号mysql端口号的修改Linux下修改Mysql的用户(root)密码拥有原来的mysql的root的密码在mysql系统外,使用mysqladminmysqladmin -u root -p password "新的密码“;Enter password:【输入原来的密码】

2021-08-08 17:18:31 415

原创 mysql高级---mysql存储引擎、性能下降原因、7种join图解

目录Mysql逻辑架构Mysql存储引擎查看mysql现在已提供什么存储引擎查看mysql当前默认的存储引擎sql性能下降的原因常见通用的7种join查询SQL的执行顺序手写顺序机读顺序Join图解左连接left右连接right内连接inner全外连接Full outerMysql逻辑架构总体概览最上面一层是客户端的连接服务,主要完成客户端的连接处理,授权认证。在该层有一个线程池,每一个连接从线程池中获取线程,省去了创建和销毁线程的开销。中间这一层可以完成查询解析,分析,优化,缓存。存储过程,触发

2021-08-08 17:08:45 184

原创 mysql高级---mysql锁机制

mysql锁机制mysql锁机制分类根据数据操作类型分类根据数据操作的粒度分类表锁(偏读)手动加表锁查看表上加过的锁释放表锁为表加读锁为表加写锁总结分析表的锁定行锁行锁支持事务对同一行进行修改会发生阻塞对不同行进行修改,不会阻塞间隙锁危害如何锁定一行分析行锁优化页锁mysql锁机制锁是计算机协调多个进程或线程并发访问某一资源的机制。分类根据数据操作类型分类读锁(共享锁)针对同一份数据,多个读操作可以同时进行而不会互相影响写锁(排他锁)当前写操作没有完成前,会阻断其他写锁和读锁根

2021-08-08 16:49:40 81

原创 mysql高级---查询截取分析、慢查询日志、show profiles

查询截取分析一级目录二级目录三级目录一级目录二级目录三级目录查询截取分析1慢查询的开启并捕获2explain和慢sql分析3show profile 查询sql在mysql服务器里面的执行细节和生命周期情况。4sql数据库服务器的参数调优慢查询日志介绍Mysql提供的一种日志记录,用来记录mysql中响应时间超过阈值的语句,具体指运行时间超过Long_query_time值的sql语句,会被记录到慢查询日志中。Long_query_time默认为10s。借此观察哪些语句超出了忍耐值。

2021-08-08 15:55:47 142

原创 mysql高级---索引优化

索引优化索引分析单表优化两表优化三表优化join语句的优化总结避免索引失效索引分析单表优化查询author_id为1且comments>1,view最多的category_id#查询author_id为1且comments>1,view最多的category_idexplain select id,category_id from bookss where author_id =1 and comments >1 order by views limit 1;

2021-08-07 19:42:02 100

原创 mysql高级---explain的使用

explain的使用性能分析Mysql query optimizerMysql常见瓶颈查看执行计划Explain介绍语法各字段解释性能分析Mysql query optimizermysql中有专门复制优化select语句的优化模块。主要功能是同各国计算分析系统中收集到的统计信息,为客户端请求的query提供它认为最优的执行计划。Mysql常见瓶颈Cpu:cpu在饱和的时候一般发生在数据装入内存或从磁盘上读取数据的时候IO:磁盘IO瓶颈发生在装入数据远大于内存容量的时候服务器硬件的性能瓶颈

2021-08-07 15:43:43 115

原创 mysql高级---索引

索引索引优点缺点索引的分类索引的结构创建索引方法一 create方法二 alter add修改索引为字段添加主键修改索引为唯一索引添加普通索引指定索引为fulltext删除索引查看索引创建索引的情况不适合创建索引的情况索引索引是帮助mysql高效获取数据的数据结构。索引本质是一种数据结构。数据本身之外,数据库还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。目的在于提高查询效率,可以类比字典。影响到查找和order

2021-08-07 09:49:26 72

原创 MySQL基础复习与整理---TCL事务控制语言---变量、存储过程、函数

变量、存储过程、函数变量分类使用查看所有系统变量查看部分变量查看指定变量为某个系统变量赋值方式1 =方式2 @@ .自定义变量步骤用户变量声明赋值方式1 set select方式2 select into使用局部变量声明赋值使用存储过程优点创建参数列表调用变量分类系统变量变量由系统提供,不是用户定义,属于服务器层面全局变量 global服务器每次启动将为所有全局变量赋初值,针对于所有会话,不能跨重启会话变量 session不写默认为session使用查看所有系统变量SH

2021-08-07 09:25:02 67

原创 MySQL基础复习与整理---TCL事务控制语言---视图

视图视图应用场景优点创建视图使用视图修改视图方式1 replace方式2 alter删除视图更新视图不能更新的视图视图和表的对比视图虚拟表,数据来自定义视图的查询中使用的表,视图只保存sql逻辑,不保存查询结果。应用场景多个地方用到同样的查询结果查询结果使用的sql语句较为复杂优点重用sql语句简化复杂的sql操作,不必知道它的细节保护数据,提高安全性创建视图Create view视图名Assql语句;CREATE VIEW v2ASSELECT g.`name`

2021-08-06 19:18:42 58

原创 MySQL基础复习与整理---TCL事务控制语言---事务

事务事务ACID属性创建事务语法回滚点Savepoint使用Delete 和 truncate 在回滚时的区别事务并发问题事务的隔离级别事务事务由单独单元的一个或多个sql语句组成,在此单元中,每个mysql语句是相互依赖的。如果单元中某条语句一旦执行失败或产生错误,整个单元回滚。受影响数据返回到事务开始之前的状态。如果单元中所有sql语句执行成功,事务顺利执行。ACID属性原子性事务是一个不可分割的工作单位,事务中的操作要么都发生要么都不发生。一致性事务必须使数据库从一个一致性状态

2021-08-06 19:02:31 70

原创 MySQL基础复习与整理---DDL数据定义语言---约束的管理、标识列

约束的管理、标识列约束的管理常见的约束分类外键特点约束的添加分类添加约束的时机创建表时添加列级约束添加表级约束修改表时添加列级约束添加表级约束删除约束标识列特点约束的管理常见的约束一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性分类Not null:非空,用于保证该字段的值不能为空Default:默认,保证该字段有默认值Primary key:主键,用于保证该字段的值具有唯一性,非空Unique:唯一,用于保证该字段的值具有唯一性,可以为空Check:检查约束(mysql不

2021-08-06 17:08:19 60

原创 MySQL基础复习与整理---DDL数据定义语言---常见的数据类型

常见的数据类型数值型整数小数字符型较短的文本二进制文本较长的文本枚举类型enum类型set类型日期型datetime和timestamp的区别数值型整数Tinyint(1字节),smallint(2),mediumint(3),int/integer(4),bigint(8)特点如果不设置无符号有符号默认有符号,如果想设置无符号,需要添加unsigned关键字。如果插入的数值超出了整型的返回,会报out of range 异常,并插入临界值。如果不设置长度,会默认长度。长度代表了显示的最大宽

2021-08-06 16:34:22 61

原创 MySQL基础复习与整理---DDL数据定义语言---库和表的增删改查

库和表的增删改查库的管理创建 create修改重命名rename修改库的字符集删除 drop表的管理创建修改修改列名修改列的类型或约束添加新列删除列修改表名删除复制只复制表结构复制结构和数据只复制部分数据库的管理创建 create语法Create database 库名;创建库books,加if not exists确保没有重复的库Create database if not exists books;修改重命名rename语法Rename database 旧库名 to 新库名;

2021-08-06 15:57:46 77

原创 MySQL基础复习与整理---DML数据操作语言---数据的增删改查

数据的增删改查插入语句insert方式一 values特点方式二 setvalues和set的区别修改语句update修改单表的记录修改多表的记录删除方式一 Delete单表的删除多表的删除方式二Truncatedelete和truncate的区别插入语句insert方式一 values语法Insert into 表名(列名,.....) values (值,........);特点插入的值的类型要与列的类型一致或兼容Insert into beauty (id,sex,phone)V

2021-08-06 15:33:18 96

原创 MySQL基础复习与整理---DQL数据查询语言---分页查询、联合查询

分页查询、联合查询分页查询联合查询分页查询应用场景:一页显示不全,需要分页提交sql请求语法SELECT 查询列表 from 表 JOIN... ON WHERE... GROUP BY... HAVING ... ORDER BY ... LIMIT OFFSET,size; OFFSET:要显示条目的起始索引(从0开始)size:要显示的条目个数特点:LIMIT在查询语句最后公式:LIMIT (page-1)*size,sizepage 要显示的页数size

2021-07-07 22:40:24 57

原创 MySQL基础复习与整理---DQL数据查询语言---子查询

子查询按结果集的行列数不同按子查询出现的位置SELECT 后面FROM 后面WHERE/HAVING后面标量子查询多行子查询EXISTS后面执行顺序子查询,查询出现在其他语句中的select语句外部的查询语句,称为主查询,外查询按结果集的行列数不同标量子查询(结果集一行一列)列子查询(结果集一列多行)行子查询(结果集一行多列)表子查询(结果集一般为多行多列)按子查询出现的位置SELECT 后面:只支持标量子查询FROM 后面:支持表子查询WHERE/HAVING后面:标量子查

2021-07-07 22:31:12 54

原创 MySQL基础复习与整理---DQL数据查询语言---连接查询

连接查询、子查询连接查询分类按年代分类按功能分类sql92标准等值连接非等值连接自连接sql99标准语法连接类型内连接等值连接非等值连接自连接外连接交叉连接连接查询连接查询,多表查询,查询字段涉及多个表。没有有效连接条件就会产生笛卡尔乘积现象。笛卡尔乘积现象:表1有m行,表2有n行,结果m*n行分类按年代分类sql92标准:仅支持内连接sql99标准:推荐,不支持全外连接按功能分类内连接等值连接非等值连接自连接外连接左外连接右外连接全外连接交叉连接sql

2021-07-07 22:10:22 68

原创 MySQL基础复习与整理---DQL数据查询语言---排序查询、分组查询

排序查询、分组查询排序查询order by语法使用分组查询group by分组前筛选where语法分组后筛选having语法排序查询order by语法select 查找列表、字段、常量、函数、表达式 from 表名 where 筛选条件ORDER BY 排序列表 asc/desc;asc升序desc降序不写默认升序使用支持表达式排序SELECT title,length/2 FROM film WHERE rating IN ('G') ORDER BY length/2 d

2021-07-05 22:21:17 58

原创 MySQL基础复习与整理---DQL数据查询语言---基础查询、条件查询

基础查询语法别名优点用法去除重复数据加号+运算符连接多个字段判断是否为NULL语法select 查找列表、字段、常量、函数、表达式 from 表名;查询出来的是一个虚拟的表格查询单个字段SELECT first_name FROM actor;查询多个字段SELECT address,district FROM address;查询全部数据SELECT * FROM actor;查询常量值SELECT 200;SELECT 'NICK';查询表达式S

2021-07-05 21:52:28 70

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除