分享

Web性能测试实战

 筠珑枫绦 2010-09-03
2010年08月29日
《Web性能测试实战》
作者:陈绍英 夏海涛 金成姬 著(2006年06月第1版第1次)
电子工业出版社 Publishing House of Electronics Industry
http://www.
北京市海淀区万寿路173信箱(100036)
 
内容简介
本书是一本总结实践经验和成果的作品,主要为测试人员规划、设计、实施web性能测试而编写。本书既包含web性能测试的基础理论,又包含理论在实践中的应用。本书第1章介绍了性能测试基础知识和性能测试常见的误区。第2章专门针对web性能测试提出了“web全面性能测试模型”,把制订性能测试策略、编写测试用例计划以及使用模型的方法融会在一起,提供了规划与设计性能测试的新思路。第3章进一步讨论了如何在项目中进行性能测试需求分析、设计与实施性能测试,并深入讨论了基于场景设计性能测试用例的方法。第4章则介绍了针对web应用程序进行性能分析的基本方法。第5章是案例部分,分别以银行卡、电子政务、门户网站等典型web应用系统为实例,讨论了如何在项目中应用“web全面性能测试模型”。通过真实的实例,向读者展示了如何在项目中制订性能测试计划、实施与控制性能测试、分析系统瓶颈等内容。本书主要针对项目经理、测试组长、测试(设计)工程师以及对性能测试感兴趣的开发人员。通过本书的学习,可以更加规范地做好性能测试设计与实施工作。
 
陈绍英,北京大学软件工程硕士.拥有多年的软件开发以及测试经验,现在主要从事软件测试工作,研究方向为软件测试过程管理和测试分析技术.性能测试等.拥有大型电子政务系统.银行卡业务系统等软件项目的测试管理及技术经验.善于组织和协调工作,在软件项目管理和测试管理方面拥有很高的能力,在工作中积累了丰富的管理经验.
 
夏海涛,吉林大学计算机系硕士.拥有多个大型金融.电信.税务和电子政务系统等行业软件项目的测试项目管理及技术实施经验.熟悉Mercury系列的测试工具,并曾参与规划和实现基于以上工具的自动化回归测试和性能测试解决方案.曾经自行开发性能测试工具并成功付诸应用.主要研究方向为持续集成与自动化测试框架设计.自动化功能回归测试.大型项目群性能测试等.
 
金成姬,博彦科技本地化工程师,从事日语.韩语等语种软件产品的本地化工作.
 
P5,性能测试的重要概念
请求响应时间:指的是客户端发出请求道得到响应的整个过程的时间。TTLB(Time to last Byte)。
事务响应时间:事务可能由一系列请求组成,事务的响应时间主要是针对用户而言,属于宏观上的概念,是为了向用户说明业务响应时间而提出来的。
吞吐量:指的是在一次性能测试过程中网络上传输的数据量的总和。
吞吐率(Throughput):单位时间内网络上传输的数据量,也可以指单位时间内处理的客户端请求数量。
TPS(Transaction Per Second):每秒钟系统能够处理的交易或者事务的数量。
点击率(Hit Per Second):每秒钟用户向Web服务器提交的http请求数。
 
P7,性能测试的种类
压力测试:对系统不断施压,以获得系统能提供的最大服务级别。
负载测试:对系统不断施压,直到性能指标达到极限,比如响应时间或者资源达到饱和状态,为系统调优提供依据。
强度测试:迫使系统在异常的资源配置下运行,以获得系统的稳定性以及扩展空间提供参考。
并发测试:多个用户同时访问同一个应用程序、同一个模块或者数据记录是否存在死锁或者其他性能问题
大数据量测试:包括动态大数据量和静态大数据量的测试,前一种表示在运行过程中有大数据量产生,后一种表示数据量已经很大的情况下运行某个模块或者功能。
配置测试:测试目的是为了找到各项资源的最优分配原则。
可靠性测试:加载一定压力的情况下,系统连续运行一段时间,分析系统是否稳定。
 
P16,在“Web 全面性能测试模型”中,把 Web 性能测试分为8个类别,包括
1、预期指标的性能测试,就是在需求分析和设计阶段提出的性能指标的测试
2、独立业务的性能测试,核心业务模块的性能测试
3、组合业务的性能测试,
4、疲劳强度的性能测试,一定负载长时间运行的测试
5、大数据量性能测试,
6、网络性能测试
7、服务器性能测试
8、一些特殊测试
 
P42,性能测试流程
1、测试需求分析,确定测试策略和测试范围
2、测试计划制定与评审,测试计划包括测试范围、测试环境、测试方案简介、风险分析等。
3、测试用例设计与开发,编写测试用例,录制测试脚本等
4、测试执行与监控,创建、执行和监控测试场景
5、分析测试结果
6、编写性能测试报告,测试报告主要包含测试过程记录、测试分析结果、系统调整建议等。
7、测试经验总结
 
P45,性能测试规划与设计
1、性能测试需求分析,需求信息的来源(项目开发计划书、需求规格说明书、设计说明书等)、项目干系人(客户代表、项目经理、产品经理、销售经理和需求分析员)、确定性能测试策略和测试目标(需要考虑人力资源和时间资源)、确定测试范围、目标系统的业务分析(核心模块、耦合关系和系统压力点)、用户及场景分析。
2、性能测试整体规划,测试环境规划(网络环境、操作系统环境、数据库环境、Web服务器环境、硬件资源及环境设计规划)、测试环境维护方面的规划(Ghost, VMware, 备份恢复策略)、测试工具规划(LoadRunner, Rational Performance, QALoader, WebLoad, WAS)、人力资源规划(确定团队角色、落实团队人员)。
3、性能测试计划制定,明确性能测试策略和测试范围、确定性能测试目标、方法、环境和工具、确定性能测试团队成员以及职责、确定时间进度安排,时间安排:【任务描述|人员|角色|职责|时间|工作量】里程碑:【任务|工作内容|成果|开始时间|结束时间|负责人】、确定性能测试执行标准(启动条件、终止条件、结束标准)、测试技能培训、确定性能测试中的风险(新工具不熟练、性能差引起时间长、人员辞职、硬件环境不具备等)。
4、性能测试用例设计,设计场景(一天内不同时间段的使用场景、系统运行不同时期的场景、不同业务模式下的场景)、确定用户使用系统情况的方法(用户现场调查、分析系统日志)、并发用户数量设计(极限法最大在线用户作为最大并发数、趋势分析,经验评估,并发数=用户数*15%=在线数*30%)
 
P66,性能测试实施和监控
1、实施性能测试, 主要包含搭建与维护测试环境、执行测试用例、监控测试执行场景、保存和分心测试结果等,这个工作基本贯穿着性能测试整个实施过程。
2、进度和变更控制,开发团队解决性能缺陷的速度、测试过程需要的软硬件资源、性能测试中采用的一些新技术、测试工具的执行能力、测试范围的变化;适当地加班、增加人力资源、调整测试范围。
P77,测试分析与经验总结
1、性能测试规划总结,测试环境规划是否合理、人力资源安排是否合理、测试工具规划是否合理;
2、测试用例设计总结,测试用例可用性总结、用例执行效果分析、用例执行时间分析;
3、测试工具与技术总结,测试过程的一些技术方面的总结、测试工具的使用经验总结;
4、瓶颈分析方法总结,应用系统瓶颈分析经验、数据库瓶颈分析经验、Web服务器分析经验。
 
P86,TPS与Throughput之间是什么关系?
两者是互为因果的关系:如果高速公路的宽度不够,Throughput不高,单位时间内到达收费站口的车辆数有限,即使收费站处理能力非常高,TPS也上不去。同样地,如果收费站处理能力不高,即TPS不高,即使高速公路非常宽,达到收费口的车辆也不得不排队等候,导致吞吐率Throughput下降。
Throughput和TPS有很强的关联性:如果随着压力的加大,Throughput和TPS的变化呈大体一致的趋势,即一起增加,说明在测试的压力下,系统没有出现显著的性能瓶颈。相反,随着压力的加大,Throughput的曲线在增加到一定的时候,出现变化缓慢,甚至平坦的状态,很有可能标明网络出现带宽瓶颈。类似地,当压力增加时,TPS曲线出现变化缓慢或者平坦的趋势,很有可能服务器开始出现瓶颈,无法进一步处理请求。
 
P89,性能分析的基本原则:由外而内、由表及里、层层深入。
 
P92,用户事务分析
LoadRunner有两种与事务相关的概念:Action和Transaction。Action是用户的一系列操作的组合;Transaction是用户某一具体的动作,例如单击“电话核实”或者“人工核实”。Action通常会包含一系列功能相关的Transaction。
1、事务综述图(Transaction Summary),通过它可以看出每个事务在测试时间内分别通过和失败了多少。
2、事务平均响应时间分析图(Average Transaction Response Time),此图显示在测试场景运行期间的每一秒内事务执行所用的平均时间。此外,还统计出测试场景运行时间内各个事务的最大值、最小值、平均值等信息。
3、每秒通过事务数(Transaction Per Second),此图显示在场景运行的每一秒中,每个事务通过、失败以及停止的数量,通过它可以确定系统在任何给定时刻的实际事务负载。
4、每秒通过事务总数(Total Transaction Per Second),此图显示在场景运行的每一秒中,通过、失败以及停止的事务总数。“每秒事务总数”下降的原因很多,例如内存泄露、程序缺陷等。
5、事务性能摘要图(Transaction Performance Summary),此图显示方案中所有事务的最小、最大和平均执行时间,可以直接判断响应时间是否符合用户的需求。重点关注事务的平均和最大执行时间。
6、事务响应时间与负载分析图(Transaction Response Time Under Load),此图是“正在运行的虚拟用户”图和“平均事务响应时间”图的组合,在任何一时间点事务响应时间与用户数目的关系。
7、事务响应时间(百分比)图(Transaction Response Time(Percentile)),可以分析在给定事务响应范围内能够执行的事务百分比。
7、事务响应时间(分布情况)图(Transaction Response Time(Distribution)),可以了解测试过程中不同响应时间的事务数量。
 
P101,Web资源分析
“用户事务分析”是站在用户角度进行的基础性能分析,而Web资源则是从服务器入手对Web服务器的性能进行分析。
1、点击率图(Hits Per Second),此图显示在场景运行过程中虚拟用户每秒向Web服务器提交的HTTP请求数,可依据点击数来评估虚拟用户产生的负载量。
2、吞吐率图(Throughput),显示场景运行过程中服务器每秒的吞吐量,可以看出服务器在流量方面的处理能力以及是否存在瓶颈。
3、每秒HTTP相应数图(HTTP Response Per Second),显示场景运行过程中每秒从Web服务器返回的不同HTTP状态代码的数量。通过分析状态码,可以判断服务器在压力下的运行情况。也可以定位生成错误的代码脚本。
4、每秒连接数图(Connections Per Second),显示方案在运行过程中每秒新建立的TCP/IP连接数。一般来说,多个HTTP请求会使用同一个TCP/IP连接。
 
P107,网页元素细分
用来评估页面内容是否影响事务的响应时间,可以分析网站上那些下载很慢的图像或者中断的链接等有问题的元素。
1、页面分解总图(Web Page Breakdown),可以显示某一事务在测试过程的响应情况。包含下载时间细分、组件细分(随时间变化)、下载时间细分(随时间变化)、第一次缓冲时间细分(随时间变化)等。
2、页面组件细分图(Page Component Breakdown),显示每个网页及其组件的平均下载时间(单位:秒)。
3、页面组件分解图(随时间变化)(Page Component Breakdown(Over Time)),显示运行期间每秒内每个网页及其组件的平均响应时间(单位:秒)。
4、网页下载时间细分图(Page Download Time Breakdown),显示每个页面组件下载时间的细分,确定是网络问题还是服务器问题。
5、网页下载时间细分图(随时间变化)(Page Download Time Breakdown(Over Time)),显示运行期间每秒内每个页面组件下载时间的细分。
6、第一次缓冲时间细分图(Time to First Buffer Breakdown),成功从Web服务器返回的第一次缓冲之前的这一段时间内的每个网页组件的相关服务器/网络时间。
7、第一次缓冲时间细分图(随时间变化)(Time to First Buffer Breakdown(Over Time)),每秒的“第一次缓冲时间细分”情况。
8、已下载组件大小图(Downloaded Component Size(KB)),显示每个已经下载组件的大小,可以直接看出哪些组件比较大需要进一步优化以提高性能。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多