自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(73)
  • 资源 (1)
  • 收藏
  • 关注

原创 超强接口协作平台如何打造:细数Apifox的六把武器

Apifox 是 API 文档、调试、Mock、测试一体化协作平台,定位Postman + Swagger + Mock + JMeter。通过一套系统、一份数据,解决多个系统之间的数据同步问题。

2022-07-26 18:34:08 2225 15

原创 ElasticSearch进阶:一文全览各种ES查询在Java中的实现

本文基于7.13.2版本,es从7.0以后,发生了很大的更新。7.3以后,已经不推荐使用TransportClient这个client,取而代之的是Java High Level REST Client。https://www.elastic.co/guide/en/elasticsearch/client/java-rest/7.3/java-rest-high.htmlSpringBoot集成ElasticSearchpom.xml:<dependency> <groupId

2021-10-30 17:17:15 16560 32

原创 深入Java线程池:从设计思想到源码解读

本文由浅入深,阐述下面4大内容,深入解读线程池1、线程池的优势2、线程池的原理3、线程池的使用4、线程池的源码解读

2021-03-02 09:29:35 28507 92

原创 Mysql索引:图文并茂,深入探究索引的原理和使用

关于Mysql索引的走心总结,建议收藏,反复阅读。

2020-11-25 16:43:44 15673 63

原创 Java8 Stream:2万字20个实例,玩转集合的筛选、归约、分组、聚合

Java8 Stream横空出世,让我们从繁琐冗长的迭代中解脱出来,集合数据操作变得优雅简洁。这些操作:集合的filter(筛选)、归约(reduce)、映射(map)、收集(collect)、统计(max、min、avg)等等,一行代码即可搞定!让我们一起敲打案例代码,搞定Java8 stream吧!

2020-11-09 13:52:52 171989 425

原创 【Java基础-3】吃透Java IO:字节流、字符流、缓冲流

什么是Java-IO?字符流和字节流的区别与适用场景是什么?缓冲流到底实现了什么?如何高效地读写文件?本文用大量的示例图和实例,带你吃透Java IO。

2020-09-23 20:12:33 106993 196

原创 【SpringBoot-3】切面AOP实现权限校验:实例演示与注解全解

何为AOP,AOP的注解详解,AOP的使用详例,以上内容尽在本文

2019-10-26 16:34:47 56891 245

原创 徒手撸平台——基于Springboot+layui实现接口自动化平台

测试平台之接口自动化1 简介1.1 技术栈1.2 特点2 详述2.1 平台入口2.2 分级设计2.2.1 项目管理2.2.2 接口列表2.2.3 用例管理2.2.4 测试集合2.2.5 测试结果1 简介1.1 技术栈后端:SpringBoot + Mybatis前端:jQuery + layui1.2 特点极致简洁:页面简洁,交互方便,易于上手数据管理:可视化数据管理,数据的添...

2019-09-06 16:11:41 17044 27

原创 layui+SpringBoot实现表格增删改查

前文演示了如何后端数据渲染在前端表格,接下来本文将演示如何在前端增加、删除和编辑数据。本文使用的是通过按钮点击事件弹出

2019-07-27 18:10:03 18713 21

原创 一个成功的Git分支模型

本文所讲的开发模型是我在Git诞生后不久的2010年构思的,距今已有十余年。在这10年里,git-flow(本文中列出的分支模型)在许多软件团队中非常流行,以至于人们开始将其视为某种标准,但不幸的是,它也被视为一种教条或万灵药。

2022-09-22 16:53:28 3136 2

原创 线程与进程,你真得理解了吗

相信大家面试时一定没少被一个问题刁难,那就是进程和线程的区别是什么?这个问题延申开来并不像表面那么简单,今天就来深入一探。开始前先看一组非常传神的图例,相信可以帮助你更好理解进程与线程的概念:1 进程与线程的关系和区别什么是进程进程可以说是一个“执行中的程序”。程序是指令、数据及其组织形式的描述,是一个没有生命的实体,只有处理器赋予程序生命时(操作系统执行之),它才能成为一个活动的实体,我们称其为进程。进程有哪些特征?进程依赖于程序运行而存在,进程是动态的,程序是静态的;进程是操作系统进行

2022-05-07 18:27:42 16705 49

原创 深入Quartz,优雅地管理你的定时任务

Quartz是Java定时任务领域一个非常优秀的框架,本文从Quartz的设计简析到Quartz的基本使用,带你快速地理解Quartz

2022-04-18 20:22:45 3571 11

原创 ElasticSearch基础:从倒排索引说起,快速认知ES

下载下载地址:https://www.elastic.co/cn/downloads/elasticsearch安装:1、将压缩包上传到linux服务器2、解压压缩包:tar -zxvf elasticsearch-7.13.2-linux-x86_64.tar.gzes 目录介绍bin:可执行文件在里面,运行es的命令就在这个里面,包含了一些脚本文件等config:配置文件目录JDK:java环境lib:依赖的jar,类库logs:日志文件modules:es相关的模块plug

2021-10-30 17:15:03 4227 4

转载 Redis分布式锁,你用对了吗?

本文转自 微信公众号:牛牛码特今天我们就来聊聊分布式锁。1 分布式锁是什么我们的手机有锁、车有锁、家门有锁、贵重物品会锁进保险箱。可以说,锁在我们生活中无处不在,时刻保护着我们的人身财产安全。在计算机领域也一样,锁可以理解为针对某项资源使用权限的管理,它通常用来控制共享资源,比如一个进程内有多个线程竞争一个数据的使用权限,解决方式之一就是加锁。那分布式锁是什么呢?顾名思义,分布式锁就是分布式场景下的锁,比如多台不同机器上的进程,去竞争同一项资源,就是分布式锁。2 分布式锁有哪些特性?具备哪些

2021-09-30 17:41:28 1556

转载 拜托!面试请不要再问我Spring Cloud底层原理

概述毫无疑问,Spring Cloud是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术。不过大多数讲解还停留在对Spring Cloud功能使用的层面,其底层的很多原理,很多人可能并不知晓。因此本文将通过大量的手绘图,给大家谈谈Spring Cloud微服务架构的底层原理。实际上,Spring Cloud是一个全家桶式的技术栈,包含了很多组件。本文先从其最核心的几个组件入手,来剖析一下其底层的工作原理。也就是Eureka、Ribbon、Feign、Hystrix、Zuul这几个组件。1 业务

2021-01-30 15:10:07 3159 13

原创 【Java基础-1】从JDK配置到第一个程序

前言王国维在《人间词话》中说:“古今之成大事业、大学问者,必经过三种之境界:‘昨夜西风凋碧树。独上高楼,望尽天涯路’。此第一境也。‘衣带渐宽终不悔,为伊消得人憔悴。’此第二境也。‘众里寻他千百度,蓦然回首,那人却在,灯火阑珊处’。此第三境也。”独上高楼,忍受无法言说的孤独。望尽天涯,苦寻难以捉摸的前路。这些人,我称之为觉醒者!相对于浑浑噩噩的大多数人,他们的目光已然超脱眼前的灯红酒绿,开始投向苍茫未知的远方。学习的第一个境界,就是要直面迷茫,拨开迷雾,立下自己清晰的志向。衣带渐宽终不悔,为伊消得人

2020-10-24 22:31:22 3047 1

原创 SpringBoot-3:集成SLF4J+logback进行日志记录

SLF4J+logback进行日志记录1 yml配置文件2 logback.xml常用配置详解2.1 根节点(configuration)2.1.1 读取配置文件:springProperty2.1.2 设置上下文名称:contextName2.1.3 设置变量:property2.2 appender节点2.2.1 控制台输出2.2.1 rollingPolicy2.2.2 filter2.3 ...

2020-09-01 21:09:01 17380 16

原创 JMeter参数化4种实现方式

前言下面是目前JMeter系列已有博文列表,持续更新中:JMeter安装与接口测试入门JMeter接口测试之断言实现JMeter逻辑控制器JMeter配置元件JMeter操作Mysql数据库BeanShell Sampler与BeanShell断言JMeter Linux下执行测试JMeter自定义日志与日志分析1 参数化释义什么是参数化?从字面上去理解的话,就是事先准备好数据(广义上来说,可以是具体的数据值,也可以是数据生成规则),而非在脚本中写死,脚本执行时从准备好的数据中

2020-08-26 21:09:44 15733 6

原创 JMeter接口测试之断言实现

前言下面是目前已有的博文列表,持续更新中:JMeter安装与接口测试入门JMeter逻辑控制器JMeter配置元件JMeter操作Mysql数据库BeanShell Sampler与BeanShell断言JMeter Linux下执行测试JMeter自定义日志与日志分析断言是什么什么是断言?在接口测试中,我们预设接口响应结果中会出现一个片段,我们称之为预期值,断言会在接口调用后尝试捕捉这个预期值,如果能捕捉到,则判定接口成功,否则判定接口为失败。为什么需要断言?因为JMeter

2020-08-26 10:49:54 8939 8

原创 JMeter安装与接口测试入门

安装环境配置1、JDK版本:JDK1.8及以上;2、操作系统:JMeter可以在当前任何一个已经部署了Java的操作系统上运行,Unix(Solaris,Linux,etc)、 Windows(98,NT,2000,XP,WIN7)、Open VMS Alpha 7.3+JDK安装与配置1、jdk安装:在官网下载jdk1.8版本压缩包,解压到指定文件夹即可。2、环境变量配置1)右键点击...

2020-08-24 14:39:02 23490 20

原创 【Mysql进阶-3】大量实例悟透EXPLAIN与慢查询

SET FOREIGN_KEY_CHECKS=0;-- ------------------------------ Table structure for student-- ----------------------------DROP TABLE IF EXISTS `student`;CREATE TABLE `student` ( `id` int(11) NOT NULL, `name` varchar(25) DEFAULT NULL, `create_time` d

2020-08-20 19:47:57 3460 4

原创 【Mysql-3】条件判断函数-CASE WHEN、IF、IFNULL详解

将null转为0在Java程序中调用sql语句时,如果返回结果是null,是非常容易引发程序抛出空指针异常的。单字段结果由null转01、普通sql:// 返回结果:nullSELECT price FROM goods WHERE name='light';2、IFNULL包含单个字段:// 返回结果:0SELECT IFNULL(price,0) price FROM g...

2020-07-19 16:41:07 15140 1

原创 JMeter websocket接口测试

jetty-httpjetty-iojetty-utilwebsocket-apiwebsocket-clientwebsocket-common相关依赖下载:链接:https://pan.baidu.com/s/1PTOyTBzmOwLPNhxB-TxR7g提取码:uq25将相关jar包放入JMeter安装目录的/lib/etc中,重启JMeter。页面内填写:...

2020-07-17 10:33:34 4461

原创 【Mysql学习之旅-2】经典sql面试题及答案分析

首先,数据初始化,让我们继续玩坏倚天屠龙的江湖:1、学生表 student(s_id:学生id,s_name:学生姓名,s_birth:学生生日,s_sex:学生性别):2、教师表teacher(t_id:教师id,t_name:教师姓名)3、课程表 course(c_id:课程id,c_name:课程名称,t_id:教师id):3、成绩表 score(s_id:学生id,c_id:课程id,score:分数)初始化数据的sql附在文章末尾题目开始。1、查询及格学生(每门课程的分数&g

2020-06-25 11:25:30 4160 2

原创 layui表格集成select选择框和switch开关

前言在前文 layui表格使用自定义模板templet中,我们已经初步感受了layui表格使用自定义模板的基础操作。现在,在自定义模块应用的基础上,我们进一步丰富layui表格对其他组件的集成。觉得本文有所帮助的朋友们,请不吝点出你的赞。layui表格中集成select下拉选择框和switch开关 效果图如下:本文中,表格将完全使用静态数据渲染,数据如下:[ { "id": 1, "name": "iPhone", "type": 0, "price": 6000.0, "

2020-06-07 10:46:20 6399 2

原创 【MyBatis-4】MyBatis批量insert、update、delete数据

前言在日常开发中,批量操作数据库数据是常见场景,比如批量插入、批量修改、批量删除数据。MyBatis为批量操作数据提供了非常便利的方案。当然,也可以在程序中自己拼接sql语句,在dao层传入该sql语句作为参数。要注意的是,采用这种方式时,不能使用 # 而是要使用 $。批量操作需要使用到比较复杂的标签,所以都在 xml 中实现。需要注意的是,数据库配置中要将allowMultiQueries置为true,例如:jdbc-url: jdbc:mysql://localhost:3306?useUni

2020-06-02 22:23:52 3114 1

原创 【UI自动化-3】UI自动化元素操作专题

前言此处配图基本操作元素的基本操作有很多,常用的有三个:click(点击)、clear(清空)、sendkeys(输入内容)、submit(提交)。何为基本操作,即这些方法在WebElement接口类中定义,通过实例化的WebElement直接调用。void click():单击目标元素。void submit():提交当前form(表单)内容到远程服务器,注意是特定于表单元素而言的。...

2020-05-07 19:19:25 4212

原创 【UI自动化-2】UI自动化元素定位专题

前言UI自动化的学习,个人认为应该分五步走:环境搭建、元素定位、特殊场景处理、框架设计与搭建、测试平台开发。第一步的环境搭建其实没什么难度,都是固定的套路。今天就来到了第二步的元素定位,可以说元素定位是整个UI自动化的基本功。我查阅了大量的资料,在动手实践的基础上,整理总结了此文。众所周知,Selenium提供了8种定位方式:id:根据id定位,是最常用的定位方式,因为id具有唯一性,定...

2020-05-07 19:16:18 4109

原创 maven的安装与使用

前言Maven 是 Apache 下的一个纯 Java 开发的开源项目。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。下载与安装maven官网:http://maven.apache.org/download.htmlmaven的安装非常简单:将下载...

2020-04-05 15:14:08 3654

原创 【UI自动化-1】UI自动化环境搭建与简单示例

chrome驱动下载地址:http://chromedriver.storage.googleapis.com/index.html

2020-04-05 13:31:27 3677

原创 安卓模拟器修改hosts文件

前言在最近的【域名不可用降级方案】测试中,遇到了需要将一个域名指向一个无效IP的需求,即:192.168.112.11 www.test.com要实现这个需求,除了在服务端进行修改域名的IP配置之外,在客户端也有两个我能想到的实现方法。**方法1:**修改pc端的hosts文件(本地hosts配置优先级最高),并使手机或模拟器走pc端的代理(借助Charles等代理工具),使用方法详...

2020-03-31 19:50:20 4465

原创 非常好用的抓包工具:Charles使用详解

Charles使用详解1 安装2 开启手机代理2.1 开启代理步骤2.2 抓包页面2.3 https请求3 弱网测试Charles是一款非常优秀的代理工具,能帮助我们完成抓包、弱网测试等工作。其本身操作并没有很复杂之处,这里对Charles的诸多操作做一下整理和记录,作为操作手册以备忘。整理的内容只是Charles的一部分功能,后续会随时进行补充。1 安装charles官方下载地址:(很奇怪...

2020-03-31 16:52:41 4110 1

原创 【Java多线程-3】Future与FutureTask

Future与FutureTask浅析FutureFuture简介Future使用示例FutureTaskFutureTask简介FutureTask使用示例前文中我们讲述了创建线程的2种方式:直接继承Thread和实现Runnable接口,但这两种方式在执行完任务之后都无法获取执行结果。自从Java 5开始,JDK提供了Callable和Future,解决了上述问题,通过它们可以在任务执行完...

2020-03-31 15:45:16 3062

原创 【Java多线程-4】CompletionService详解

CompletionService是一个接口,该接口只有一个实现类 ExecutorCompletionService,该类使用创建时提供的 Executor 对象(通常是线程池)来执行任务,然后将结果放入一个阻塞队列中。// Linkedblockingqueue作为任务完成队列ExecutorCompletionService(Executor executor) // 将所提...

2020-03-31 15:43:41 3238

原创 【Java多线程-5】 CompletableFuture详解

CompletableFuture详解1 创建对象2 结果处理3 结果转换3.1 thenApply3.2 thenCompose4 结果消费4.1 thenAccept4.2 thenAcceptBoth4.3 thenRun5 结果组合6 任务交互6.1 applyToEither6.2 acceptEither6.3 runAfterEither6.4 runAfterBoth6.5 any...

2020-03-31 15:42:46 3517 2

原创 【Java多线程-7】阅尽Java千般锁

前文描述了Java多线程编程,多线程的方式提高了系统资源利用和程序效率,但多个线程同时处理共享的数据时,就将面临线程安全的问题。例如,下面模拟这样一个场景:一个售票处有3个售票员,出售20张票。public class SellTickets { public static void main(String[] args) { TicketSeller seller1 ...

2020-03-31 15:40:46 3384

原创 【Java多线程-6】synchronized同步锁

synchronizedsynchronized 原理概述操作系统层面JVM层面2 synchronized 使用参考资料前文描述了Java多线程编程,多线程的方式提高了系统资源利用和程序效率,但多个线程同时处理共享的数据时,就将面临线程安全的问题。例如,下面模拟这样一个场景:一个售票处有3个售票员,出售20张票。public class SellTickets { public s...

2020-03-31 15:35:49 3965 3

原创 【Java多线程-2】Java线程池详解

java.uitl.concurrent.ThreadPoolExecutor类是线程池中最核心的一个类,因此如果要透彻地了解Java中的线程池,必须先了解这个类。1 ThreadPoolExecutor概述1.1 构造方法在ThreadPoolExecutor类中提供了四个构造方法:public class ThreadPoolExecutor extends AbstractExecu...

2020-03-31 15:34:13 3676 2

原创 JMeter常用内置对象:vars、ctx、prev

在前文 Beanshell Sampler 与 Beanshell 断言 中,初步阐述了JMeter beanshell的使用,接下来归集整理了JMeter beanshell 中常用的内置对象及其使用。1 varsvars API:http://jmeter.apache.org/api/org/apache/jmeter/threads/JMeterVariables.htmlv...

2020-03-31 15:32:41 6951 3

原创 【SpringBoot-3】Lombok使用详解

Lombok使用详解Lombok简介Lombok安装Lombak使用@Data@Setter&@Getter@Builder@NonNull@Log4j@AllArgsConstructor@NoArgsConstructor@EqualsAndHashCode@RequiredArgsConstructor@Cleanup@ToString@Value@SneakyThrows@Sync...

2020-03-31 15:31:39 3626

性能测试、自动化测试总结-密码:Mu2018

性能测试、自动化测试精心总结,包括压力测试理论方法、压测工具使用、压测方案设计、压测脚本开发等

2019-01-31

空空如也

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

TA关注的人

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