自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zh199609的博客

石石石

  • 博客(34)
  • 资源 (8)
  • 收藏
  • 关注

原创 mac安装Homebrew国内镜像

mac系统一键安装Homebrew

2023-02-06 11:58:45 477

原创 测试基础

1.URL和URI统一资源标志符URI统一资源定位符URL:所以URL是URI的子集2. HTTP和HTTPSHTTP是超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据发展历史:版本 产生时间 内容 发展现状HTTP/0.9 1991年 不涉及数据包传输,规定客户端和服务器之间通信格式,只能GET请求 没有作为正式的标准HTTP/1.0 1996年 传输内容格式不限制,增加PUT、PATC...

2021-04-25 16:01:27 169

原创 web自动化03

1. PO模式 PO是Page Object的缩写,PO模式是自动化测试项目开发实践的最佳设计模式之一。 核心思想是通过对界面元素的封装减少冗余代码,同时在后期维护中,若元素定位发生变化, 只 需要调整页面元素封装的代码,提高测试用例的可维护性、可读性。 PO模式可以把一个页面分为三层,对象库层、操作层、业务层。 对象库层:封装定位元素的方法。 操作层:封装对元素的操作。 业务层:将一个或多个操作组合起来完成一个业务功能。比如登录:需要输入帐号、密码、点击登录三个操作。 .

2021-04-20 22:04:07 310

原创 web自动化2

1.frame切换frame切换实现方法: driver.switch_to.frame(frame_reference) --> 切换到指定frame的方法 frame_reference:可以为frame框架的name、id或者定位到的frame元素 . driver.switch_to.default_content() --> 恢复默认页面方法 frame切换原理总结: 针对同一层级的frame,如果要进行切换的话,需要切回到默认首页 针对所要进.

2021-04-16 17:06:00 91

原创 web自动化-pytest

1. 特点1、非常容易上手,入门简单,文档丰富,文档中有很多参考实例2、支持简单的单元测试和复杂的功能测试3、支持参数化4、执行测试用例过程中,支持跳过操作5、支持重复执行失败的case6、支持运行由Nose,unittest编写的测试case7、pytest支持很多第三方插件8、方便的和持续集成工具集成2、pytest类定义及方法定义及运行 pytest测试类的定义:类名必须是以Test开头 pytest测试方法的定义:方法名必须是以test开头 .

2021-04-15 21:23:22 566

原创 web自动化01

1.获取元素信息为什么要学习获取元素信息的方法主要为了获取相关的信息进行断言,判断自动化用例最终的执行结果。size 获取元素的大小 返回的是一个字典,里面包含 元素高度和宽度的值 text 获取元素的文本内容 get_attribute("attribute") 获取元素对应属性名称的属性值 , attribute表示的是属性名# 1).获取用户名输入框的大小print(driver.find_element(By.ID, "userA").size)# 2).获取页面上第一个超链

2021-04-12 21:40:19 141

原创 UI自动化测试介绍

1.什么是自动化测试由程序代替人工进行系统校验的过程1.1自动化测试能解决什么回归测试(冒烟测试)针对之前老的功能进行测试 (通过自动化的代码来实现)针对上一个版本的问题的回归兼容性测试web实例化不同的浏览器驱动相当于于对不同的浏览器进行操作,从而解决浏览器的兼容性测试问题性能测试通过一些工具模拟多个用户实现并发操作提高工作效率,保障品质质量1.2自动化测试的优点自动化测试能在较短的时间内执行更多的测试用例 自动化测试能减少人为的错误‘ 自动化测试能克服手工的.

2021-04-11 14:20:15 772

原创 Fiddler

HTTP请求HTTP响应响应行:协议版本,响应状态码,状态消息响应头:告诉客户端服务器相关信息响应体:

2021-03-25 13:47:53 63

原创 12.执行引擎

执行引擎的概述“虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而虚拟机的执行引擎则是由软件自行实现的,因此可以不受物理条件制约地定制指令集与执行引擎的结构体系,能够执行那些不被硬件直接支持的指令集格式。JVM的主要任务是负责装载字节码到其内部,但字节码并不能够直接运行在操作系统之上,因为字节码指令并非等价于本地机器指令,它内部包含的仅仅只是一些能够被JVM所识别的字节码指令、符号表,以及其他辅助信息。

2021-03-10 22:29:48 53

原创 10.直接内存

不是虚拟机运行时数据区的一部分,也不是《Java虚拟机规范》中定义的内存区域。 直接内存是在Java堆外的、直接向系统申请的内存区间。 来源于NIo,通过存在堆中的DirectByteBuffer操作Native内存 通常,访问直接内存的速度会优于Java堆。即读写性能高。因此出于性能考虑,读写频繁的场合可能会考虑使用直接内存。Java的NIo库允许Java程序使用直接内存,用于数据缓冲区也可能导致outofMemoryError异常 由于直接内存在Java堆外,因此它的大小.

2021-03-10 21:35:23 58

原创 9.对象的实例化、内存布局于访问定位

对象的实例化创建对象的步骤判断对象对应的类是否加载、链接、初始化虚拟机遇到一条new指令,首先去检查这个指令的参数能否在Netaspace的常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已经被加载、解析和初始化。(即判断类元信息是否存在)。如果没有,那么在双亲委派模式下,使用当前类加载器以classLoader+包名+类名为Key进行查找对应的.class 文件。如果没有找到文件,则抛出classNotFoundException异常,如果找到,则进行类加载,并生成对应的cl

2021-03-10 20:55:50 79

原创 8.方法区

栈 、堆、方法区的交互关系方法区在哪方法区的基本理解方法区(Method Area)与Java堆一样,是各个线程共享的内存区域。 方法区在JVM启动的时候被创建,并且它的实际的物理内存空间中和Java堆区一样都可以是不连续的。 方法区的大小,跟堆空间一样,可以选择固定大小或者可扩展。 方法区的大小决定了系统可以保存多少个类,如果系统定义了太多的类,导致方法区溢出,虚拟机同样会抛出内存溢出错误: java.lang.outOfMemoryError:PermGen space或者ja

2021-03-08 22:17:02 108 1

原创 全局锁和表锁

全局锁全局锁就是对整个数据库实例加锁。MySQL 提供了一个加全局读锁的方法,命令是 Flush tables with read lock (FTWRL)。当你需要让整个库处于只读状态的时候,可以使用这个 命令,之后其他线程的以下语句会被阻塞:数据更新语句(数据的增删改)、数据定义语句(包 括建表、修改表结构等)和更新类事务的提交语句全局锁的典型使用场景是,做全库逻辑备份。也就是把整库每个表都 select 出来存成文本。但是让整库都只读,听上去就很危险:如果你在主库上备份,那么在备份期间

2021-03-03 16:48:01 166 2

原创 7.堆

堆空间的参数设置官网:https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html 一XX:+PrintFlagsInitial :查看所有的参数的默认初始值 -XX:+PrintFlagsFinal ﹔查看所有的参数的最终值(可能会存在修改,不再是初始值) -Xms:初始堆空间内存(默认为物理内存的1/64) -Xmx:最大堆空间内存(默认为物理内存的1/4) -Xmn:设置新生代的大小。(初始值及最大值) 一XX

2021-03-02 23:03:24 81

原创 6.堆

1.堆的核心概述一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心区域。 Java堆区在JVM启动的时候即被创建,其空间大小也就确定了。是JVM管理的最大一块内存空间。 《Java虚拟机规范》规定,堆可以处于物理上不连续的内存空间中,但在逻辑上它应该被视为连续的。 所有的线程共享Java堆,在这里还可以划分线程私有的缓冲区(ThreadLocal Allocation Buffer,TLAB)。 《Java虚拟机规范》中对Java堆的描述是:所有的对象实例以及数组都应当在运行时分配..

2021-03-01 21:22:29 109 1

原创 3.索引

常见的索引模型是哈希表、有序数组和搜索树.1. 哈希表是一种以键 - 值(key-value)存储数据的结构,我们只要输入待查找的值即 key,就可 以找到其对应的值即 Value。哈希的思路很简单,把值放在数组里,用一个哈希函数把 key 换 算成一个确定的位置,然后把 value 放在数组的这个位置,所以哈希索引做区间查询的速度是很慢的。2. 而有序数组在等值查询和范围查询场景中的性能就都非常优秀,用二分法就可以快速得到,这个时间复杂度是 O(log(N)),。但是,在需要更新数据的时候就麻

2021-02-22 20:22:48 91

原创 2.事务隔离

隔离性于隔离级别ACID(Atomicity、Consistency、Isolation、Durability,即原子性、一致性、隔离性、持久性)隔离级别读未提交(read uncommitted)一个事务还没提交时,它做的变更就能被别的事务看到读提交(read committed)一个事务提交之后,它做的变更才会被其他事务看到可重复读(repeatable read)一个事务执行过程中看到的数据,总是跟这个事务在启动时看到的数据是一致的。当然在可重复读隔离级别下,未提交变更对其他

2021-02-20 16:02:46 97 1

原创 5.运行时数据区概述及线程

运行时数据区的完整图Java虚拟机定义了若干种程序运行期间会使用到的运行时数据区,其中有一些会随着虚拟机启动而创建,随着虚拟机退出而销毁。另外一些则是与线程一一对应的,这些与线程对应的数据区域会随着线程开始和结束而创建和销毁。每个线程:独立包括程序计数器,栈、本地栈线程共享:堆、对外空间(永久代或元空间、代码缓存)...

2021-02-19 22:48:33 111 1

原创 4.双亲委派机制

Java虚拟机对class文件采用的是按需加载的方式,而且加载某个类的class文件时,Java虚拟机采用的是双亲委派模式,即把请求由父类处理,他是一种任务委派模式工作原理沙箱安全机制自定义string类,但是在加载自定义string类的时候会率先使用引导类加载器加载,而引导类加载器在加载的过程中会先加载jdk自带的文件( rt .jar包中java \lang\string.class),报错信息说没有main方法$就是因为加载的是rt.jar包中的string类。这样可以保证对java核

2021-01-05 21:42:32 105

翻译 3.类加载器分类

JVM支持两种类型的类加载器,分别为引导类加载器(Bootstrap ClassLoader)和自定义类加载器(User_defined ClassLoader) 从概念上来讲,自定义类加载器一般指的是程序中由开发人员自定义的一类类加载器,但是Java虚拟机规范却没有这么定义,而是将所有派生于抽象类ClassLoader的类加载器都划分为自定义类加载器 无论类加载器的类型如何划分,在程序中我们最常见的类加载器始终只有3个 public class CLassLoaderTest { publ

2021-01-05 21:00:24 92

原创 2.类加载子系统

撒地方

2020-12-28 23:10:04 79 1

翻译 1.一条SQL查询语句是如何执行的

1.MySql的逻辑架构图Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。而存储引擎层负责数据的存储和提取。其架构模式是插件式的,支持 InnoDB、MyISAM、Memory 等多个存储引擎。现在最常用的存储引擎是 InnoDB,它从 MySQL 5.5.5 版本开始成为了默认存储引擎。每个环节应该很清晰,不

2020-12-28 18:19:33 83

原创 JVM与Java体系结构

Java虚拟概念谓虚拟机(Virtual Machine),就是一台虚拟的计算机。它是一款软件,用来执行一系列虚拟计算机指令。大体上,虚拟机可以分为系统虚拟机和程序虚拟机。大名鼎鼎的Virtual Box,VMware就属于系统虚拟机,它们完全是对物理计算机的仿真,提供了一个可运行完整操作系统的软件平台。 程序虚拟机的典型代表就是Java虚拟机,它专门为执行单个计算机程序而设计,在Java虚拟机中执行的指令我们称为Java字节码指令。 无论是系统虚拟机还是程序虚拟机,在上面运行的软件都被限制于虚

2020-12-27 23:01:00 56

原创 springboot中设置不同日志级别分别归档

使用logback分级别进行日志分档保存<?xml version="1.0" encoding="UTF-8"?><!--scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒当scan为true时,此属性生效。默认的时间间隔为1分钟...

2019-08-22 18:21:00 2216

原创 idea中设置自定义的方法注释

1.进入Settings -> Editor -> Live Templates2.点击'+' Templates Group 添加一个组 填写相关内容,Abbreviation中填入 '*' 一个星号3.Template text中填写自定义的模板:$END$ 可设置注释生成后光标停留的位置,在参数设置时勾上Skip if defined* * 功能描述:...

2019-08-14 10:46:17 674

原创 springboot2.x实现优雅关机

加入actuator一些配置#启用shutdownmanagement.endpoint.shutdown.enabled=truemanagement.endpoints.web.exposure.include=*# 自定义管理端点的前缀(保证安全)management.endpoints.web.base-path=/MyActuator# 自定义端口managemen...

2019-06-06 09:39:17 1873

转载 Mybatis中几个核心类

MappedStatement类在Mybatis框架中用于表示XML文件中一个sql语句节点,即一个&lt;select /&gt;、&lt;update /&gt;或者&lt;insert /&gt;标签。Mybatis框架在初始化阶段会对XML配置文件进行读取,将其中的sql语句节点对象化为一个个MappedStatement对象。比如下面这个非常简单的XML mapper文件: &lt...

2019-01-07 15:28:05 4419

原创 HTTP最常见状态码解析

200:请求成功 处理方式:获得响应的内容,进行处理202:请求被接受,但处理尚未完成 处理方式:阻塞等待400:非法请求 处理方式:丢弃401:未授权 处理方式:丢弃403:禁止 处理方式:丢弃500:服务器内部错误 服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。一般来说,这个问题都会在服务器端的源代码出现错误时出现501:服务器无法识别 服务器不支持当前...

2018-09-25 14:37:14 307

转载 mybatis的@Options注解

MyBatis的@Options注解能够设置缓存时间,能够为对象生成自增的主键值,一般应用于两种场景,今天小博老师就跟大家介绍下@Options注解如何在查询数据和插入数据时使用。配合查询语句使用,主要是开关一些查询的选项。比如useCache = true表示将会缓存本次查询结果,以提高下次查询速度;flushCache = Options.FlushCachePolicy.FALSE表...

2018-09-04 11:39:28 3338

原创 mongoTemplate方法

API网址:https://docs.spring.io/spring-data/mongodb/docs/current/api/index.html?org/springframework/data/mongodb/core/MongoTemplate.html/** * 添加文档主要介绍两种方式: * mongoTemplate.inser...

2018-08-21 10:02:51 5580 1

转载 Hibernate缓存和快照

在Session中定义了一系列的集合来存储数据,它们构成了Session的缓存。只要Session没有关闭,它就会一直存在。当我们通过Hibernate中的Session提供的一些API例如save()、get()、update()等进行操作时,就会将持久化对象保存到Session中,当下一次再去查询缓存中具有的对象(通过OID值来判断),就不会去从数据库中查询了,而是直接从缓存中获取。Hiber...

2018-04-12 14:54:12 224

原创 spring-aop jar包需求

SpringAop:的底层就是通过JDK动态代理"或"CGLib动态代理为技术目标织入横切逻辑。  做aop:需要导入:   spring-aop-4.1.5.RELEASE.jar spring-beans-4.1.5.RELEASE.jar spring-context-4.1.5.RELEASE.jar spring-context-support-4.1.5.RELEASE.jar ...

2018-03-27 11:52:15 4872

转载 optimize和proxyTargetClass

optimize是ProxyConfig的属性。意思为 是否对生产代理策略使用优化。public class ProxyConfig implements Serializable { private boolean proxyTargetClass = false; private boolean optimize = false; boolean opaque = fa...

2018-03-27 11:47:25 1013

翻译 web.xml 中的listener、 filter、servlet 加载顺序及其详解

在项目中总会遇到一些关于加载的优先级问题,刚刚就遇到了一个问题,由于项目中使用了quartz任务调度,quartz在web.xml中是使用listener进行监听的,使得在tomcat启动的时候能马上检查数据库查看那些任务未被按时执行,而数据库的配置信息在是在web.xml中使用servlet配置的,导致tomcat启动后在执行quartz任务时报空指针,原因就是servlet中的数据库连接信息未...

2018-03-12 08:46:21 217

MindManager2019+序列号

MindManager2019+序列号MindManager2019+序列号MindManager2019+序列号

2019-04-14

Layui后台管理模板 包含页面

Layui后台管理模板 包含页面Layui后台管理模板 包含页面Layui后台管理模板 包含页面

2019-04-08

JavaWeb校园二手平台项目

JavaWeb校园二手平台项目

2019-04-08

Redis Desktop Manager

windows下的可视化工具,基于源码0.9.9编译后的可在windows下直接运行。

2018-12-06

typora-setup-x64

代码笔记软件 代码笔记软件 代码笔记软件 代码笔记软件 代码笔记软件 代码笔记软件

2018-01-30

c3p0-0.9.5.2.bin

c3p0-0.9.5.2.bin

2018-01-30

java-ee-api原版

java-ee-api原版java-ee-api原版java-ee-api原版java-ee-api原版

2018-01-30

最新版全国计算机等级考试三级网络软件

2017年9月最新版全国计算机等级考试三级网络软件+其他一二级软件

2017-06-21

空空如也

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

TA关注的人

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