性能测试过程

性能测试需求阶段:
1、评估性能测试需求是否合理
2、如果确定要进行性能测试,评估性能测试的方案(性能测试开始的时间:功能测试已经通过)
2.1环境搭建(测试服务器和打压服务器的搭建)
2.2逻辑了解(了解整个性能测试系统的业务逻辑)
2.3数据准备(性能测试有效数据的准备)
回放脚本,通过抓包工具抓包,对比真正使用场景中返回的response
 

性能测试目的:

1. 功能验证:验证某软件在一定条件下具有什么样的功能。

2. 能力规划:如何使系统达到我们要求的性能能力。

3. 应用程序诊断:比如内存泄漏,通过功能测试很难发现,但通过性能测试却很容易发现。

4. 性能调优:满足用户需求,进一步进行系统分析找出瓶颈,优化瓶颈,提高系统整体性能。

5. 配置参考:为客户线上环境提供硬件配置和网络参数参考。

性能测试的意义:

1、检测软件中的问题:内存泄漏,线程死锁,数据库死锁,是否做多线程处理。

2、测试系统的扩展能力,比如(该版本下 实现了集群部署的能力,我想知道系统在多节点下的扩展能力十分呈线性关系,扩展能力如何变化)。

3、测试系统的稳定性。

4、得到系统的性能基线数据,比如(系统的核心功能性能情况,得知处理能力如何)。.
5、前期对比不同平台用于框架选型。

什么是功能:

    功能按我理解就是软件实现需求,提供服务,那么功能测试就是实现的需求是否与客户给定需求一致,也就是符合预期结果

什么是性能:

     功能是实现需求,提供服务,那么性能就可以理解为服务的好坏。比如有两家快餐厅,它们都能提供上菜的需求,那么性能指提供的饭菜是否快,是否好吃;又比如两个相同的提供登录功能软件,一个登录时间为1s,另外一个登录时间需要两秒,那么很明显第一个登录软件的性能是较好。所以我们进行性能测试,也是鉴定一个软件提供的服务是好还是坏

1.功能验证:验证某软件在一定条件下具有什么样的功能

2.能力规划:如何使系统达到我们要求的性能能力

3.应用程序诊断:比如内存泄漏,通过功能测试很难发现,但通过性能测试却很容易发现。

4.性能调优:满足用户需求,进一步进行系统分析找出瓶颈,优化瓶颈,提高系统整体性能。

 
 
软件性能是软件的一种非功能特性,它关注的不是软件是否能够完成特定的功能,而是在完成该功能时展示出来的及时性。
功能测试用于确保软件系统做了正确的事情,性能测试则用于确保软件系统快速地完成了任务。

项目组不同角色眼中的软件性能?

  1、系统管理员眼中的软件性能

  系统管理员作为软件系统的运维人员,主要关注服务器的资源使用状况、系统的扩展性、系统支持的最大用户量、系统稳定性,以及系统可能出现的瓶颈、出现异常的情况下如何处理等。

  2、研发人员眼中的软件性能

  作为研发人员,他们会更关注软件系统架构设计的合理性、数据库的设计是否存在问题、代码是否存在性能方面问题、内存使用方式是否正确、线程同步方式是否合理、是否存在不合理的资源竞争等。

  3、测试人员眼中的软件性能

  测试人员是软件性能质量的把关者,在软件性能生命周期中占据至关重要的位置,软件性能测试工程师要对性能问题进行监控、分析及模拟实际使用过程中所出现的性能问题。还要跟各个角色做好沟通工作,对测试出的各种性能问题,要提供充分有力的数据,为后续的分析和定位性能问题、性能优化工作做好充分的准备。



性能测试的目的是什么?

性能测试的目的:通过性能测试了解系统的性能有没有满足需求,对于不满足需求的模块则通过测试发现可能的性能瓶颈,并进行相应的性能调优,从而达到最终用户的要求。

  1、评估系统的能力:主要从测试结果中的负荷和响应时间,并发用户等数据验证系统的各项指标达到用户需求
  2、识别体系中的弱点:根据测试过程中的负荷或代码走差方式找出系统的极端或繁琐的代码逻辑,从而找到体系中的瓶颈或薄弱地方
  3、系统调优:重复进行性能测试,验证系统活动是否达到预期结果,从而进行改进
  4、检测软件中的问题:主要查找一些隐含的问题或者硬件引发的问题。主要方法大量的重复测试验证
  5、验证稳定性和可靠性:不但要验证系统的稳定性和可靠性,还要验证人为因素的稳定性。

https://www.cnblogs.com/insane-Mr-Li/p/9182724.html

发现占用时间最长的函数,而不是优化性能不合理的函数。其实在优化的过程中,数据库的优化是最简单的,不需要修改任何程序,而且效果往往是最好的。最主要是关注程序占用时间最长的函数和调用次数最多的函数。

缺陷发现:该性能测试应用领域的主要目的是通过性能测试的手段来发现系统中存在的缺陷。

该领域是这次进行性能测试的重点,我们将主要采用并发测试以及大数据量测试力求发现性能瓶颈。

规划能力:在性能测试初期,我们将在性能测试的规划能力领域,对系统能力作一个探索性测试。通过规划测试,我们将获得当前环境下系统性能表现的一个大致情况。规划能力测试将与性能调优结合起来。通过更换设备、调整参数等方法获得系统性能可扩展的元素。

在该领域,我们将主要采用负载测试、配置测试、压力测试。

 性能调优:性能调优应用领域主要对应于对系统性能进行调优。一般来说,性能调优活动会与其他的性能测试应用领域活动交杂在一起。例如规划能力领域。

性能测试的步骤:

1、性能需求分析

2、性能测试计划

3、测试环境搭建

4、测试工具选择

5、测试执行

6、测试结果分析

7、软件配置调整和优化

 

性能测试人员:

角色 主要职责
性能测试设计 收集性能测试需求,设计性能测试的策略方法。设计测试用例与测试场。
性能测试开发 根据测试用例,开发性能脚本
性能测试实施 根据设计好的测试场景执行测试脚本,收集测试数据
性能测试分析 分析收集到的原始数据,得出结论形成测试报告
 
SA(System Administrator系统管理员)
 
性能测试关注点:
1)响应时间,服务器端的处理速度
2)服务器端的资源使用情况
3)数据库端的资源使用情况
4)最大访问用户数量
5)最大业务处理数量
6)考察系统能否支持7*24小时运转
7)内存资源、线程资源能否正常回收
8)代码:算法、SQL语句
9)稳定性、可恢复性
 
性能测试核心原理:
1、基于协议、基于界面、基于代码
2、多线程:模拟用户负载
3、模拟真实场景
 
结果分析
常用前端性能指标:
从用户角度感受到的性能指标
1)响应时间,快不快
2)响应的吞吐率,每分钟服务器响应的大小:服务器带宽、客户端带宽
3)TPS:每秒事务数,TPM,设计性能需求
4)HPS:每秒点击数,作用不大,减少HTTPS请求
常用后端性能指标:
1、CPU
1)CPU使用率%Processor time
2)处理器队列长度Processor Queue Length2*内核数
2、带宽
1)每秒接收的数据量,低于下行带宽/8
2)每秒发送的数据量,低于上行带宽/8
3、内存
1)内存使用率,可用内存数量M
2)内存的页交换频率page/sec,越低越好
3)缓存
4)虚拟内存:利用一块硬盘区域模拟内存操作,内存很小,很贵,硬盘便宜,容量大
5)内存比硬盘贵100倍,内存的速度比硬盘快100倍
 
性能测试环境检查:

条目名称

检查内容

责任人

维护方法

硬件环境

硬件环境是否与拓朴描述一致

硬件拓朴结构图

软件环境

软件环境是否与软件环境列表中描述的一致

软件环境列表

应用部署是否成功

应用部署检查

测试辅助工具是否部署成功

测试辅助工具部署检查

软件参数设置是否符合要求

软件参数设置表

数据环境

数据是否与数据要求描述表中描述一致

数据要求描述表

上此测试是否引入了额外的数据没有清除

数据维护脚本或是import方式



原文地址:https://www.cnblogs.com/seamy/p/15648425.html