全栈性能测试修炼宝典-JMeter实战笔记(一)
了解性能测试
性能测试不仅能够定位、分析问题,还要把握系统性能变化趋势;性能测试工程师能够帮助解决性能问题,搞定测试过程中的各种不合理配置,给出专业的优化建议。
第一章 性能方向职业发展
软件测试职业路线分为以下三个方向:
(1)业务路线:常见业务路线的职位有OA经理、业务专家、产品经理、产品总监、行业咨询顾问等
(2)技术路线:掌握编程技术、拥有业务经验,成为自动化测试工程师、性能测试工程师、软件开发工程师、安全测试工程师、系统分析师、测试总监、研发总监等
(3)管理路线:积累业务知识或者提高技术储备,能够出色地完成本职工作,负责带领团队;岗位一般有测试leader、测试主管、测试经理及测试总监
除了测试还需要掌握的基本功
(1)需求:性能需求分析是做系统性能测试前必做的,不然没有方向
(2)代码:通过走读代码发现逻辑上的缺陷、写法上的繁琐带来的性能问题;补充数据库知识、中间件知识(程序部署在中间件上)、操作系统及硬件知识(中间件运行在操作系统上)
(3)运维:测试自动化不仅包括功能测试自动化、也包括性能测试自动化以及测试环境自动化(持续集成),掌握运维手段也变成必要
性能测试技术树:

测试工具--常见难点
(1)用户和业务模型分析搭建
(2)合适的脚本开发(大部分初学者不根据用户和业务模型来开发脚本,认为要回归成功即可)
(3)合适的需求分析转化为场景设计(大部分初学者不知道如何根据需求进行场景设计)
(4)大容量系统的数据生成和使用
(5)大型系统的性能压力负载和实施
(6)云计算的负载生成和实施
测试基础-常见难点
(1)评估需求
(2)负载建模(用户与业务模型)
(3)性能压力生成的原理和并发等之间的关系
(4)性能测试用例
(5)新系统需求分析
(6)容量规划
(7)性能测试策略
服务器性能诊断知识
操作系统:了解系统调用如何执行、CPU如何调度线程、有限大小的内存如何影响性能、文件系统如何处理I/O
(1)Linux:服务器的操作系统,搭建环境、性能诊断
(2)Windows Server:服务器操作系统,中小型公司使用较多
数据库:是系统存储处理的最重要手段,很大一部分性能问题都牵扯到数据库
(3)Oracle:关系数据库管理系统,可移植性好、使用方便、功能强,是一种高效率、可靠性好的适应高吞吐量的数据库解决方案
(4)MySql:轻量型开源数据库
(5)NoSql:泛指非关系型数据库,解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题
①键值数据库-Redis:适用于数据变化快且数据库大小可预见的应用程序,股票、数据分析、实时数据搜集、通信等
②列存储数据库-Cassandra:混合型的非关系数据库,在网络社交云计算方面应用较理想,读操作比写操作快很多,较适应于银行、金融、数据分析等领域
③文档型数据库-MongoDB、CouchDB:键值数据库升级版,允许之间嵌套键值,而且文档型数据库比键值数据库的查询效率更高
常见难点
(1)进程、线程任务之间的区别
(2)线程的中断优先和原理
(3)进程的生命周期
(4)上下文切换
(5)I/O密集型和CPU密集型工作负载之间有什么区别
(6)生产环境和测试环境之间换算
(7)关系型数据库体系结构和逻辑优化与非关系型数据库体系结构和逻辑优化
(8)事务数据库和分析数据库的使用
(9)数据关系建模与设计
(10)TOP N SQL诊断和优化(执行路径、索引和表链接优化等)
(11)阻击和根治阻塞和死锁
(12)热点防范和定位优化
(13)业务数据批量缓存化\异步化
(14)数据库配置优化
性能调优技能-常见难点
(1)系统硬件资源(CPU、网络、内存、IO)相互之间的关系及原理
(2)选择可靠性能指标及指标之间的关联和判定方法
(3)永不宕机的实现原理和常见错误
(4)排队系统与延迟及缓存的优化关系
(5)优化的成本和性价比
(6)业务优化的操作实施
(7)多系统串联原理及测试隔离

浙公网安备 33010602011771号