趣谈性能测试

简介: 性能下降曲线分析 关心的是性能随着用户数的增加而出现下降趋势的曲线分析、查看性能下降的环境点与上下文。确定性能阀值。性能曲线通过单用户区域、性能平坦区域、压力区域、性能拐点进行监控和分析。

性能测试用例选择的原则:
  a. 重要的(业务上)
  b. 重复的(最常用的模块)
c. 重量级的(消耗大量系统资源的)

1、具体性能指标分为几类:
  a. 系统容量(数据容量、用户量、并发用户量),
  b. 系统并发度指标(注册用户、在线用户、并发用户),
  c. 响应度指标(正常压力下响应能力、峰值压力下的响应能力,以及异常压力下的响应能力)
2、理解整个系统及其实现之后,再列出自己分析得到的性能需求点。
3、询问客户的具体性能需求,共同分析,是否测试,测试的优先级。
4、写出性能测试计划和用例,并要得到客户认可。

下面列出了一些性能要求的测试点:
1) 查询2) 保存3) 统计4) 刷新5) 显示6) 传输7) 响应8) 下载

打开网络上其它介质上的文件时,可制造网络拥挤情况下的文件打开操作。
主要测试点,集中在几个点上。
一是:数据量小的时候主要的查询统计刷新等功能点;
二是:数据量积累到一定程度时的查询统计刷新时间,这里的一定程度是根据实际的项目和客户需求来定的。

性能测试分为基本性能测试和高级性能测试
基本性能测试
主要内容包括:安全可靠性、资源占用率测试、兼容性、易用性、用户文档、效率、可扩充性。
(1)安全可靠性测试

序号 测试项目 描述 测试结果
1 用户权限限制 考察队不同的用户权限限制情况 符合/基本符合/不符合
2 用户和密码封闭性 对于相应用户和密码进行次数限制 符合/基本符合/不符合
3 屏蔽用户操作错误 考察对用户常见的操作错误的提示和屏蔽情况 符合/基本符合/不符合
4 错误提示的准确性 对用户的错误提示的准确程度 符合/基本符合/不符合
5 错误是否导致系统异常退出 有无操作错误引起系统异常退出的情况 符合/基本符合/不符合
6 数据备份与恢复手段 系统是否提供备份及恢复功能,备份手段如何,是否对备份数据加密、压缩 符合/基本符合/不符合
7 输入数据有效性检查 系统对数据录入的有效性检查 符合/基本符合/不符合
8 留痕功能 系统是否有操作日志,操作日志记录的操作情况的全面性和准确性,是否包括主要要素,如操作员、操作日期、使用模块等 符合/基本符合/不符合
9 异常情况的影响 在程序运行过程中,进行掉电实验,考察数据和系统的受影响程度,若受损,是否提供补救工具,补救的情况如何 符合/基本符合/不符合
10 数据传输安全性 对有特殊安全要求的数据传输,应对传输的数据进行必要的加密处理,使用的算法应符合国家规定 符合/基本符合/不符合

(2)资源占用率测试

序号 测试项目 描述 测试结果
1 软件安装所占用硬盘空间 考察软件安装所占用硬盘空间 符合/基本符合/不符合
2 模块装载后内存占用量(包括虚存) 考察模块装载后内存占用量(包括虚存) 符合/基本符合/不符合
3 模块卸载后内存释放率(包括虚存) 考察模块卸载后内存释放率(包括虚存) 符合/基本符合/不符合

(3)兼容性测试

序号 测试项目 描述 测试结果
1 软件兼容性 软件测试适用平台 符合/基本符合/不符合
2 硬件兼容性 硬件平台的配置要求 符合/基本符合/不符合

(4)易用性测试

序号 测试项目 描述 测试结果
1 易安装性 安装的难易程度,符合流行安装模式 符合/基本符合/不符合
2 用户界面的友好性 界面的简洁性如何 符合/基本符合/不符合
3 易学性 相对一般操作人员来说,学习使用的难度如何,对操作人员有何要求 符合/基本符合/不符合
4 易操作性 操作的难易程度 符合/基本符合/不符合
5 联机帮助丰富性 考察联机帮助的准确性、全面性、在关键操作时使用联机帮助的方便性 符合/基本符合/不符合

(5)用户文档测试

序号 测试项目 描述 测试结果
1 用户手册的完整程度 用户手册内容的全面性、完整性 符合/基本符合/不符合
2 用户手册的描述与软件实际功能的一致性 手册与软件实际功能的一致程度 符合/基本符合/不符合
3 用户手册的易理解程度 用户手册对关键重要的操作有无图文说明,例图的易理解性如何 符合/基本符合/不符合
4 用户手册的印刷与包装质量 用户手册包装的商品化程度印刷质量 符合/基本符合/不符合
5 用户手册提供的学习操作实例 对主要功能和关键操作提供的应用实例有多少,实例的详细程度如何 符合/基本符合/不符合

(6)效率测试

序号 测试项目 描述 测试结果
1 通信效率 网络负载、吞吐率、利用率、响应时间、延迟等 符合/基本符合/不符合
2 设备效率 CPU占用率、内存占用率、磁盘占用率、输入输出效率等,包括软件在不工作状态下对于硬件资源的占用情况和进行业务处理过程中对于硬件资源的占用情况 符合/基本符合/不符合
3 执行效率 典型业务操作的执行效率,例如关键的查询、统计等的响应时间等 符合/基本符合/不符合

(7)可扩充性测试

序号 测试项目 描述 测试结果
1 与异种数据接口 有无与其它数据的接口 符合/基本符合/不符合
2 是否能扩充功能模块 能否根据用户要求扩充功能模块 符合/基本符合/不符合

高级性能测试
主要内容包括:并发性能、系统资源监控、大数据量、速度、疲劳等内容,重点是并发性能测试。

(1)并发性能
并发测试的过程,是一个负载测试和压力测试的过程。即逐渐增加负载,直到系统的瓶颈或者不能接收的性能点,通过综合分析交易执行指标和资源监控指标来确定系统并发性能的过程。
并发性能测试及系统资源监控使用自动化负载测试工具及监控工具。
测试案例:例如:中间件应能满足一定数量的前台客户端同时办公的需要。
测试内容与监控指标:
★ 负载压力测试;
★ 模拟不同数量并发用户测试。
模拟不同数量并发用户执行关键业务,测试至系统能够承受的最大并发用户数。
主要监控指标如下:
● 每分钟事务处理数(Transaction Rate):不同负载下每分钟成功完成的事务处理数;
● 响应时间(Response Time):服务器对每个应用请求的处理时间,单位:秒,该项指标反映了系统事务处理的性能,具体包括以下几项参数:

  • Min:最小的服务器响应时间;
  • Mean:平均的服务器响应时间;
  • Max:最大的服务器响应时间;
  • StdDev:事务处理服务器响应的偏差,值越大,偏差越大;
  • Median:中值响应时间;
  • 90%:90%事务处理的服务器响应时间
  • 虚拟并发用户数(Total Virtual Users):测试工具模拟的用户并发数量。

(2) 系统资源监控
在进行负载压力测试的同时,用测试工具对数据库服务器、Web服务器、应用服务器、认证及授权服务器上的操作系统、数据库以及中间件等资源进行监控。
监控系统资源指标,在测试中,根据测试需求以及测试环境的变化,选取有意义的数据进行分析。

(3)大数据量
测试案例:例如:考虑系统未来发展需要的存储空间,添加大数据量测试。
测试内容:
主要包括两方面内容:
一是:单独的数据量测试;
二是:与并发性能测试相结合的综合测试。
测试数据的准备借助于测试数据管理与生成工具,例如FileAid。

(4)速度
测试案例:例如:磁盘访问速度、备份速度以及网络办公系统运行速度等。
测试内容:
主要是人工测试。

(5)疲劳测试
通常是采用系统稳定运行情况下能够支持的最大并发用户数,持续执行一段时间业务,通过综合分析交易执行指标和资源监控指标来确定系统处理最大工作量强度性能的过程。

性能测试指标一般有2种形式描述:产品需求指标和系统的性能指标。
1.产品需求指标
★ 给出产品性能的主要指标,如在100000记录中查询一个特定数据的时间为0.5秒;
★ 以某个已发布的版本为基线,如比上一个版本的性能提高30-50%;
★ 和竞争对手的同类产品比较。
2. 系统的性能指标
★ CPU利用率;
★ 内存占用率;
★ 磁盘I/O ;
★ 响应时间。

性能测试的方法
性能测试的策略
性能测试策略一般从需求设计阶段开始讨论制定,策略的内容决定着性能测试工作投入多少资源、什么时间开始实施等后继工作如何安排。制定性能测试的策略的因素:
1.预期的指标性能的因素
系统在需求分析、设计阶段和产品说明书等文档中明确的提出都性能指标,这些指标是性能测试要完成的工作。
2. 独立业务性能测试的因素
独立业务主要是指软件产品的模块具有独立业务功能,在需求阶段就可以确定,要单独测试其性能。
3. 业务性能组合测试的因素
应用类软件系统通常不会使所有的用户只使用一个或者几个核心业务模块,可能是对多个业务进行组合使用,对多个业务进行组合性能测试。由于组合业务测试是最能反映用户使用系统情况,因而业务性能组合测试是测试的核心内容。
 4. 疲劳强度性能测试
疲劳强度测试是在系统稳定运行下模拟较大的用户数量、并长时间运行系统的测试,通过综合分析执行指标和资源监控来确定系统处理最大业务量时的性能,主要目的是为了测试系统的稳定性。
5. 大数据量性能测试的因素
大数据量测试是为了测试系统的业务处理能力进行的。
大数据量测试第一种是针对某些系统存储、传输、统计查询等业务进行大数据量的测试,主要是测试数据增多时的性能情况,第二种是极限状态下的数据测试,主要是指系统数据量达到一定程度时,通过性能测试来评估系统的响应情况,测试的对象也是某些核心业务或者日常常用的组合业务。
6. 网络性能测试的因素
网络性能测试主要是为了准确展示带宽、延迟、吞吐量、负载、瓶颈和端口的变化是如何影响用户的响应时间的。重点测试吞吐量指标,因为80%的系统性能瓶颈由吞吐量造成。

性能测试的方法
性能测试方法主要有:能力验证、规划性能、性能调优、压力加载、性能下降曲线分析。
1. 能力验证
 能力验证强调:系统具备的硬件设备、软件环境、网络条件、基础数据。能力验证使用到可靠性测试、压力测试、失效恢复测试 。
2. 规划性能
 规划性能关心的是要求系统具有的性能,强调系统配置,使系统能够满足增长的用户数的需要等问题。规划性能使用到负载测试、配置测试、压力测试。
3. 性能调优
性能调优关心的是要求系统确定基准环境、基准负载和基准性能指标;调整系统运行环境和实现方法;记录测试结果、进行测试分析。
4. 压力加载
压力加载强调:
★ 稳定压力加载。一次性将负载加到某个水平,持续一段时间;
★ 逐渐加载或交替加载到某个负载水平;
★ 峰谷测试。确定从系统高峰时间的负载转为几乎空闲、再攀升到高负载这样峰值交替情况下的系统性能状态/指标。
5. 性能下降曲线分析
性能下降曲线分析 关心的是性能随着用户数的增加而出现下降趋势的曲线分析、查看性能下降的环境点与上下文。确定性能阀值。性能曲线通过单用户区域、性能平坦区域、压力区域、性能拐点进行监控和分析。

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
7月前
|
存储 关系型数据库 MySQL
深聊性能测试,从入门到放弃之:性能测试技术栈,看完这篇,保证刷新你对性能测试的认知~~
深聊性能测试,从入门到放弃之:性能测试技术栈,看完这篇,保证刷新你对性能测试的认知~~
153 1
|
3月前
|
安全 测试技术 数据库
简介性能测试
简介性能测试
简介性能测试
|
7月前
|
监控 关系型数据库 MySQL
学会这些性能测试干货知识点,才好拿捏性能测试
学会这些性能测试干货知识点,才好拿捏性能测试
|
10月前
|
SQL 缓存 监控
性能测试(23)——完整性能项目案例
性能测试需求分析与传统的功能测试需求有所不同 功能测试需求分析:重点在于分析被测系统的功能是否满足产品功能需求规格(正向、逆向) 性能测试需求分析:重点在于分析被测系统是否能满足特定的业务需求场景(时间、资源) 需要从业务场景、程序代码、服务器、硬件配置等多个维度分析系统可能存在性能瓶颈
590 1
|
负载均衡 测试技术
性能测试知识科普(二)
在聊测试策略之前,很有必要聊聊性能测试的目的,或者性能测试的本质是要做什么,解决什么问题。只有想明白这点,后面的需求分析、工具选型、制定测试策略才能更好的开展。
性能测试知识科普(二)
|
数据可视化 测试技术
性能测试知识科普(三)
还有在一些技术交流群,很多同学会说自己遇到的问题,如不知道怎么用jmeter参数化,locust的压测结果图表怎么看,怎么写gatling的压测脚本等等。并不是说觉得用工具low,而是遇到问题,我个人觉得首先应该分析问题,找到解决方法和策略,然后寻找合适的工具来辅助自己快速解决问题。
|
缓存 监控 测试技术
性能测试知识科普(一)
换成高速收费站的场景,就是车到了收费窗口,我刷卡扫码支付,然后抬杆放行直到车出去下一个车进来。这个过程的耗时就是所谓的响应时间。至于我们常见的平均响应时间和99响应时间,只是不同维度的统计方法而已。
|
存储 SQL 数据采集
性能测试知识科普(七):监控能给你带来什么
当然这些指标是我们日常工作中经常遇到和会关注的,但实际上在性能测试过程中,要根据不同的业务场景、技术架构以及问题表现来关注分析不同的指标。而不是只关注自己看到的指标,填充到表格里提交一份所谓的压测报告就完事的。
性能测试知识科普(七):监控能给你带来什么
|
缓存 测试技术 数据处理
性能测试知识科普(六):三大模型
在性能测试工作中,业务模型、流量模型和数据模型是至关重要且必须在项目中构建的,否则很可能导致测试的场景和实际差距很大,测试结果也无法为性能分析和优化提供足够有说服力的支撑。为了便于大家理解三大模型
性能测试知识科普(六):三大模型
|
缓存 负载均衡 监控
性能测试知识科普(四):分析需求
为了避免某个可用区由于网络硬盘等原因损坏导致服务不可用,跨可用区的服务部署是一种常见的容灾手段。
性能测试知识科普(四):分析需求