performance_test learning syllabus
背景
性能测试作为测试行业中一块较具技术含量的领域,许多人学习时无从下手。为方便新手更好的接触性能测试,本人网上收集了一些资料并结合本人的一些经验来帮助大家更好的学习性能测试。
为什么要做性能测试
1)目前绝大多数应用都是基于网络的分布式应用,我们无法知道用户数量,用户场景的不确定性,系统测试时,不仅仅是功能,业务逻辑,接口测试,还要测试系统性能。一个用户没问题,但是用户一旦多了就可能出现各种各样的问题,所以需要进行系统性能测试。
2)用户数量增加,系统负债增加,进行系统性能测试,知道系统承受的并发用户数量,带宽是否够用,cpu是否够用,内存是否够用,硬盘速度是否跟得上。从服务端来看,测试服务器是否能承载用户多并发,系统是否稳定,从用户角度看响应时间速度。
性能测试与功能测试的区别
功能测试: 主要根据产品业务需求、产品行业特征、模拟用户操作方式来测试一个产品的特性以确定它们是否满足用户需求。
性能测试: 则是通过某种特定的方式对被测系统按照一定的测试策略进行施压,获取该系统的响应时间、运行 效率。资源利用情况等各项性能指标,来评价系统是否满足用户性能需求的过程。
通俗的说,功能测试用于确保软件系统做了正确的事情,性能测试则用于确保软件系统快速地完成任务 。
相关术语(概念)
响应时间
响应时间=“客户端呈现数据时间‘’+网络传输时间+系统响应时间
响应时间受网络带宽、用户数、提交事务请求数和事务类型等的影响。
并发用户数
指多个用户同时进行某一个业务交易的动作行为
TPS(Transaction Per Second)
即每秒系统能够处理的交易或事务数量。它是衡量系统处理能力的重要指标。
知道了什么是性能测试,那么下面我们就开始来学习性能测试。
性能测试学习大纲
一、操作系统篇
CPU:运算器、控制器、寄存器、时间片、CPU保护模式、CPU访问级别、特权指令、用户态、内核态
CPU的内部架构和工作原理
Linux cpu 详解(包含查看命令)
Linux CPU 状态
内存:内存管理、内存保护、地址空间、相对地址、绝对地址、地址重定位、内存共享、内存扩充、buffer、cache、分区存储管理、内存的分配与回收、覆盖技术、交换技术、虚拟存储、页式存储管理、段式存储管理、地址映射、动态链接。
Linux 内存管理
Linux 内存机制
Linux 内存计算
Linux Swap分区
磁盘:机械式硬盘/固态硬盘、磁盘(硬盘)体系结构、磁盘存储数据方式、磁盘组件与驱动装置、磁盘的接口类型(IDE、SATA、SCSI、SAS等)、磁盘片、主轴、磁头、磁道、柱面、扇区、顺序IO、随机IO、影响磁盘性能的因素(磁盘接口、转速、寻道、数据密度)、磁盘监控性能分析
SATA、SSD、SAS对比
Linux 磁盘管理
Linux 磁盘读写
文件系统:文件系统的作用、超级块、bolck块、卷标、inode索引节点、交换分区、虚拟内存
Linux 文件系统
IO:IO模型(阻塞、非阻塞、同步、异步、同步阻塞、同步非阻塞、IO复用机制、IO事件驱动机制、AIO(真正的异步模式)
深入浅出异步I/O模型
网络:OSI参考模型、IP协议、TCP协议、HTTP协议、Socket套接字
OSI七层模型详解
TCP通信详解
HTTP协议
Socket
进程/线程:顺序执行、并发执行、资源共享、进程状态转换(执行态、就绪态、等待态、挂起唤醒等)、程序、数据集合、进程控制块、同步、互斥、生产者问题、消费者问题、死锁、单道、多道程序设计原理、资源、中断、通道、内核、系统调用、进程通信等等。
操作系统中进程/线程模型
二、通信网络及协议
OSI参考模型详解:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层、数据包发送流程、OSI参考模型和TCP/IP协议栈模型之间的关系。
OSI七层模型详解
IP协议详解:路由器(主机路由、网络路由、默认路由)、交换机、广播、网卡、网关、子网掩码、公有地址、私有地址、动态IP(DHCP)、静态IP、本地回环地址。
IP协议详解
TCP协议详解:TCP标记(SYN/ACK)、Seq序列号、Win窗口、WS窗口大小、WS窗口因子、时间戳、TCP重传机制、TCP抖动、TCP报文失序、TCP滑动机制、三次握手四次断开原理、Socket通信原理、TCP性能分析。
TCP通信详解
HTTP协议详解:超链接、超文本、统一资源定位符、WEB资源(WEB对象)、URI、URL、文档跳转、HTTP资源访问、HTTP资源方法、HTTP协议首部、MIME机制、静态网页、动态网页、缓存机制、PV/UV/VV/IP、长链接机制、HTTP协议请求报文/响应报文、空行、HTTP请求主体(HTTP协议在Loadrunner脚本中的具体表现形式)、HTTP协议状态码、HTTP协议无状态的表现形式、HTTP事物、cookie、session高并发编程核心思想及其工作原理。
HTTP协议详解
三、Linux重要基础命令
Linux命令
tar mkdir mv vim rmp yum nano find grep awk sed ls cd echo cat cp rm touch useradd passwd su sudo chmod bash tail mkfs fdisk mount du df dd free zip unzip gzip du df ln yum route ifconfig service netstat ss 包括且不限于此等等工作当中常用命令以及各种规范和技巧。
性能常用Linux命令详解
四、Web服务及中间件
Apache服务配置
Apache概念讲解、Apache编译安装、Apache工作原理、Apache工作模式(prefork、worker、event)服务配置、虚拟主机配置、Apache调优
Apache服务配置详解
Nginx服务配置
Nginx概念讲解、Nginx编译安装、Nginx工作原理、服务配置、虚拟主机配置、Nginx反向代理、Nginx负载均衡配置、Nginx性能调优
Nginx介绍
Nginx介绍(二)
Nginx功能与工作原理
Nginx配置-性能优化
Nginx性能优化
Tomcat容器
Linux环境配置JDK环境变量、Tomcat工作目录详解、Tomcat自身容器标签组件详解、Tomcat体系结构、Tomcat工作原理、Tomcat服务配置、Tomcat虚拟主机配置、Tomcat负载均衡、Tomcat类库详解、Tomcat性能调优
Tomcat架构详解
Tomcat工作原理
tomcat配置
tomcat内存配置
五、MySQL数据库
数据库三范式、关系型数据库工作原理、MySQL数据库基本架构、MySQL帮助命令、MySQL快捷键、MySQL客户端管理工具、MySQL数据库初始化方式、DDL、DML(Select、Insert、Update、Delete)、DCL
MySQL数据类型、数据字典、单表查询、多表查询、嵌套查询、自然连接、左连接、右连接、布尔条件表达式、聚合函数、线程池、存储引擎(InnoDB引擎、MyISAM引擎)、MySQL视图、读锁、写锁、事物(ACID)、事物隔离级别(脏读、不可重读、幻读、串行化)、索引、多实例、主从复制原理、SQL语句执行流程、MySQL缓存查询详解、MySQL日志(查询日志、慢查询日志、错误日志、二进制日志、事物日志)
MySQL执行计划、MySQL逻辑层、物理层、用户层、MySQL管理器、MySQL分析器、MySQL优化器、MySQL求解器、MySQL查询计划器、MySQL缓冲区管理器、MySQL锁管理器、MySQL事物管理器、MySQL恢复管理器、MySQL查询引擎、MySQL调优(使用存储过程创建千万条数据讲解性能调优)。
Mysql教程
六、NoSQL数据库Redis
非关系型数据库Redis介绍、Redis安装配置、Redis配置文件详解、Redis数据类型(List列表、Hash类型、Set集合)、Redis多实例安装实战、Redis主从同步配置实战、Redis持久化存储、Redis的AOF技术、Redis调优。
七、性能理论和工具
Loadrunner性能测试工具(实际案例讲解)
性能测试计划、性能测试用例、性能测试方案、性能测试报告、估算并发用户数、Loadrunner脚本开发、Loadrunner手工实现脚本开发、Loadrunner实战压测接口性能、参数化、关联、检查点、集合点、压力机设置、Controller场景设计模式、性能测试监控分析、Analysis分析图
HTTP协议脚本开发、Socket协议脚本开发、APP性能压测
Jmeter性能测试工具(实际案例讲解)
Jmeter取样器、Jmeter控制器、逻辑控制器、定时器、前置处理器、后置处理器、断言、监听器、聚合报告、吞吐量、响应时间、查看结果树、控制元件、参数化、关联、beanshell等详解。
参考链接:
Jmeter与Loadrunner对比
Jmeter入门教程(较全)
jmeter精简教程
八、接口测试篇(基础+高级)
介绍接口的概念和定义以及接口的作用
1)接口测试(实际案例讲解)
Jmeter接口测试实战讲解
Loadrunner接口测试实战讲解
九、JVM调优
JVM工作机制、JAVA数据类型、本地方法区、堆与栈、程序计数寄存器、年轻代、老年代、垃圾回收机制、线程私有内存、线程公有内存、JVM性能监控、JAVA线程死锁分析、JVM DUMP文件、JVM调优。
十、TCP原理
十一、监控分析调优
监控CPU调优、内存调优、磁盘IO调优、网络调优。
十二、网站架构
大型网站架构原理详解(WEB服务器和数据库服务器由少到多演变流程、数据库垂直拆分、数据库水平拆分、Zookeeper服务、Dubbo服务、MQ消息队列等在企业中的位置以及作用)操作系统、虚拟化、云计算、大数据、人工智能之间的关系以及其相关概念详解。
来源:CSDN
作者:Young.Lee
链接:https://blog.csdn.net/weixin_42243285/article/details/104171197