软件性能测试目标

软件性能测试的目的主要有以下三点:

  1. 评价系统当前性能,判断系统是否满足预期的性能需求。

  2. 寻找软件系统可能存在的性能问题,定位性能瓶颈并解决问题。

  3. 判定软件系统的性能表现,预见系统负载压力,在应用部署之前,评估系统性能。

而对于用户来说,则最关注的是当前系统:

  1. 是否满足上线性能要求?

  2. 系统极限承载如何?

  3. 系统稳定性如何?

软件性能测试中关键指标 资源指标

资源指标

  • CPU使用率:指用户进程与系统进程消耗的CPU时间百分比,长时间情况下,一般可接受上限不超过85%。

  • 内存利用率:内存利用率=(1-空闲内存/总内存大小)*100%,一般至少有10%可用内存,内存使用率可接受上限为85%。

  • 磁盘I/O: 磁盘主要用于存取数据,因此当说到IO操作的时候,就会存在两种相对应的操作,存数据的时候对应的是写IO操作,取数据的时候对应的是是读IO操作,一般使用% Disk Time(磁盘用于读写操作所占用的时间百分比)度量磁盘读写性能。

  • 网络带宽:一般使用计数器Bytes Total/sec来度量,Bytes Total/sec表示为发送和接收字节的速率,包括帧字符在内。判断网络连接速度是否是瓶颈,可以用该计数器的值和目前网络的带宽比较。

系统指标

  • 并发用户数:某一物理时刻同时向系统提交请求的用户数。

  • 在线用户数:某段时间内访问系统的用户数,这些用户并不一定同时向系统提交请求。

  • 平均响应时间:系统处理事务的响应时间的平均值。事务的响应时间是从客户端提交访问请求到客户端接收到服务器响应所消耗的时间。对于系统快速响应类页面,一般响应时间为3秒左右。

  • 事务成功率:性能测试中,定义事务用于度量一个或者多个业务流程的性能指标,如用户登录、保存订单、提交订单操作均可定义为事务

  • 超时错误率:主要指事务由于超时或系统内部其它错误导致失败占总事务的比率。

性能问题排查的过程

在性能测试过程中,如果出现性能问题,需要测试人员重点关注资源指标和系统指标或者应用性能数据,系统指标是直接观测到的测试数据,比如响应时间过长,事物请求成功率低,超时错误率高等等。

当系统指标出现问题时一般会表现在资源指标上,比如cpu高,内存占用多,网络宽带占用高,连接数多等。

当观测到系统资源异常时,比如响应时间长,事物成功率低,超时错误率高等情况时。应该先查应用相关信息,比如日志,应用监控、数据库等等信息,如果这些信息没有问题,再对资源信息进行分析。资源信息分析如下。

CPU问题分析:一般情况下CPU满负荷工作,有时候并不能判定为CPU出现瓶颈,比如Linux总是试图要CPU尽可能的繁忙,使得任务的吞吐量最大化,即CPU尽可能最大化使用。因此,一般判断CPU为瓶颈,主要从两方面:一是CPU空闲持续为0,二是运行队列大于CPU核数(经验值3-4倍),即可判定存在瓶颈,对于CPU高消耗主要由什么引起的,可能是应用程序不合理造成,也可能是硬件资源不足,需要具体问题具体分析,比如问题SQL语句引起,则需要跟踪并优化引起CPU使用过高的SQL语句。

内存问题分析:一般至少有10%可用内存,内存使用率可接受上限为85%。当空闲内存变小时,系统开始频繁地调动磁盘页面文件,空闲内存过小可能是内存不足或内存泄漏引起,需要根据系统实际情况监控分析。

磁盘I/O问题分析:磁盘I/O对于数据库服务器、文件服务器、流媒体服务器系统来说,更容易成为瓶颈,一般从以下几个方面对磁盘I/O进行分析判断:

每磁盘I/O数可用来与磁盘的I/O能力进行对比,如果经过计算得到的每磁盘I/O数超过了磁盘标称的I/O能力,则说明确实存在磁盘的性能瓶颈。

监控磁盘读写,如果磁盘长时间进行大数据量读写操作,且cpu等待超过20%,则说明磁盘I/O存在问题,考虑提高磁盘I/O读写性能。

网络带宽问题分析:判断网络带宽是否是系统运行性能瓶颈的首要条件是网络带宽是否会影响系统交易执行性能。例如:减小网络带宽,并发用户数、响应时间与事务通过率等性能指标是否不能接受;或者增加网络带宽,并发用户数、响应时间与事务通过率等性能指标会得到明显提高。

在实际性能测试中,如果发现始终报连接超时,而实际手工访问可以正常访问,可以通过ping应用服务器IP或网关IP,如果出现网络严重延迟或丢包,则说明网络不稳定,需要检查网络。

通过对资源指标的分析,实际上各个方面都是互相依赖的,不能孤立的单从某个方面进行排查。

当一个方面出现性能问题时,往往会引发其他方面的性能问题,例如,大量的磁盘读写势必消耗CPU和IO资源,而内存的不足会导致频繁地进行内存页写入磁盘、磁盘写到内存的操作,造成磁盘IO瓶颈,同时,大量的网络流量也会造成CPU过载,所以,在分析性能问题时,需要从各个方面进行考虑。

软件性能测试是执行、监控、分析、调优不断进行的过程,即监控是为分析提供更多的参考数据,分析是为了进行调优,调优是解决当前系统存在的性能瓶颈,为用户提供更好、更快的客户体验。

由于分析、调优需要根据具体问题进行具体分析,本文未做过多说明,只对通用的关键指标进行监控分析,建议在实际工作中可从资源指标与系统指标两个方面,层层检测、步步排查,性能问题就无处藏身,一旦找到出现问题的原因,性能问题也就迎刃而解!

最后: 大家可以去我博客首页看下侧边栏! 进去有许多资料共享!资料都是面试时面试官必问的知识点,也包括了很多测试行业常见知识,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。


好文推荐

2021软件测试工程师面试题汇总(内含答案)-看完BATJ面试官对你竖起大拇指!

什么样的人适合从事软件测试工作?

软件测试和软件开发哪个发展更好

那个准点下班的人,比我先升职了…

小白也能看得懂的服务端性能测试指标及问题排查相关推荐

  1. [免费专栏] Android安全之Android Xposed插件开发,小白都能看得懂的教程

    也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 Android安全付费专栏长期更新,本篇最新内容请前往: [ ...

  2. yolov5使用2080ti显卡训练是一种什么样的体验我通过vscode搭建linux服务器对python-yolov5-4.0项目进行训练,零基础小白都能看得懂的教程。>>>>>>>>>第二章番外篇

    第二章番外篇:yolov5通过vscode搭建linux服务器对python-yolov5-4.0项目进行训练,零基础小白都能看得懂的教程.YOLOv5搭建的最快搭建方式,踩坑经历详谈 前期准备: 2 ...

  3. yolov5-4.0环境搭建,零基础小白都能看得懂的教程。YOLOv5搭建的最快搭建方式,踩坑经历详谈)yolov5/yolov4/yolov3/yolov3通>>>>>>>>>>>>>>>>>第一章

    第一章:python最新YOLOv5-4.0环境搭建,零基础小白都能看得懂的教程.YOLOv5搭建的最快搭建方式,踩坑经历详谈 环境准备: yolov5-4.0环境搭建整体说明 2,anaconda的 ...

  4. 小白都能看得懂的教程 一本教你如何在前端实现markdown编辑器

    小白都能看得懂的教程 一本教你如何在前端实现markdown编辑器   大家好,我是亓官劼(qí guān jié ),在[亓官劼]公众号.CSDN.GitHub.B站.华为开发者论坛等平台分享一些技 ...

  5. red5+adobe flash media live(或OBS) +酷播播放器实现简单的直播及回看(四)------怎样在服务端存储直播流

    本篇文章来讨论解决如何在red5服务器端存储直播流 问题简述: 一开始在设计直播回放系统的时候,计划的视频存储是通过推流软件,但使用推流软件只能够把直播流存储在本地,不能够在服务器端存储,这样就会造成 ...

  6. 小白都能看得懂的java虚拟机内存模型

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:土豆是我的最爱 blog.csdn.net/qq_37141 ...

  7. 想要成为 NLP 领域的大牛?从 ChatGPT 的 5 大自然语言模型开始了解吧(LM、Transformer、GPT、RLHF、LLM)——小白也能看得懂

    目录 前言 ChatGPT基础科普--知其一点所以然 1. LM 2. Transformer 3. GPT 4. RLHF 5. LLM 参考资料 其它资料下载 前言   如果想在自然语言处理(Na ...

  8. 百度云服务器BCC 搭建ftp(基于Ubuntu 16.04 LTS)新手小白也可以看得懂的教程

    看了网上很多关于Ubuntu下vsftpd的安装配置教程之后,发现虽然大部分功能都能使用,但是我最关心的上传下载这个关键功能没有办法实现,然后经过多次尝试,终于完成了最后的配置,同时本地Windows ...

  9. python基础语法 第0关print-python学习笔记1,新手小白也能看得懂

    这是酸菜在风变编程上学习python时积累的学习笔记,希望能帮到同样也在学习中的小伙伴.持续更新~ 第0关 Print()函数 (1)不带引号:让计算机读懂括号里的内容,打印最终的结果 例:print ...

最新文章

  1. SQLite VC环境搭建
  2. 一个SAP顾问2018年的回顾
  3. 如何升级浏览器_前谷歌员工爆料:谷歌工程师们是如何合谋“杀死”IE6浏览器的...
  4. Swift标识符和关键字
  5. log4j.properties配置
  6. Simulink中如何定义变量的初始值
  7. 在银行里存两千万,光吃利息够花吗?
  8. supervisor常用命令
  9. Python全栈之路--Django ORM详解
  10. 屏幕录像专家----百度百科
  11. 常量和常变量(const)
  12. 求导四则运算以及三角函数求导 Derivative formulas
  13. GPS坐标对应地图坐标偏移问题
  14. System.InvalidOperationException: Timeout expired. Max Size Pool connections.
  15. U盘插入后在“我的电脑”里找不到u盘
  16. 【人工智能】— 逻辑Agent、一般逻辑、Entailment 蕴涵、命题逻辑、前向链接、反向链接、Resolution归结
  17. 【数据库】多表查询二----嵌套查询(子查询)
  18. 【RPO技巧拓展】————3、IIS和.Net应用程序中的非根相对路径覆盖(RPO)
  19. 双指数边缘平滑滤波器用于磨皮算法的尝试
  20. 怎样快速对二进制和十进制进行互转化——IP地址规划与设计总结

热门文章

  1. ubuntu上安装python3.7教程_ubuntu中安装Python3.7
  2. html3d变形,深入理解CSS变形transform(3d) - 小火柴的蓝色理想
  3. java代码审计文件包含_代码审计--一道简单的文件包含题目的多种利用方式
  4. c access mysql数据库_基于C#的Access MsSQL MySQL 三种数据库访问演示(含源文件Demo)...
  5. 复旦大学计算机学院专业硕士学费,复旦大学计算机在职研究生学费一年要交的学费多少?...
  6. php yii2模块,Yii2 之 frontend 子模块实践之四:路由美化
  7. java中id name_关于DOM对象中的id与name的区别
  8. 基于机器视觉的马达孔直径中心距、齿数线序测量
  9. 山西首次举办明清水陆画专题展 多数藏品首次面世
  10. B站,N站,汤站,爬虫下载资源总结与技巧(一)