自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

测试架构师养成记的博客

让你又吃成长快乐了呀~

  • 博客(51)
  • 收藏
  • 关注

原创 3分钟带你明白HTTP(上)

说到HTTP,相信无论是开发还是测试都不会陌生,我们的日常工作中基本上都会跟它打交道。但是关于HTTP全部的知识点,你真的了解吗?这篇就来让我们好好了解一下HTTP吧。HTTP协议简介HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP是基于T...

2019-10-28 22:09:03 337

原创 大话Token、Cookie和Session

众所周知,http协议是无状态的协议,服务器不能清楚判定发送方的身份,但在类似网络购物等交互式应用场景中,服务器又需要能够真实的区分发送请求的用户身份,否则把张三购买的物品发送给了李四,对于张三来说,肯定是零容忍。那这一切又是如何做到的呢?这就不得不提一下cookie、session和token了。Cookie的定义cookie是指小段的文本信息(key-value格式),是浏览器实现的一种...

2019-10-25 22:32:55 395

原创 不一样的接口测试之功能

近期一个刚入行的测试朋友希望我可以写一篇关于接口测试的文章,作为接口测试入门的参考。那作为每个测试都必须会的接口测试,是不是就是很简单呢?其实不是,我们的接口测试其实也有很多你不知道的点。本系列文章就带你系统的了解一下接口测试吧。接口的定义接口主要指外部系统与内部系统之间以及内部各个子系统之间的交互联系点,通过这些交互联系点,按照特殊的规则,也就是所谓的协议,进行系统间数据或资源的交换。常见...

2019-10-14 21:06:14 566

原创 绕不开的TCP之超时重传

前文介绍了TCP建立连接和断开连接的方式。那在连接建立之后,TCP如何保证数据的可靠传输的呢?毕竟现实的网络环境是这样的复杂,出错、超时和丢包的种种问题时有发生,背后的秘密在哪里呢?跟随我们的文章,一起探究一下吧。TCP重传机制TCP协议是一种面向连接的可靠的传输层协议,它保证数据可靠传输的基本原理是在发送一个数据之后,就开启一个定时器,若是在这个时间内没有收到刚才发送数据的ACK确认报文(是...

2019-10-10 21:07:32 419

原创 绕不开的TCP之三次握手

在面试过程中,无论是开发还是测试岗位,TCP都是一个绕不开的话题,而谈到TCP,大概率三次握手也会被提及,那应该如何回答这个问题呢?在回答这个问题之前,让我们先预热一波吧。TCP的定义TCP协议全称: 传输控制协议, 顾名思义, 就是要对数据的传输进行一定的控制,它是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP连接全过程的状态TCP连接全过程中,客户端及服务端存在的状态如下:...

2019-10-09 20:09:05 1052

原创 ThreadPoolExecutor详解

近期一位测试朋友参加了天猫的面试后,感慨大厂视角与二线互联网公司的差异,对候选人的要求不仅仅局限在测试方面,同时在架构及开发方面也进行了全面的摸底,其中重点提到了线程池中的核心类ThreadPoolExecutor,今天让我们从源码出发,来一起学习一下吧。ThreadPoolExecutor构造方法线程池核心类ThreadPoolExecutor的构造方法如下所示public ThreadP...

2019-10-06 22:17:02 516

原创 测试作战能力level-up

众所周知,头部互联网公司测试团队已经逐渐由人海战术过渡到精干单体作战阶段,测试人员与开发人员的比例已经由1:1逐渐过渡到1:12甚至更多,而产品质量也是步步高升。在测试人员精简的前提下,他们是如何做到的呢?秘诀有很多,最关键的有两点,工具和人员。今天就暂且抛开各种辅助提效工具,重点说一下测试人员素质的提升。传统意义上的测试人员无非关注以下几点:良好的业务理解能力良好的沟通表达能力...

2019-10-04 18:21:28 272

原创 完美避开线程池血坑

江湖草根测试小A经过三年蛰伏,声名鹊起,终于鼓起勇气,去参与了自己向往已久的霸主阿里的选拔。经过一番精心准备,雄心万丈的小A来到阿里参加了入门考察,结果遭遇当头一板砖(FixedThreadPool在实战中是如何运用的),直接被淘汰。无奈之余,小A只能灰溜溜的回到门派,并虚心向师傅资深测试大C请教。大C酝酿了一下,完整的解释了一下线程池,并重点介绍了一下FixedThreadPool及其使用场景。...

2019-10-04 18:09:06 237

原创 容器升级不着急,通用方案在这里

近期,公司部分老业务系统为了提升系统的性能及安全性,需要升级Tomcat到8.5.x版本。看似一个简单的版本升级,但却遇到了不少问题。在容器升级后,碰到了两个问题,现象及解决方案如下:问题一:容器迁移完成后,启动项目后报错。问题原因:项目是springboot框架实现,并且基于java8,修改配置启动后,新war包并没有实际进入Tomcat容器。解决方案:通过mvn clean insta...

2019-10-01 21:04:10 503

原创 深度学习与首屏时间的完美结合

近期公司应用页面打开相对迟缓,用户实际感受到的时间与产线业务埋点时间差异较大,引起了业务同事对埋点数据准确性的质疑。简单梳理了一下以后发现,误差页面普遍存在较多的展示图片。为了提高用户的体验,开发采用了预加载的方式。在真实图片下载成功之前,优先展示默认图片,但是实际埋点数据上报是在页面Dom加载完成的时候就开始上报的(前端页面基本上采用的是Vue或者React框架,在相关钩子函数进行了埋点数据的...

2019-09-25 13:08:47 268

原创 第三方库漏洞通用解决方案

fastjson近期曝出代码执行漏洞,恶意用户可利用此漏洞进行远程代码执行,入侵服务器,该漏洞评级为“高危”。公司要求立即进行版本升级解决该安全漏洞。那什么是fastjson呢?fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。那漏洞的修复方案是什么呢?针对本次0...

2019-09-22 22:07:31 1194

原创 糟糕!页面加载太慢!

9月16日晚,小王正美滋滋地等着周董的《说好不哭》上线,但是公司的oncall电话进来,说是现在公司活动页面加载越来越慢。接完电话,小王立马打开了电脑排查问题,不然自己真的要哭了。小王利索地登上了公司的线上监控平台,发现慢请求越来越多。机智的小王立马想到,系统响应突然变慢,无外乎CPU占用过高或者Full GC次数过多这些原因。可是通过监控查看了当前的CPU和系统内存后,发现一切正常。这下可把...

2019-09-21 20:27:23 182

原创 BAT大门的正确打开方式(一)

近期人员优化传闻愈演愈烈,一向以稳定著称的平安系要优化20%风声也不绝于耳。在经济下行的当下,作为一个IT民工,正确的操作方式是什么呢?坚守和跳槽是唯二选择,但无论如何选择,都需要结合本公司实际业务的真实状况及未来前景,是否能够应对经济持续下行的压力。毕竟独木不成林,在现代社会里面,一个人再优秀,也不能挽救一艘即将沉没的航母。业务发展良好,现金流充沛,未来前景光明,自身也是核心人员,整个一副上升...

2019-09-20 19:18:32 167

原创 数据库测试三部曲——兼容性

前言众所周知,互联网业务的迭代,归根结底是数据存储及其消费方式的改变,这就涉及数据的落地及查询,其中数据库操作就是尤为高效的一种方式。那如何在业务的高速迭代中,保证数据库语句的兼容性呢?语句构成数据库语句通常意义上分为三类,分别为DDL、DML和DCL。DDL(Data Definition Languages)语句:数据定义语言,这些语句定义了不同的数据段、数据库、表、列、索引等数据库...

2019-09-01 21:04:07 1620

原创 解决Linux服务器上/etc/profile配置终端不生效问题

背景服务器上更新一下java版本,就想重新在配置文件中配置一下。原先解决方案1、修改了/etc/profile中JAVA_HOME的配置路径2、source /etc/profile该方案在source以后,通过查看java version确实生效了。但是第二天重新登上服务器后,发现还是老的配置,或者重新开一个新的终端,还是老的配置。彻底解决方案真正生效的配置文件在~/.bash_p...

2019-08-11 15:53:13 3050

转载 Spring Boot线程池

前言前两天做项目的时候,想提高一下插入表的性能优化,因为是两张表,先插旧的表,紧接着插新的表,一万多条数据就有点慢了 后面就想到了线程池ThreadPoolExecutor,而用的是Spring Boot项目,可以用Spring提供的对ThreadPoolExecutor封装的线程池ThreadPoolTaskExecutor,直接使用注解启用使用步骤先创建一个线程池的配置,让S...

2019-06-21 17:13:21 567

原创 mybatis中#与$的区别

前言最近在写代码过程中遇到一个问题,这里简单做下描述。本意想写如下这么一条SQL。SELECT t.id, t.name, t.version, t.module, t.test_type, t.platform, t.test_case, t.test_group FROM UI_TEST_SUIT AS t WHERE t.id in (1,2);库中确实存在id为1,2的这两条记录,...

2019-06-19 18:36:12 112

原创 APP弱网测试

什么是弱网测试弱网测试主要是在网络质量差的情况下导致丢包和延迟现象而引发的问题。什么是弱网络网络包括下行速度,下行速度,网络的响应延迟,网络的可靠性,网络的稳定性等这些特性。当这些特性出现问题是都能可以定义为弱网络。什么时候算弱网络是根据产品,没有特定数值,比如网络游戏需要一个网速的最低值, 低于这个网速可能会出现延迟影响游戏体验。当然还有网络的可靠性,当网速正常,但是这个网络不可靠,时不时...

2019-06-09 19:08:16 843

原创 java多线程常见面试题(下)

1、什么是 ThreadLocal 变量?ThreadLocal 是 Java 里一种特殊的变量。每个线程都有一个 ThreadLocal 就是每个线程都拥有了自己独立的一个变量,竞争条件被彻底消除了。它是为创建代价高昂的对象获取线程安全的好方法,比如你可以用 ThreadLocal 让 SimpleDateFormat 变成线程安全的,因为那个类创建代价高昂且每次调用都需要创建不同的实例所以...

2019-06-01 22:03:08 192

原创 java多线程常见面试题(上)

前言Java 语言一个重要的特点就是内置了对并发的支持,让 Java 大受企业和程序员的欢迎。大多数待遇丰厚的 Java 开发职位都要求开发者精通多线程技术并且有丰富的 Java 程序开发、调试、优化经验,所以线程相关的问题在面试中经常会被提到。在典型的 Java 面试中, 面试官会从线程的基本概念问起, 如:为什么你需要使用线程, 如何创建线程,用什么方式创建线程比较好(比如:继承 thre...

2019-05-26 13:27:47 1769

转载 Java 注解 (Annotation)

文章开头先引入一处图片。这处图片引自老罗的博客。为了避免不必要的麻烦,首先声明我个人比较尊敬老罗的。至于为什么放这张图,自然是为本篇博文服务,接下来我自会说明。好了,可以开始今天的博文了。Annotation 中文译过来就是注解、标释的意思,在 Java 中注解是一个很重要的知识点,但经常还是有点让新手不容易理解。我个人认为,比较糟糕的技术文档主要特征之一就是:用...

2019-05-26 12:54:13 178

原创 微信小程序测试方案

小程序架构小程序主要分为两个主要的部分:view模块和service模块。view模块负责UI展示,它由wxml和wxss转换后的代码以及微信提供的辅助模块组成。一个view模块对应一个webview组件,小程序支持多个view存在,view模块通过微信jsbridge对象来跟后台通信。小程序类型小程序主要分为三个版本类型:开发版、体验版、正式版。开发板和体验版无需审核,需要给微信号配置权...

2019-05-19 15:13:42 7448 2

原创 关于maven的一些问题

关于mavenMaven 是 Apache 组织下的一个跨平台的项目管理工具,主要服务于基于Java平台的项目构建,项目管理和项目信息管理,提供了帮助管理构建、文档、报告、依赖、scms、发布、分发的方法。可以方便的编译代码、进行依赖管理、管理二进制库等等。Maven 提供了标准的软件生命周期模型和构建模型,通过配置就能对项目进行全面的管理。它的跨平台性保证了在不同的操作系统上可以使用相同的命令...

2019-05-03 23:05:54 989

原创 spingboot集成ActiveMQ

回顾第一篇:mac下安装ActiveMQ第二篇:ActiveMQ两种模式集成步骤1、引入依赖<!--后面两个依赖可以根据实际情况引入--> <dependency> <groupId>org.springframework.boot</groupId> <artifactI...

2019-04-21 14:26:21 202

原创 现金流游戏的一点感悟

这篇文章终于是非技术相关的啦,昨天参与了《穷爸爸富爸爸》中的现金流游戏,所以将所获得的一点感悟写下来。关于现金流游戏它看上去就像一个“强手”或者“大富翁”一类的游戏,中间画着一只打扮入时的大老鼠。但它并不像那些游戏那样简单,游戏板上有两条路:一条在内部,一条在外部。游戏的目标是走出内部的路――罗伯特把它称作“老鼠赛跑”,进人到外面的路上,或叫“快车道”,并最终以投资获得的收益实现自己的“人生...

2019-04-14 17:38:29 2597

原创 解决Error: Could not detect Mac OS X Version from sw_vers output: '10.14.3'

在使用appium-doctor时遇到了如下问题:Error: Could not detect Mac OS X Version from sw_vers output: ‘10.14.3’【解决方案】通过 vi /usr/local/lib/node_modules/appium/node_modules/appium-support/build/lib/system.js其中找到...

2019-04-06 22:51:52 2757

原创 解决IntelliJIDEA没有Spring Initializr

1、打开idea2、进入settings—Plugins3、在右边的输入框内搜索Spring4、找到Spring Assistant。如果没下载就下载,然后安装后重启idea就行了。

2019-03-30 21:15:21 20439 2

原创 消息队列ActiveMQ两种模式

Apache ActiveMQ是Apache软件基金会所研发的开放源代码消息中间件;由于ActiveMQ是一个纯Java程序,因此只需要操作系统支持Java虚拟机,ActiveMQ便可执行。 —百度百科简介消息队列是分布式系统中重要的组件,通用使用场景为当不需要立即获得结果,但是并发量需控制时就需要使用消息队列。消息列队有两种消息模式,一种是点对点的消息模式,另一种是订阅\发...

2019-03-30 16:17:10 2696

原创 testng简介

简介在设计接口测试框架或者UI自动化框架的时候,大概率都会用到testng这个框架,本篇主要介绍testng这个框架的使用。官方文档:http://testng.org/doc/index.htmltestng的特点注解功能TestNG使用Java和面向对象的功能支持综合类测试(例如,默认情况下,没有必要创建一个新的测试每个测试方法的类的实例)独立的编译时间测试代码运行时配置/数据...

2019-03-23 18:38:00 1413

原创 Mac安装ActiveMQ

【方案一】1、通过brew安装brew install activemq安装完成后,可以通过如下命令查看是否安装成功,版本是什么。activemq --version启动activemqactivemq start【方案二】1.ActiveMQ下载下载地址http://activemq.apache.org/activemq-5154-release.htmlmac选择下...

2019-03-21 21:59:20 2075

原创 Java中使用LDAP登录

近期,因接入集团登录系统,需要通过LDAP实现登录。什么是LDAPLDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP。它是基于X.500标准的,但是简单多了并且可以根据需要定制。与X.500不同,LDAP支持TCP/IP,这对访问Internet是必须的。LDAP的核心规范在RFC中都有定义,所有与LDAP相...

2019-03-18 09:50:38 4831 1

原创 git常用命令

本篇文章主要列举一些在工作中常用的git命令。1、拉取工程至本地git clone 工程地址2、创建一个新的分支git checkout -b 分支名3、添加自己开发的模块git add 本地文件路径+文件名4、查看本地文件提交状态git status5、提交本地改动git commit -m "说明信息"6、推至远程分支git push origin 你的分支名...

2019-03-10 16:18:32 185

原创 java发送邮件

try { String MY_EMAIL_ACCOUNT = "*********@163.com"; String MY_EMAIL_PASSWORD = "*****";// 密码或者是你自己的设置的授权码 // SMTP服务器(这里用的163 SMTP服务器) String MEAIL_163_SMTP_HOST = "...

2019-02-17 12:59:14 554

原创 PG数据库和Oracle数据迁移

前言近期需要将PG数据库的数据迁移至Oracle数据库,并对数据进行一个验证,本文对整个过程中遇到的坑做一个总结。聊聊过程中的坑1、maven引入Oracle的驱动&amp;amp;amp;lt;dependency&amp;amp;amp;gt; &amp;amp;amp;lt;groupId&amp;amp;amp;gt;com.oracle&amp;amp;amp;lt;/groupId&amp;amp;amp;gt; &

2019-01-26 12:07:46 3768

原创 v-charts细节调整之实战

近期平台接入了报表功能,因为前端平台使用的是vue,于是乎这块选择引入v-charts。期间因数据的种类各不相同,这篇文章针对这些细节处理做一个整理。v-charts在使用 echarts 生成图表时,经常需要做繁琐的数据类型转化、修改复杂的配置项,v-charts 的出现正是为了解决这个痛点。v-charts的使用也非常的方便,大家可以阅读官方的文档。指路文档:https://v-char...

2019-01-19 14:06:10 8325 3

原创 基于X5内核的UI自动化

前言最近无论是在微信、QQ浏览器、微信小程序还是加载X5内核的页面进行UI自动化,都会遇到X5内核自动化问题,这篇进行一个问题的总结。基础介绍1、什么是X5内核?X5内核是腾讯基于优秀开源Webkit深度优化的浏览器渲染引擎,搭载在最新一代的手机QQ浏览器上,更快,更便捷。 --百度百科2、什么是webview?Webview是用来展示网页的view组件,使用web...

2019-01-05 12:44:53 2070 5

原创 微信小程序及其兼容性

什么是微信小程序微信小程序是2017年9月,正式发布公测,是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验。可以取代低频APP,不占空间适用功能单一的(小程序最大2M)适合配合线下店铺一起使用,扫描即可获取信息不适用流量和分发的产品(小程序不支持流量)小程序与H5和APP的区别小程序的优点: 小程序要比H5快,小程序是下载到微信APP里的...

2018-12-08 14:44:14 9954

原创 数据库规范

常用DDL/DML语句DML语句(select、insert、update、delete)DDL语句(create、drop、alter)DCL语句(grant、revoke)事务控制(commit、rollback)表操作create table student(id number(11) not null, name varchar2(30),sex char(1), cr...

2018-11-24 13:53:06 138

原创 Android和iOS常用命令

安装应用安卓adb install xxx.apkiOSideviceinstaller -i xxx.ipaiOS模拟器fbsimctl install xxx.app 卸载应用安卓adb uninstall &lt;packageName&gt;iOSideviceinstaller -U &lt;bundleId&gt;查看设备中的应用列表安卓adb s...

2018-11-12 19:18:59 374

原创 缓存常见问题

后端缓存主要讲述redis。简单来说,redis就是一个数据库,不过redis的数据存在内存中,所以存写速度非常快。接下来直接讲常见的缓存问题。缓存击穿概念:对于一些设置了过期时间的key,如果这些key可能会在某些时间点被超高并发地访问,是一种非常“热点”的数据原因:缓存在某个时间点过期的时候,恰好在这个时间点对这个Key有大量的并发请求过来,该key没有命中,大量请求穿透到数据库服务...

2018-11-04 20:34:08 1282

空空如也

空空如也

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

TA关注的人

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