《软件性能测试过程详解与案例剖析》读书笔记

1、软件测试基本概念

响应时间

定义:对请求作出响应所需要的时间。是用户视角的软件性能的主要体现,带有主观色彩,没有绝对的长短。 “web页面合理响应时间标准”:2/5/10秒,10秒为上限

上图将响应时间划分为“呈现时间”和“系统响应时间”。“呈现时间”取决于数据在客户端收到数据后呈现页面所消耗时间,一般性能测试中不关注“呈现时间”,因为其很大程度上取决于客户端表现。因此此处响应时间多为“系统响应时间”。

页面响应时间可被进一步分解为:“网络传输时间”、“数据库延迟时间”和“应用服务器延迟时间”

并发数

业务并发用户数定义:同一时间段内访问系统的用户数量(虽然在访问系统,但不一定对服务端产生压力,比如只是在浏览系统)

服务端承受的最大并发访问数定义:从服务端承受的压力出发,描述的是同时向客户端发出请求的客户,体现的是服务端承受的最大并发访问数,常结合并发测试,来发现系统中存在的并发引起的资源竞争等问题。

例:如果一个OA系统有2000名用户,最高峰时有500人在线,其中40%在看系统公告,20%在发呆,20%在进行页面跳转,20%在填写表单。则:系统用户数为2000,在线用户数为500,业务并发用户数为500,服务端承受并发数取决于业务并发用户数及用户业务场景。

上图用于估算业务并发用户数: 其中,公式1中C为平均并发用户数,n是login session的用户数,L是login session的平均长度,T是考察的时间段的长度,一般为8小时工作时间。公式2给出了并发用户数峰值计算方式,该公式由泊松分布估算得到。若知道平均每个用户发出的请求数u,可估算吞吐量为u*C。

可通过“日志分析”对应用服务器进行分析,从而了解并发数数据,推荐AWStats开源工具(http://awstats.sourceforge.net/)

吞吐量

  • 定义:单位时间内系统处理的客户请求的数量,一般web系统用请求数/秒 或 页面数/秒来衡量。从业务角度,可用访问人数/天、业务数/小时衡量,或网络角度字节数/天
  • 在没有遇到性能瓶颈时,吞吐量可计算为:F=(N*R)/T。其中N表示用户个数;R表示每个用户发出的请求数量,T表示性能测试所用的时间。
  • 常用于分析分析吞吐量的图形是“吞吐量——VU数量(虚拟用户数)”的关联图。虽然吞吐量指标被看做系统承受压力的体现,但在不同并发用户数量的情况下,对一个系统施加相同的吞吐量压力,可能得到不同的测试效果。例如,对同一个系统,测试A采用100个VU,每个VU间隔1s发出一个请求;测试B采用1000个并发,每隔10秒发出一个请求;两者吞吐量均为100,但B会更容易出现性能瓶颈。 两个不同系统可能具有不同用户数和用户使用模式,但如果具有基本一致的吞吐量,则可以说他们具有基本相同的平均处理能力。
性能计数器:内存数、进程时间;资源利用率

思考时间(Think Time),或休眠时间

  • 用户操作时每个请求间的间隔时间。自动化测试角度来说,必须在测试脚本中让各个操作之间等待一段时间。

RBI测试方法:Rapid Bottleneck Identify

性能下降曲线分析法:单用户区域;性能平坦区;压力区域;性能拐点

LoadRunner的性能测试过程

2、性能测试的应用领域

方法分类:

  • 性能测试:模拟业务压力量和使用场景组合,验证系统是否具有所宣称的能力。
  • 负载测试:通过在被测系统上不断增加压力,直到性能指标达到饱和状态,目的是找到系统的处理极限。通过“检测-加压-直到性能指标超过预期”的方法
  • 压力测试:测试系统在一定饱和态下,例如CPU、内存等在饱和态下系统的会话能力,以及系统是否会出错。通过增加访问压力(如并发量),检测系统有无出错信息,以及系统响应时间,以及系统在一段时间内的稳定性。一般会以*“CPU使用率达75%以上,内存使用率达70%以上,系统错误率,响应时间”来作为描述。
  • 配置测试:通过对系统软硬件调整,了解不同配置对系统性能影响程度,从而找到最优分配原则。一般用于性能调优和规划能力
  • 并发测试:通过模拟用户并发访问,测试多用户并发访问一个应用时是否存在死锁或其他性能问题。主要关注内存泄露、线程锁、资源争用等。可针对系统或某种架构设计进行,可在开发各阶段使用。
  • 可靠性测试:通过给系统加载一定的业务压力(如资源在70%~90%使用率),让应用持续运行一段时间,测试系统是否稳定。
  • 失效恢复测试:针对有冗余备份和负载均衡的系统设计,可以用来检验如果系统局部发生故障,用户能否继续使用系统,以及用户将受多大程度的影响。

应用领域:

  • 能力验证:对一个已部署系统的性能进行验证。如性能测试,可靠性测试,压力测试,失效恢复测试
  • 规划能力:关心如何才能使系统具有我们要求的性能能力,如系统能否支持未来一段时间内的用户增长。 是一种探索性测试。如负载测试,配置测试和压力测试
  • 性能调优:配置测试,负载测试,压力测试和失效恢复测试
  • 发现缺陷:并发测试,压力测试,失效恢复测试

3、性能计数器及性能分析方法

操作系统级别、应用服务器级别和数据库级别上查看和记录分析

操作系统计数器:

  • 内存分析(应用命令vmstat):
  • 处理器分析(命令top):
    1. 查看System\%Total processor Time性能计数器计数值:体现服务器整体的处理器利用率(或平均利用率)。当持续超过90%,则面临瓶颈,需增加处理器
    2. 查看每个CPU的Processor\%Processor Time 和 Processor\%User Time(系统非核心操作消耗的CPU时间,当服务器是数据库服务器时,可能是数据库排序或函数操作消耗时间) 和 Processor\%Privileged Time
    3. 查看 System\Processor Queue Length,当其大于CPU数量总数+1时,说明出现处理器阻塞。当Processor\%Process Time较高时一般伴随阻塞,反之则不必然。
  • 磁盘I/O分析方法:针对数据库服务器、或文件服务器、流媒体服务器; Disk/Transfer 介于15~30ms为良好,超过60ms则需考虑更换硬盘等
  • 进程分析方法:查看进程的%Processor Time值,反应进程消耗的处理时间。查看页面失效。
  • 网络分析

    应用服务器计数器:IIS应用服务器,Tomcat

    数据库计数器

4、性能测试工具原理

性能测试不等同于性能测试工具;性能测试脚本录制是指录制服务端和应用之间的通信数据,而非GUI操作,需先选择录制的协议

性能测试架构(以load runner为例)

  • 虚拟用户脚本生成器
  • 压力产生器:用于根据校本内容产生实际的负载。(一般一台具有512MB内存的PC机可顺利运行200个左右的VU)
  • 用户代理:是运行在负载机上的进程(可被看作压力产生器的组成部分),一般以后台方式在负载机上运行
  • 压力调度和监控系统
  • 压力结果分析功能
时间: 2024-11-03 21:11:12

《软件性能测试过程详解与案例剖析》读书笔记的相关文章

码农的产品思维培养第一节(人人都是产品经理读书笔记)

在前段时间,密集的推出Android学习记录之后,我觉得接下来的Android开发进入了一个精进演变的过程,革命性的东西略缺.每日更新特别新的东西也违背认知规律.所以以后关于Android方面的知识,碰到什么,然后记录什么. 而今天,在前一篇日志里面,我描述了我为什么要去理解"产品经理",从这一节开始,我要实施我的计划.所以,和Android记录一样,我要记录这个过程.对自己是一个回归总结吸收的过程,同时也希望能够帮助到更多的朋友,如果你也心存学习进取之心,如果你也如我一般疑惑未解心不

人人都是产品经理读书笔记(四)

补充:

《启示录:打造用户喜爱的产品》—— 读书笔记

这是一本非常不错的书,即使你可能只是一名开发工程师,也会有意想不到的收获! 如果你是一名产品经理,那就更不能错过了!不要留下遗憾! 这真的是一本很好的书,读每一遍都会有不同的收获,绝对让你震撼!我是会再读一遍或者N多遍的, 而能把这些内容转应用到实际中的人才是真正的高手,细细体会,在工作中好像已经有人在用了!惊讶!得抓紧时间了! 通过这本书,你将会知道一个合格的产品经理应该做什么,怎么做 本书主要讲解三个方面:人员.流程.产品 人员:产品从开始到完成过程中所有的参与者 流程:产品在开发过程中的所

产品经理学习笔记(二)------产品经理的工作职责(下)

二.产品经理的工作职责(下) 4.产品宣讲 ---宣讲对象:客服.市场.销售.运营.其他(开发进度到50%) ---宣讲目的:内部培训.获得认可 ---宣讲方式:内部推荐会(预测.演示.试用).注意控制(氛围.引导) ---宣讲目标:获得认可.帮助其他团队更好理解产品.协助其他团队更好开展工作 5.市场推广 ---对产品资料进行内容把关:网站.移动应用.印刷品等 ---主要针对:市场.公关.运营.销售 6.产品推出后的管理与迭代 ---运营数据的整理分析 ---深入一线体验产品 ---关注用户需

产品经理--读书静心的日子

入行教育,做教育产品工作,需要不断的进步. 一.了解产品开发.项目管理经验. 二.教育基础理论及相关知识. 小学阶段 (2016.2017不断的翻阅,有新的体会) 中学阶段(2018主攻方向)

谷歌和亚马逊如何做产品(读书笔记)

《产品经理》读书笔记

自从鼠标手犯病后,就刻意减少使用电脑的时间并且加强运动,目前已经完全康复,但是还是需要注意.因此更新博客的频率大大降低,但是也有时间多看看书,学习学习了! 最近看了<yes,产品经理>上下册,作者 汤圆 老马,文笔诙谐,把管理知识融入工作日常内容,浅显易懂,对于非管理专业的门外汉,还是不错的读物! 下面是摘抄的部分主要内容,个人认为比较有用的就记录下来. ------------------------------------------------ 制定产品价格策略的6步: 确定企业目标 冲

产品经理的那些事第一章读书笔记

1.一个产品经理的信仰:好产品能改变世界. 2.为什么要做产品经理:因为热爱,改变世界的方法有很多,技术可以改变世界,好的产品也可以,当然还有其他,但我热爱产品,一件事只有热爱了,才能持续不断的去做好,所以我选择了产品经理这条路. 3.产品是什么:产品是用来解决某个问题的东西. 4.产品经理为何而设:想要更了解产品与它面临的竞争情况,最终目的是要满足顾客的需求. 5.产品经理概念的进化: 分析: 1)行业形态不同:成熟行业vs.新兴行业 ①传统行业 概况:经过几十年乃至上百年的摸爬滚打,市场已经

【读书笔记】产品经理要做的事

文章链接:http://www.chanpin100.com/archives/44223 作为一个产品经理,不能只画图:产品经理更像是一个纽带,连接着各个环节,保持项目的正常运行. 在开始要做一个产品的时候,不能上来就画图,也不能告诉你需求就开始画图.应该先对需求进行筛选和挖掘:把伪需求去掉,挖掘出潜在需求. 1.分析产品的步骤:目标人群.使用场景.业务核心. 2.在团队中担任掌舵人,有目的的引导团队:激发团队灵感可以使用商业画布:客户分布.价值主张.渠道通路.客户关系.收入来源.核心资源.关

【读书笔记】神一样的产品经理(一)

 第一篇 产品经理 1.产品经理诞生的背景和价值 *很多入门级书里都会提到这一部分,本书讲了保洁诞生的第一个产品经理的故事. 2.很牛的产品经理(例子是乔布斯.郭靖) 1)几个重要特性:*影响力 *核心需求把控力 *创新力 *痴情力 2)产品经理的职责: *明确产品的目标用户群及其特征*获取.评估和管理用户需求*完成产品需求文档.产品原型和流程图*精通用户体验.交互设计和信息架构技能*项目管理.需求变更管理和需求验收*产品运营数据的分析和总结*提供运营.市场和销售等支撑 3)产品经理常犯的错误