性能测试总结

性能测试知识总结
性能测试的目的 1 评估当前系统的性能指标,分析定位解决性能瓶颈,预防规避性能风险;
2 分析导致瓶颈的原因,调优解决性能瓶颈;
3 通过某些手段让系统的性能得到提升;
性能测试的概念(系统测试) 性能测试主要是通过自动化的测试工具或手段模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行的一种测试。
负载测试的概念 就是要在特定的运行条件下验证系统的能力状况。
负载测试和压力测试的区别 1 负载测试就是要在特定的运行条件下验证系统的能力状况。
2 压力测试是为了发现在什么条件下应用程序的性能会变得不可接受。
 
性能测试的介入点 1 编码阶段 - 压力测试(开发人员自己进行);
2 编码测试之间 - 容量测试;
3 测试阶段 -负载/配置/基准测试
性能测试各个阶段所要进行的内容 1 测试需求分析:测试要素分析 - 用户数量、测试执行的功能、用户分布、硬件环境、软件环境、数据量
2 制定测试策略:性能符合性验证--负载测试、疲劳强度测试;
                              性能能力验证--压力测试、疲劳强度测试;
                              性能调优--测试-调整-测试,负载测试、压力测试、疲劳强度测试。
3 制定测试方案:测试需求、测试策略、测试场景、测试环境、测试准备、人员及时间 
安排、问题与对策
4 执行测试方案:搭建测试环境、录制脚本&编辑脚本、布置测试场景、执行测试场景
5 测试结果分析:性能符合性验证:查看测试结果是否满足要求,比如响应时间、资源
 利用率、吞吐量等等; 性能能力验证:查看测试结果是否满足要求,记录软件系统的性能变化曲线;性能调优:同性能能力验证确定性能瓶颈分析方法。
6 测试结果分析:硬件瓶颈分析方法、内存分析方法、处理器分析方法、磁盘I/O分析方法;
7 编写测试报告:测试指标、结果分析与总结;
性能测试的三大指标及其含义 1 响应时间:完成某个业务所需要的时间;
2 吞吐量:单位时间内能处理的事务数目;
3服务器资源占用:负载下系统的资源利用率;
性能测试的简单流程 制定性能测试的目标->选择性能测试的工具->设计性能测试->监控分析系统->性能调优
性能测试工程师应该具备的能力 1 熟悉测试理论;

2 熟悉一门编程语言;(java,C, Ruby…)

3 熟悉一种数据库系统;(Orcle,mysql,sqlserver…)

4 熟悉Web服务器;(Tomcat,Jboss,IIS…)

5 熟悉常见的网络协议;(Http,Tcp…)

6 掌握性能测试理论;

7 至少熟练使用一种性能测试工具;(LR, WAS, OPENSTA… )

8 了解一些常见应用的原理;(负载均衡,视频播放,软件更新,p2p …)
常见的瓶颈 1 硬件上的性能瓶颈:一般指CPU/RAM方面的问题,服务器硬件瓶颈、网络瓶颈、服务器操作系统瓶颈、中间件瓶颈、应用瓶颈。
2 应用软件上的性能瓶颈:一般指应用服务器、Web服务器等应用软件
3 应用程序上的性能瓶颈:一般指开发人员新开发出来的应用程序
4 操作系统上的性能瓶颈:一般指Windows、UNIX、Linux操作系统
5 网络设备上的性能瓶颈:一般指防火墙、动态负载均衡器、交换机等
性能问题调优的步骤 1 确定问题:应用程序的代码、数据库的配置、操作系统配置、硬件配置、网络
2 确定原因:响应时间吞吐量、多大户用户还是少数用户、系统资源监控结果是否正常、CPU的使用是否达到极限、I/O情况如何、问题是否集中在某一模块、是客户端还是服务器端出现的问题、硬件配置是否够用、实际负载是否超过了系统的负载能力、是否未对系统进行优化。
3 确定调整目标和解决方案:提高系统吞吐量、缩短响应时间,更好的支持并发。
4 测试解决方案:对通过解决方案调优后的系统进行基准测试。
5 分析调优结果:
性能调优应注意的要点 1 在应用系统的设计开发过程中,应该始终把想能放在考虑范围内;
2 确定清晰明确的性能目标是关键;
3 必须保证调优后的程序运行正确;
4 系统的性能更大程度上取决于良好的设计,调优技巧只是一个辅助手段;
5 调优过程是迭代渐进的过程,每次调优结果都要反馈到后续的代码开发中去;
6 性能调优不能以牺牲代码的可读性和可维护性为代价。 
性能测试的分析调优的方式和手段 1 应用程序诊断:模拟多用户操作形成负载,检验应用程序是否满足用户性能需求;
2 系统调优:
RPM Revolutions Per Minute(转每分钟)
IOPS Input/Output Per Second(每秒输入数出量)衡量磁盘性能指标的关键
Memory Cache 解决小文件读写的问题,但是内存一旦掉电就会丢失数据
OLTP Online Transaction Processing(随机读写频繁的应用)
Throughput 数据吞吐量
VOD Video On Demand(大量顺序读写应用)
寻道时间(Tseek) 读写磁头移动至正确的磁道上所需要的时间。平均在3~15ms
旋转延迟(Trotation) 指盘片旋转将请求数据所在扇区移至读/写磁头下方所需要的时间。(磁盘转速的1/2)
数据传输时间(Transfer) 完成传输所请求的数据所需要的时间(数据大小/数据传输速率)
原文地址:https://www.cnblogs.com/redick/p/6288984.html