前言:时隔一年,又开始在网上写写学习笔记博客,其实前段时间一直记录在本地,有道云、印象笔记,老是以为没有特别好用的笔记记录。如今继续想在网上写笔记,其实以为应该是要写下本身的成长笔记,和你们分享,也许这种更像是一种监督,这样才能坚持下去。加油!前端
这篇学习笔记,是阅读【全栈性能测试修炼宝典】开始的。将会包括 【原理+实战】!java
2019/09/22python
性能测试:早些年,是把录制脚本、形成负载当成性能测试。mysql
近年来,把定位、分析问题当成性能测试的核心技术。linux
如今,不只要能定位、分析问题,还要把握性能变化趋势。web
性能测试工程师可以帮助解决性能问题、搞定测试中的各类不合理配置,给出专业的优化建议。sql
现状:行业历史缘由致使从事测试业务的工程师专一于业务,忽略了技术。因此立志学好性能测试,须要更加刻苦和坚持、自律和高效、专心了。docker
PS:目前本人是测试菜鸟一只,刚毕业快三个月,只但愿可以一步一步加油,专心一个方向再一个方向。加油吧!还要和我同样的人儿!嘻嘻数据库
扯淡这么久,实际上是我每次看一本书都会看前言啥的给本身打打鸡血!好咯。进入笔记部分。但愿是干货!编程
第一部分:基础篇(启蒙篇、废话篇)
第一章:性能测试方向职业发展方向
1.1为啥选择软件测试(咱们要成为不可替代)
没有技术含量的可代替的软件测试会有危机感的。因此学习就是为了让本身无可替代。。。
1.2软件测试的痛楚
软件测试人员技术通常,没有开发和运维的技术功底(很不服气hhh、‘但不得不认可)
技术上带来的问题:地位、重视度、待遇、成就感、压力、加班、提高、稳定性(缘由:不是很核心价值)
软件项目研发的流程:需求调研分析-概要设计-详细设计-编码-测试-软件交付准备-验收。(测试位于末端,工期会被前面的占用,因此测试时候通常回不多有充足的时间,在不增长测试资源的状况下加班赶工在所不免,学习天然成为一种奢望,还提啥提高技术呢?)
1.3软件测试发展线路(划重点)
困境 !==悲观,软件测试的发展路线仍是很广的。
暂时分为如下发展线路:
3个方向:业务路线、技术路线、管理路线
4个象限:执行层、中层、中高层过渡、高层。
一、业务路线:职位 QA经理、业务专家、产品经理、产品总监、行业咨询顾问等
二、技术路线:自动化测试工程师(编程+业务)、性能测试工程师、软件开发工程师、安全测试工程师、系统分析师、测试总监、研发总监等
三、管理路线:积累业务知识或提升技术储备,可以出色完成完成本职工做,负责带领团队;岗位通常有测试Leader、测试主管、测试经理及测试总监等。
执行层:
(1)软件测试--功能(初级--专职过渡阶段)
(2)软件测试--性能(专职)
(3)软件测试--自动化(专职)
(4)软件测试--安全(专职)
(5)软件测试--白盒(专职)
(6)软件测试--业务(专职)
(7)软件测试--小组长、主管(管理路线)
(8)软件开发(专职)
(9)质量保证工程师SQA(专职--业务线)
中层,中级执行管理领导:
(1)测试分析师(专职--领导过渡阶段)
(2)测试架构师初级(专职--领导过渡阶段)
(3)测试经理(执行领导--管理路线)
(4)QA经理(执行领导--业务路线)
(5)产品经理(执行领导--业务线)
(6)项目经理(执行领导--技术路线)
(7)系统分析师
(8)测试培训师
中高层过渡:
(1)测试总监(执行领导--高级领导)
(2)产品总监(业务路线)
(3)行业咨询顾问(业务路线)
(4)研发总监(技术路线)
(5)项目总监(技术路线)
高层:
(1)CQO--首席质量高
(2)CTO--首席技术官
(3)CIO--首席信息官
(4)CEO--首席执行官
1.4不只仅是性能测试
全栈通常是技术方面的领导者。题目强大的学习功力,比较依赖搜索或者即时学习,根据需求和本身扎实的基本功,把一项或者某二项技能达到接近专科人员的能力。全栈是学习能力强、总结能力强、不断总结和融会贯通提高实战能力,善于分析因果找到问题和解决方案的复合型人才。
做者认为全栈测试比纯测试更加有将来。要成为复合型人才,是愈来愈多软件测试者走上测试总监、技术总监、CTO等高级技术管理类岗位上必需要成为的。
软件测试成为复合型人才除了测试还须要的基本功:(1)需求 (2)代码:代码逻辑、数据库、程序部署在的中间件知识、操做系统、硬件 (3)运维:测试自动化趋势(功能自动化、性能自动化、测试环境自动化也就是持续集成),对系统涉及的中间件、数据库、缓存等产品也要熟练运维。
在测试行业想脱颖而出的话仍是一个技术为关键。测试人员懂开发最好,天然价值更高。测试开发(自动化)兼具。
测试岗位中,尤为是以性能测试岗位须要具有的知识面最广,涉及程序开发、数据库、中间件、操做系统、硬件知识等,基本就是照着全栈测试的模板在培养了,突破手工测试选择性能测试是一个好的方向,有了这个的积累就不只仅能作性能测试、也可作开发、测试开发(自动化)、架构等多种都行。
1.5招聘要求看岗位价值(需求决订价值)
广州某公司-高级性能测试工程师(2-2.5w/月)
深圳某公司-性能测试工程师(1.4-1.8w/月)
岗位要求:
有必定的抗压能力,学习能力强
任职资格:
上海某公司-性能测试工程师(0.9-1.3w/月)
岗位职责:
任职要求:
1.6性能测试技能树
一、测试工具
工具使用了节省时间的,固然有时候还须要本身编写程序来实现测试简本。而且这两个性能测试工具其实不止能作性能,还能够作功能自动化回归、API和UI测试等均可以实现。并不非 要Selenium、WebDriver才能作自动自动化测试。
二、测试基础
三、代码:Java:目前国内相对普及
python:胶水语言,测试行业中比较热门的一门语言
四、服务器性能诊断知识
Linux:性能测试从业者必须掌握的系统之一,搭建环境、性能诊断都离不开。
Windows Server:服务器操做系统,中小公司用的多
数据库:关系型数据库(DB二、Oracle、SQLServer、MySQL等),NoSQL数据库泛指非关系型数据库
非关系型临时性键值存储(memcached、Redis)、永久性键值存储(ROMA、Redis)、面向文档的数据库(MongoDB、CouchDB)、面向列的数据库(Cassandra、HBase)Hadoop等
五、性能调优技能
性能测试最难的就是定位性能测试瓶颈。
性能调优:一是创建性能数据分析模型,收集相关资源和指标信息、分析背后的缘由;二是从系统工程,产品的上上下下涉及的全部方面进行优化,包括软件产品、中间件、虚拟机、操做系统、硬件等。软件产品包括系统架构、业务涉及、代码实现、数据库物理设计以及数据库各类配置。
对于测试来讲:无论是脚本实现仍是测试过程当中的网络监控,都须要针对通讯协议(见上图),天然要熟悉这些。
六、自动化/持续集成(工具见上图)
理用Jenkins和Hudson等持续集成工具将咱们性能测试搭建环境、执行等时间大幅度缩短。持续集成帮助咱们自动化代码集成、环境集成、自动化测试执行和存储和整理测试报告。
七、云计算和虚拟化
1.7小结
持续加油,高度自律,严格要求。全栈测试,咱们能够先朝着性能测试出发。且目前对性能测试工程师的要求就是全栈的要求。加油吧!
2019-09-23 00:27:01
2019/09/23
第二章:性能测试初体验
前言(回顾):认识性能测试。性能测试是一项综合性的工做,致力于暴露性能问题,评估系统性能趋势。性能测试工做实质上是利用工具去模拟大量用户操做来验证系统可以承受的负载状况,找出潜在的性能问题,分析而且解决;找出系统性能的变化趋势,为后续的扩展提供参考。并非简单的录制脚本。本章降带你进入性测试的领域,体验性能测试的大体格局和重点。
2.1性能测试的价值
案例出真知【双十一】【12306抢票】等,作好性能测试多么重要,直接和辣么多白花花银子相关啊,动不动几百亿的双十一啊。
总结:要应对大规模的用户共同使用一套系统,就必需要有相对应的强壮性能的系统。性能测试是系统的保障,上线前对系统进行性能测试是必不可少的。
软件测试分类:性能测试真的占很大比,内容中占了8个左右。性能测试是保障系统性能,提供良好的用户体验。
2.2性能测试流程
先上图(性能测试流程):性能测试应该符合项目管理流程。
(1)业务学习:查看文档,手工操做,了解系统功能。
(2)需求分析:分析系统非功能性需求,圈定性能测试范围,了解性能指标。
(3)工做评估:分解、评估、资源投入
(4)设计模型:圈定范围以后,把业务模型映射成测试模型
(5)计划编写
(6)脚本开发
(7)测试环境准备:性能测试环境包括服务器和负载机
(8)测试数据准备
(9)测试执行
(10)缺陷管理
(11)性能分析
(12)性能调优
(13)测试报告:测试工做的重要交付件,对测试结果进行报告,常见的指标说明(TPS、RT、CPU Using),发现的问题等
主要交付件:测试计划、测试脚本、测试程序、测试报告或者阶段性测试报告。
(14)评审
2.3性能测试成功与失败因素
掌握性能测试工具只是性能测试的万里长征第一步,没有必定的需求、开发和运维的专业能力,每每会吃一些苦头。
性能测试的几个难点:(1)需求分析(2)场景设计(3)性能诊断调优(4)环境搭建和模拟
性能测试的重要关注点讲解:
(1)评估系统,需求分析
(2)场景设计,用例设计
(3)测试执行、是否经过
执行时常见的关注指标:响应时间(RT)、吞吐量(TPS)、事务成功率、硬件指标(CPU、内存、存储、网络)、稳定性、内存是否泄露、其余(数据库、中间件、缓存、JVM)
(4)性能诊断调优
要具有跨领域知识,例如开发、运维、数据库、缓存等。
2.4不一样角色看性能
2.5性能测试工具的选择
性能测试须要大量负载,这就须要工具的帮忙。可是工具并不似性能测试的核心,只是起到辅助。
常见性能测试工具:HP的LR、Apache JMeter(开源)、Grinder(开源)、CompuWare公司的QALoad、Microsoft的WAS、RadView的Webload、IBM的RPT、OPENSTA等
2.6性能测试相关术语
(1)负载
(2)性能测试
模拟用户负载来测试系统在负载的 状况i昂下,系统的响应时间、吞吐量等指标可以知足性能需求
(3)负载测试
必定软硬件环境下,不断加大负载(不一样虚拟用户数)来肯定在知足性能指标状况下可以承受的最大用户数。简单说,就是帮咱们对系统进行定容定量,找到系统性能的拐点,给与生产环境规划建议。性能指标包括TPS、RT、CPU Using、Mem Using等软硬件指标。操做层面说,负载测试也是一种性能测试阶段。
(4)配置测试
(5)压力/强度测试
必定软硬件环境下,经过高负载的手段来使用服务器的资源(强调服务器资源、硬件资源)处于极限状态,测试系统在极限状态下长时间运行是否稳定,肯定是否稳定的指标包括TPS、RT、CPU Using、Mem Using等。
(6)稳定性测试
必定软硬件环境下,长时间运行必定负载,肯定系统在知足性能指标前提下是否运行稳定。这里并不强调负载处于极限状态,这就是同上面压力测试不同的地方。稳定性测试着重的是知足性能指标,系统的稳定性。
(7)TPS
每秒完成事务数。一般指每秒成功的事务数。
(8)RT/ART
响应时间/平均响应时间,指一个事务会花费多长时间完成。
(9)PV
每秒用户访问页面的次数。用来分析平均每秒有多少用户访问页面
(10)Vuser虚拟用户
(11)Concurrency并发,分为狭义和广义
狭义并发强调的是对系统的请求操做是彻底相同的,多使用于性能测试、负载测试、压力测试、稳定性测试场景。
广义并发不限制对系统的请求操做,多适用于混合场景、稳定性测试场景。
(12)场景
(13)思考时间
(14)标准差:标准差小,波动小,系统越稳定。包括响应时间标准差、TPS标准差等
2.7性能测试经过标准
性能测试经过的标准包括服务端性能、前端性能和用户体验性能。
2.8性能测试的趋势
性能测试的深度“云”计算化
持续集成将会更好集成性能测试部分。目前已经有公司在用docker来作集成测试
性能测试一部分并入devops(基于云计算)
2.9总结
性能测试工做中要注意的关键点比较多,首先要作好性能测试需求分析(由于不充足的性能测试分析将会致使性能工做的失败),接下来要作好用例和场景设计,尽量复现实际负载,这样执行的操做才是可信赖和可参考的。执行过程当中要作好性能监控工做,为问题分析提供数据支撑。
2019-09-25 23:44:15
2019/09/25
第三章:JMeter体系结构
3.1JMeter简介
JMeter的做用:一款开源桌面应用软件,用来模拟用户负载完成性能测试工做。企业可以以更低的成本使用JMeter进行性能测试构建工做。
JMeter的测试范畴:能够对Web进行测试,提供web录制功能;另外还指出Java请求、JMS、EJB、WebService、JDBC、FTP、LDAP、SMTP、Junit、Mail、MongoDB、JSR223等的测试。方便扩张JMeter功能知足特定的测试需求。JMeter也支持Socket协议测试。JMeter也很方便进行性能测试自动化。总之,JMeter就是一款很是百变的性能测试工具。
本章内容:JMeter体系结构、JMeter运行原理、JMeter运行环境。
2019-10-08 22:29:51 国庆假期加上节前比较忙,如今从新更新。求不打。。。
3.2JMeter体系结构
名称统一:
第二部分:工具篇
第四章:JMeter脚本开发
4.1JMeter工做区介绍
一、目录树:存放测试计划中设计的元件,执行过程当中默认从根节点开始顺序遍历树上的元件。3.0后就好像没有工做台了。在目录树区域中添加进来的都是元件。
二、测试计划编辑区
三、菜单栏
4.2 JMeter Http协议录制
一、BadBoy第三方工具录制
BadBoy就是一个浏览器模拟工具,支持录制回放功能,还能够调试。
做用:能够用来作自动化的测试(由于有捕获表单数据功能)、也能够进行对Web页面进行诊断,诊断系统响应快慢和响应数据的大小。
这里关注的是BadBoy的录制功能。
录制的脚本直接导出生成.jmx格式的文件,正式JMeter的脚本保存格式,实际上就是一个XML格式的文件。
录制方式两种:一种是Request方式(模仿浏览器发哦那个表单信息到服务器,每个资源都将做为请求发送),一种是Navigation方式(记录用户鼠标操做。相似QTP,回放时模拟一个点击)。工具菜单栏上点击 ‘N’能够换成Navigation格式。基于Jmeter脚本要求,选用request方式录制
BadBoy的录制总结:
(1)打开BadBoy,初始界面默认开启了Request的录制模式,默认是录制状态。
(2)地址栏输入请求的页面,回车或者点击工具栏➡开始进行录制
(3)BodBoy脚本目录结构:Test Suite 1:默认的根节点,相似JMeter中测试计划根节点。
Test1:测试活动的根节点,理解成一个业务功能的脚本存放在此目录中
Step1:测试活动的步骤,当业务功能比较长,能够划分多步骤。
(4)导出导成jxm格式
二、自身HTTP代理方式录制
原理:解析网络数据包,按照HTTP协议包装成HTTP Request、HTTP Response等对象,这些对象就是咱们能识别的东西。
第五章:JMeter负载和监听
...