成功的Web应用系统性能测试

上传人:ba****u 文档编号:172814467 上传时间:2022-12-07 格式:DOCX 页数:6 大小:26.63KB
返回 下载 相关 举报
成功的Web应用系统性能测试_第1页
第1页 / 共6页
成功的Web应用系统性能测试_第2页
第2页 / 共6页
成功的Web应用系统性能测试_第3页
第3页 / 共6页
点击查看更多>>
资源描述
性能测试是Web应用系统的一项重要质量保证措施。在现实中,很多Web性能测试 项目由于性能测试需求定义不合理或不明确,导致性能测试项目不能达到预期目标或 进度超期。本文针对Web应用系统的技术架构和系统使用特点,探讨如何有效实施性 能测试过程,并重点介绍如何分析获得合理的性能测试需求,最终对Web应用系统性 能进行科学、准确的评估。1引言基于Web服务器的应用系统由于提供浏览器界面而无须安装,大大降低了系统部 署和升级成本,得以普遍应用。目前,很多企业的核心业务系统均是Web应用,但当 Web应用的数据量和访问用户量日益增加,系统不得不面临性能和可靠性方面的挑 战。因此,无论是Web应用系统的开发商或最终用户,都要求在上线前对系统进行性 能测试,科学评价系统的性能,从而降低系统上线后的性能风险。在很多性能测试项目中,由于不能合理定义系统的性能测试需求,不能建立和真 实环境相符的负载模型,不能科学分析性能测试结果,导致性能测试项目持续时间很 长或不能真正评价系统性能并提出性能改进措施。本文在总结许多Web应用系统性能测试实践经验和教训的基础上,从与性能测试 工具无关的角度介绍Web应用系统性能测试的方法和实施过程,以及如何定义合理的 性能测试需求。1.1术语定义性能测试:通过模拟大量浏览器客户端同时访问Web服务器,获得系统的性能. j-t数据。虚拟用户:模拟浏览器向Web服务器发送请求并接收响应的一个进程或线程。 响应时间:浏览器向Web服务器提交一个请求到收到响应之间的间隔时间。 思考时间:浏览器在收到响应后到提交下一个请求之间的间隔时间。请求成功率:Web服务器正确处理的请求数量和接收到的请求数量的比。 吞吐量:单位时间内Web服务器成功处理的HTTP页面或HTTP请求数量。 在线用户:用户通过浏览器访问登录Web应用系统后,并不退出该应用系统。 通常一个Web应用服务器的在线用户对应Web应用服务器的一个Session。并发用户数:Web服务器在一段时间内为处理浏览器请求而建立的HTTP连接数 或生成的处理线程数。当所有在线用户发送HTTP请求的思考时间为零时,Web服务 器的并发用户数等于在线用户数。1.2 Web应用系统技术架构Web应用系统的前端为浏览器,后台为Web服务器(如Apache,Microsoft Inte rnet In formation Server),浏览器和Web服务器之间的交互基于HTTP协议。HTTP 协议本身是无连接的,Web服务器通过Session机制来建立一个浏览器所发出的先后 连接之间的关联。通过实验证明,当浏览器客户端在首次访问Web服务器后,如果该 浏览器客户端不发送后续请求,服务器维持该浏览器客户端的Session变量所消耗的 系统资源非常小。2 Web应用系统性能测试过程标准的Web应用系统性能测试过程包括确定性能测试需求,开发性能测试脚 本,定义性能测试负载模型,执行性能测试和形成性能测试报告。本章将分别介绍上 述过程,并通过举例说明如何完成每一环节。2.1确定性能测试需求科学定义Web应用系统性能测试需求对一个成功的性能测试非常重要。通常,W eb应用系统的性能测试需求有如下两种描述方法。2.1.1基于在线用户的性能测试需求该需求描述方法主要基于Web应用系统的在线用户和响应时间来度量系统性能。 当Web应用系统在上线后所支持的在线用户数以及操作习惯(包括操作和请求之间的 延迟)很容易获得,如企业的内部应用系统,通常采用基于在线用户的方式来描述性 能测试需求。以提供网上购物的Web应用系统为例,基于在线用户的性能测试需求可 描述为:10个在线用户按正常操作速度访问网上购物系统的下定单功能,下定单交易 的成功率是100%,而且90%的下定单请求响应时间不大于8秒;当90%的请求响应 时间不大于用户的最大容忍时间20秒时,系统能支持50个在线用户。2.1.2基于吞吐量的性能测试需求。该需求描述方法主要基于Web应用系统的吞吐量和响应时间来度量系统性能。当 Web应用在上线后所支持的在线用户无法确定,如基于In ter net的网上购物系统,可 通过每天下定单的业务量直接计算其吞吐量,从而采取基于吞吐量的方式来描述性能 测试需求。以网上购物系统为例,基于吞吐量的性能测试需求可描述为:网上购物系 统在每分钟内需处理10笔下定单操作,交易成功率为100%,而且90%的请求响应时 间不大于8秒。2.2开发性能测试脚本在确定Web应用系统性能测试需求后,就要根据性能测试需求中确定的功能开发 性能测试脚本。比如,针对前面定义的网上购物系统的性能测试需求,将开发下定单 功能的性能测试脚本。性能测试脚本是描述单个浏览器向Web服务器发送的HTTP请求序列。每个性 能测试工具(如 IBM Rational Performanee Tester, LoadRunner)所提供的测试脚 本语法是不同的。测试人员利用性能测试工具可从头手工编写测试脚本,也可以通过 录制浏览器和Web服务器之间的网络通信数据而自动形成测试脚本。任何性能测试工具都不能保证录制形成的性能测试脚本的正确性,测试人员应通 过在单用户下运行性能测试脚本对其正确性进行验证。测试脚本不正确的一个重要原 因就是脚本的数据关联不正确,也就是并没完全建立一个测试请求和前面的响应内容 之间的关联。测试脚本HTTP请求和响应之间的数据关联是否正确的一个重要标准是 单用户运行脚本,脚本能完成期望的功能。在完成性能测试脚本的数据关联后,需要对脚本进行参数化,也就是把脚本中的 某些请求数据替换成变量,变量的值来于一个独立的数据文件,从而保证在多虚拟用 户运行脚本的情况下,每个虚拟用户所提交的数据是不同的。此外,为了测试Web应用的可靠性,还需要对请求所收到的响应进行验证(比如 验证响应的HTTP返回码或验证响应的内容),便于性能测试完成后统计请求成功 率。2.3建立性能测试负载模型性能测试负载模型定义了测试工具如何向Web应用系统提交请求,包括向Web 应用系统发送请求的虚拟用户数,每个虚拟用户发送请求的速度和频率。针对前面介 绍的网上购物系统的性能测试需求,在性能测试工具中定义的性能测试负载模型应包 括如下信息:虚拟用户数:性能测试不仅仅是执行一次,而且每次执行时虚拟用户数也不固 定,因此在性能测试负载模型中定义的虚拟用户数将在测试执行时进行设置。虚拟用户发送请求的思考时间和迭代次数:虚拟用户发送请求的思考时间长短是 决定Web应用系统负载量的重要因素之一,而迭代次数将决定性能测试的执行持续时 间。对基于在线用户的性能测试需求,将基于录制脚本时记录的思考时间,而且由于 现实中不同用户访问系统的思考时间不同,可把思考时间设置为在一定范围内的随机 值。对于基于吞吐量的性能测试需求,将把思考时间设置为零,此时Web应用系统的 在线用户数量将等于并发用户数。同时,为了避免性能测试压力的随机性,将增加请 求的迭代次数来增加测试执行持续时间,从而获得系统在稳定压力下的性能数据。虚拟用户启动模式:在现实中,Web应用系统的用户不太可能同时做相同的操 作,因此为了让Web应用系统所承担的压力随时间均匀分布,建议虚拟用户依次启 动,同时也避免大量用户同时登录造成系统阻塞。以10个虚拟用户模拟下定单为例, 可设置每个虚拟用户间隔30秒启动,这样10个虚拟用户可在5分钟后完成启动,并 保证10个虚拟用户不会在同一时刻下定单,从而更符合实际情况。2.4执行性能测试执行性能测试是指通过多次运行性能测试负载模型,获得系统的性能数据。在执 行过程中,需利用测试工具、操作系统、系统软件(如Web Server或DB Server)提供 的资源监控手段对资源进行监控和分析,帮助发现资源瓶颈,并在系统层面进行优 化。同时,还需对应用进行性能分析,帮助定位应用代码中的性能问题,切实解决系 统的性能问题。2.5形成性能测试报告性能测试项目的最后阶段就是向相关人员提交性能测试报告,汇报性能测试结 果。在向相关人员汇报性能测试结果时,并不是性能测试报告越丰富、性能数据越多 越好。好的性能测试报告是能准确、简单地传递性能测试结论,而不需太多的技术细 节。针对基于在线用户数的性能测试需求,可通过下图总结性能测试结论。其中横轴是在 线用户数,纵轴是响应时间,如40在线用户访问网上购物系统时,90%的下定单请求 响应时间不超过10秒。图一:在线用户数和响应时间时间的趋势图1111码应讨庇违在线尸户变化走势1210820203040在线二户数9哪请求响应时间针对基于吞吐量的性能测试需求,可通过下图的曲线来描述性能测试结果。以网 上购物系统为例,下图描述下定单的并发用户、下定单响应时间以及吞吐量(服务器 每秒处理定单笔数)之间的关系,从而快速判断系统是否能满足性能测试需求。从下 图中可看出,并发用户增加,请求的响应时间也增加。服务器的吞吐量是先随并发用 户数增加而增加,当吞吐量到达一定峰值后,再增加并发用户数,吞吐量会减少。原 因在于当并发用户数少时,向Web服务器提交的请求量不大,服务器处理能力还有富 余,所以吞吐量逐步增大;但当并发用户数超过某一值时,由于向服务器提交的请求 太多,造成服务器阻塞,反而导致吞吐量减少。图二:响应时间、吞吐量和并发用户数的趋势图响应时间和吞吐量随并发用户变化趋势/并发用户数每分钟艰1交易数 *-90%请求响应时间(秒)STOP/3如何获取合理的性能测试需求前一章介绍了 Web应用系统的性能测试过程,确定性能测试需求是整个性能测试 的起点和成功的重要因素。性能测试需求定义得过高,虽然确保系统上线后能满足性 能需求,但可能会造成硬件资源的浪费;性能测试需求定义得过低,系统上线后可能 会出现性能问题。如何通过分析系统上线后可能的用户访问行为,来获得合理的性能 测试需求指标呢?假设现有一个基于Web的办公自动化系统(简称OA系统),该系统提供公文收 发和查询功能。在部署该系统前,将对该系统进行性能测试。下面将详细介绍如何分 析该0A系统的使用情况,定义合理的性能测试需求。3.1如何获得0A系统的在线用户数量在线用户数量是指在特定时间区间内,有多少用户访问Web应用系统(对应到 Web服务器的Session数),根据系统可能访问用户数以及每个用户访问系统的时间 长短来确定。对于将要部署的OA系统,通过分析获得该系统有8000个注册用户,基本上所 有的用户每天(8小时工作时间)都会访问OA系统,平均在线时间(从登录OA系统 到退出OA系统之间的时间间隔,也可以是多次在线时间的合计)为12分钟,那么该 OA系统的平均在线数(也就是Web应用Session变量数)为200个(8000 * 0.2 / 8),假设峰值在线用户数是平均在线用户数的3倍(该倍数可根据实际情况调整), 则性能测试需求的在线用户数为600。3.2如何确定OA系统的性能测试用例由于时间和资源限制,不可能对Web应用系统的所有功能进行性能测试,而是从 业务的角度(如某一功能操作的用户多)和技术的角度(如某一功能虽然访问用户不 多,但内部处理逻辑复杂或处理数据量大)来选择Web应用系统的特定功能作为性能 测试用例。以OA系统为例,由于所有用户都经常公文查询功能,因此确定的性能测试用例 为公文查询。3.3如何确定OA系统的响应时间响应时间的快慢直接影响了系统使用用户的满意度,采用平均响应时间来描述系 统系统性能测试需求是不科学的,因为无法直接和客户的满意度挂钩。而且,在做性 能测试,如果某一请求的响应时间过长或过短,将导致平均响应时间和实际情况偏 离。以OA系统为例,定义的响应时间需求为:90%(该百分比和要求的系统用户满 意度相关)的查询请求响应时间不超过8秒(该时间可根据实际情况确定)。3.4如何确定OA系统的交易吞吐量单位时间内Web应用系统需处理多少笔特定的交易可通过统计获得。以OA系统 为例,假设每个用户每天(一天按8小时计算)平均会查询公文4次,那OA应用的 Web服务器平均每分钟要能处理8000 * 4 / ( 60 * 8 ) = 66.67笔查询公文交易,考虑到 峰值因素,要求每分钟能处理66.7 * 3=200笔查询公文交易。3.5 OA系统性能测试需求描述通过前面的分析,能明确定义合理的性能测试需求。OA系统性能测试需求定义 如下:基于在线用户数的性能测试需求:600个在线用户按正常操作速度访问OA系统的查 询公文功能,所有查询请求的成功率是100%,而且90%的查询请求响应时间不大于 8秒。基于吞吐量的性能测试需求:OA系统在每分钟内需处理200笔查询公文操作,交易 成功率为100%,而且90%的请求响应时间不大于8秒。4总结Web应用性能测试项目成功的关键不在于性能测试工具,而在于有效的性能测试 分析方法和实践。只有切实掌握性能测试需求分析方法,性能测试实践经验,才能保 证一个Web应用性能测试的成功。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!