自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 数据驱动模式UI自动化框架

本次给大家分享一个pc端的UI自动化框架,这个框架是数据驱动形式的,采用的思想是把测试数据和代码分离开,我们的测试数据都放到excel里,然后读取里面的值来获取。这样避免的测试数据和代码混合到一起,看着混乱。同时采用PO模式,一个页面作为一个对象,把页面里的元素封装到一起。同时使用testNG进行...

2020-06-20 11:27:55 113 0

原创 SpringBoot启动原理之核心注解和run()方法-源码分析

微信公众号:测试加油站 关注可了解更多的测试开发技术。问题或建议,请公众号留言; 如果你觉得文章对你有帮助,欢迎转发[^1] 随着微服务的兴起,SpringBoot框架越来越火,相信大部分公司已经开始转向使用这个框架,我们开发测试平台的时候,也是会使用这个框架。但是这个框架的原理不知道大家是否了...

2020-04-16 22:07:08 76 0

原创 Spring-IOC原理简述

今天的这个IOC,不打算分析源码了,一方面觉的Spring的源码很庞大,一步步跟的话容易陷入很深的某一个分支里,而且容易遗忘。所以打算简单的说下原理,大家可以先记下来简单的原理,然后再看看大佬们的博客,然后再一步步debug源码,这样估计也就差不多了。那么接下来就先简单说下IOC的原理吧。 IO...

2020-01-10 19:24:47 69 0

原创 Mybatis-原生Mybatis原理源码分析篇

Mybatis框架概述 Mybatis是持久层的框架,它内部封装了jdbc,使开发的时候只需要关注sql语句本身,不需要话费精力去处理加载驱动、创建连接、创建statement等。下面我们也是通过一个实例来对它进行分析。 首先编写一个SqlMapConfig.xml ​ <?xml...

2020-01-02 21:19:25 50 0

原创 总结2019,展望2020

时间过得如此之快,转眼又到了年底,今天是2019年的最后一天,写下这篇文章,要为这一年的忙碌总结下。最近也经常会看到很多大佬,对测试行业发展的一个展望。例如Facebook去QA化,敏捷测试、DevOps,还有某些大厂已经借助AI技术,进行了测试,还有大数据的测试。 整个行业发展的如此...

2019-12-31 18:54:58 419 0

原创 博客目录

因目前博客文章数量较大,大家搜索或者查看不是很方便,所以打算建立本目录,同时也是对测试开发技术栈的一个梳理。对博客的定位是对于日常用到技术的一个整理。对于公众号内容是对某一点深入的分析,欢迎大家关注,一起学习进步。 一、测试方面: 1、单元测试: 2、接口自动化总结(1): 接口自...

2019-12-23 13:00:22 72 0

原创 Spring+SpringMVC+Mybatis搭建web开发项目

前面的几篇博客,意在讲解Spring、SpringMVC以及Mybatis框架,单个框架的使用及原理。本文分享的是从零到有搭建ssm一个web开发项目,写文本文章意在让大家了解一个web开发框架搭建过程,从中了解每一步的含义,与此同时对比后面我将会分享出来的使用SpringBoot搭建一个web开...

2019-12-14 17:57:02 85 0

原创 SpringMVC-原理简述

SpringMVC的入门案例 配置核心控制器,一个Servlet <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/20...

2019-12-14 17:54:00 28 0

原创 创建一个springboot工程的步骤

首先new一个工程,选择maven,名字命名为com.bee ,artifactId 为bee, 二、创建new 出每一个module,名字为bee-web,bee-dao,bee-service,bee-client 三、配置maven 文件,修改setting路径,设置为国内下载的地址, ...

2019-03-04 21:47:54 573 0

转载 Java调优经验谈

目录 调优准备性能分析性能调优其他优化建议JVM参数进阶 对于调优这个事情来说,一般就是三个过程: 性能监控:问题没有发生,你并不知道你需要调优什么。此时需要一些系统、应用的监控工具来发现问题。性能分析:问题已经发生,但是你并不知道问题到底出在哪里。此时就需要使用工具、经验对系统、应用进行瓶...

2017-10-18 20:36:16 334 0

转载 性能优化的思路和步骤

https://download.csdn.net/download/qq_30353203/10616634,这是一个JVM体系结构与GC调优PPT,写的非常好。 我的技术公众号,有兴趣可以关注一起交流 写blog和写代码一样,刚开始都是不完美的,需要不断的修正和重构,如果大家在阅读本b...

2017-10-18 12:53:44 10963 2

原创 java中的锁类型

一、偏向锁

2020-06-27 16:45:29 23 0

原创 java内存模型JMM

Java内存模型(Java Memory Model,简称JMM),即Java虚拟机定义的一种用来屏蔽各种硬件和操作系统的内存访问差异,以实现让java程序在各种平台下都能够达到一致的内存访问效果的内存模型。本篇文章大致涉及到五个要点:1、Java内存模型的基础,主要介绍JMM抽象结构;2、Jav...

2020-06-14 11:14:35 41 0

原创 volatile特性及实现原理

一个volatile变量自身具有以下三个特性: 1、可见性:即当一个线程修改了声明为volatile变量的值,新值对于其他要读该变量的线程来说是立即可见的。而普通变量是不能做到这一点的,普通变量的值在线程间传递需要通过主内存来完成。 2、有序性:volatile变量的所谓有序性也就是被声明为v...

2020-06-14 11:03:46 63 0

原创 java线程

并发与并行 3.1创建和运行线程 多线程创建方式 一、 二、 使用lambda表达式写法更精简 Thread 与Runnable关系,看下源码,Runable里走的也是走的run方法 方法:把线程和任务合并起来了,方法二,把线程和任务分开来了。Runable更容易与线程池等高级api...

2020-06-07 09:52:21 43 0

原创 minicap工具的使用

1.minicap 将这两个文件push到我手机的/data/local/tmp目录下: 这里看到minicap可执行文件没有执行权限,adb shell进入到目录下chmod 777 minicap minicap有可执行权限了,接下来测试一下minicap是否可用,其中-P后面跟的参...

2020-05-23 10:04:42 57 0

原创 源码包安装RabbitMQ3.6

先安装erlang 依赖,也是门编程语言, 下载源码包地址 :https://www.erlang.org/downloads/20.1 首先先安装个依赖 yum install ncurses-devel tar xf otp_src_20.1.tar.gz cd otp_src_20.1 ...

2020-05-17 09:32:09 81 0

原创 centos7安装redis5.0.3

修改配置文件 redis.conf 绑定改为 0.0.0.0 任意机器都可以访问 requiredpass 设置密码 将daemonize属性改为yes(表明需要在后台运行) 启动redis命令 ./redis-server ../redis.conf ./redis-cli aut...

2020-05-17 09:31:54 59 0

原创 三大类算法:递归、排序、二分查找

一、递归 ”递“+”归“。 这两个意思,正是递归思想的精华所在,去的过程叫做递,回来的过程叫做归,在编程语言中对递归可以简单理解为:方法自己调用自己,只不过每次调用时参数不同而已。 满足递归的条件: 1、递归表达是(规律) 如果一个问题的解能够拆分成多个子问题的解,拆分之后,子问题和该问题...

2020-05-17 09:25:10 206 0

原创 JDK1.8中HashMap的源码分析

关键的属性分析 public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable { //Node类型的数组,我们...

2020-04-19 22:45:03 52 0

原创 散列表(Hash表)

散列表的概述 散列结构,散列表(Hash Table)又名哈希表/Hash表是根据键(key)直接访问在内存存储位置的数据结构,利用了数组支持按照下标进行随机访问数据的特性。由数组演变而来的,存的时候,我们这有键key,通过一定散列函数的计算方式,我们把它映射到数组中的某一个位置上进行存储,这样...

2020-04-19 22:44:54 52 0

原创 时间复杂度,空间复杂度

算法的复杂度分析主要包含两个方面: 时间复杂度分析 空间复杂度分析 为什么要进行复杂度分析? 1:和性能测试相比,复杂度分析有不依赖执行环境、成本低、效率高、易操作、指导性强的特点。 2:掌握复杂度分析,将能编写出性能更优的代码,有利于降低系统开发和维护成本。 1:时间复杂度表示法 算法...

2020-04-04 10:48:34 45 0

原创 Stack源码分析

Stack源码分析 Stack底层是数组实现是顺序栈,底层也支持扩容 首先写一段入栈和出栈的程序 public class JdkStack { public static void main(String[] args) { //创建栈对象 Sta...

2020-04-04 10:48:15 22 0

原创 LinkedList源码分析

LinkedList源码分析

2020-04-04 10:47:44 26 0

原创 ArrayList源码分析

public class ArrayList{ public static void main(String[] args){ List list = new ArrayList(); list.add("a"); ...

2020-04-04 10:47:26 50 0

原创 数组、链表、栈、队列

1、理解什么是线性表 2、掌握数组数据结构,读懂ArrayList的部分源码 3、掌握链表数据结构,读懂LinkedList的部分源码 4、掌握栈这种数据结构,读懂stack的部分源码 5、掌握队列这种数据结构 ...

2020-04-04 10:46:29 70 0

原创 Dubbo SPI 、服务暴露、服务引入源码解析

Dubbo的SPI SPI什么是SPI,SPI全称为Service Provider Interface,是一种服务发现机制,SPI的本质是将接口实现类的全限定名配置到文件中,并由服务器加载读取配置文件,加载实现类,这样可以在运行时,动态为接口替换实现类,正因此特性,我们可以很容易的通过SPI机...

2020-04-04 10:43:16 31 0

原创 Dubbo简述

Apache Dubbo是一款高性能的RPC框架,Dubbo提供三个核心能力:面向接口的远程方法调用,只智能容错和负载均衡,以及服务自动注册和发现。 什么是RPC RPC全称remote procedure call ,即远程过程调用。例如服务A ,和服务B,分别部署在两台机器上,服务A想要调...

2020-04-04 10:42:16 36 0

原创 Zookeeper详解

zookeeper是一个开源的分布式协调服务,提供分布式数据一致性解决方案,分布式应用程序可以实现数据发布订阅、负载均衡个、命名服务、集群管理分布式锁、分布式队列等功能 zookeeper提供了分布式数据一致性解决方案, ...

2020-04-03 21:40:04 82 0

原创 Redis-企业级解决方案

一、缓存预热: 总结,缓存预热就是系统启动前,提前将相关的缓存数据直接加载到缓存系统。避免在用户请求的时候,先查询数据库,然后再将数据缓存,用户直接查询事先被预热的缓存数据。 二、缓存雪崩: 缓存雪崩就是瞬间过期的key数据量过大,导致redis没有命中,从而导致对数据库服务器造成压力,如果...

2020-03-14 17:39:57 50 0

原创 Redis集群

一、主从复制 主从复制简介 主从复制的作用: 读写分离:master写、slave读,提高服务器的读写负载能力 负载均衡:基于主从结构,配合读写分离,由slave分担master负载,并根据需求的变化,改变slave的数量,通过多个从节点分数据读取负载,大大提高Redis服务器并发量与数据吞...

2020-03-14 17:39:09 24 0

原创 Redis-高级

Redis 在linux下安装 持久化 事务 删除策略 redis.conf 高级数据类型

2020-03-14 17:38:15 42 0

原创 Redis-基础

罪魁祸首——关系型数据库 性能瓶颈:磁盘IO性能低下(CPU数据交换是和高速缓存cache,cache的数据交换和谁做,和内存。内存的数据交换和谁做,和磁盘做,这些基础数据存在硬盘上,一层层往上传递。数据库是保存在磁盘上的) 扩展瓶颈:数据关系复杂,扩展性差,不便于大规模集群 解决思路 降低...

2020-03-14 17:37:20 52 0

原创 移动端专项测试

adb命令 稳定性monkey 内存使用情况 cpu使用情况 电量消耗 流畅度 流量消耗 弱网测试 弱网延迟测试 开源工具 SoloPi 阿里开源 GT腾讯开源已经不更新了 各个指标 横向对比、纵向对比 ADB ,Android调试桥(Android Debug Brid...

2020-02-11 21:14:57 275 0

原创 Spring-Bean的生命周期

自动装配的含义是,javaBean之间的依赖关系,用Autowire 代表的是byName类型,进行装配。而依赖注入是指对这个bean里面的属性赋值,以是一个Bean的生命周期。 1、实例化bean对象(通过构造方法或者工厂方法) 2、设置对象属性(setter等)(依赖注入) 3、如果Bean...

2020-01-10 19:41:09 50 0

原创 性能测试之类加载(五)

一、类的加载 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 二、类的生命周期 类的加载、连接和初始化过程都是在程序运行期间完成的。 这个时候类加载的全过程,包括加载、验证、准备、解...

2019-12-31 02:20:09 49 0

原创 设计模式-建造者设计模式

建造者模式(Builder Pattern),又叫做生成器模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来,使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。 建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容可构建它,用户不需要知道内部的具...

2019-12-30 23:31:30 24 0

原创 设计模式-代理设计模式

代理模式(Proxy) 代理模式的基本介绍 1、代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象,这样做的好处是,可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。 2、代理模式有不同的形式,主要有三种,静态代理、jdk代理(也叫接口代...

2019-12-30 23:31:21 38 0

原创 java基础-反射

反射技术:其实就是动态加载一个指定的类,并获取该类中的所有的内容。而且将字节码文件封装成对象,并将字节码文件中的内容都封装成对象,这样便于操作这些成员。简单说:反射技术可以对一个类进行解剖。 反射的好处:大大的增强了程序的扩展性。 反射的基本步骤: 1、获得Class对象,就是获取到指定...

2019-12-29 16:06:23 28 0

原创 设计模式-单例设计模式

单例设计模式是指,单例对象的类,只允许实例一个对象,这样,在jvm堆内存中,就只开辟了一块空间来存储这个对象,这种设计的优点是避免了内存中空间的浪费,避免频繁的创建销毁对象,为整个系统提供一个全局的访问的。打比方,windows桌面,我们已经点开了一个回收站,当我们再点击一次回收站的时候,不会再弹...

2019-12-26 21:10:25 29 0

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