基于LoadRunner的性能测试研究
- 格式:pdf
- 大小:373.56 KB
- 文档页数:6
请求报文格式:<?xml version="1.0" encoding="ISO-8859-1"?>< Publish ><SNSID>123</SNSID><UserID>456</ UserID><CommentsTypeID>2</ CommentsTypeID><CommentsID>123</CommentsID><AuthorID>456</AuthorID><CommentsContent>Don't forget the meeting!</CommentsContent> </Publish>有了上述的说明书之后,测试人员可以根据文档的描述在LoadRunner书写相应的接口测试脚本。
LoadRunner中涉及到向服务器发送请求的API方法包括:web_url(),web_submit_form(),web_s ubmit_data(),web_custom_request()。
下面介绍两种我常用的方法:方法一:使用web_submit_data()web_submit_data("insert","Action=http://116.211.23.123/SNS/Publish.htm ","Method=POST","Referer=http://116.211.23.123/SNS/Publish.htm ","Mode=HTML",ITEMDATA,"Name= SNSID ","Value=6601",ENDITEM,"Name= UserID ","Value=123",ENDITEM,"Name= CommentsTypeID ","Value=1",ENDITEM,"Name= CommentsID ","Value=456",ENDITEM,"Name= AuthorID","Value=789",ENDITEM,"Name= CommentsContent ","Value=Just for testing",ENDITEM,LAST);方法二:使用web_custom_request()char str[1000];strcpy(str,"SNSID=7999&UserID=1&CommentsTypeID=1&CommentsID=1&AuthorID=1&CommentsContent=1 ");web_custom_request("Publish","Url= http://116.211.23.123/SNS/Publish.htm","Method=POST","Referer=http://116.211.23.123/SNS/Publish.htm ","Mode=HTTP",str,LAST);这也是一种写法,可以跟web_submit_data互换。
Loadrunner进⾏性能测试的步骤Loadrunner 11是⼀款免费的性能测试⼯具,他包含三个⼤模块•使⽤VuGen:创建脚本•运⽤Controller:设置⽅案•查看Analysis:分析测试结果结合软件测试的流程可以知道使⽤LoadRunner进⾏性能测试的过程如下:•规划测试:分析应⽤程序、定义测试⽬标、⽅案实施•创建Vuser脚本•创建⽅案:⽅案包括运⾏Vuser 的计算机的列表、运⾏Vuser 脚本的列表以及在⽅案执⾏期间运⾏的指定数量的Vuser 戒Vuser 组。
•运⾏⽅案:可以指⽰多个Vuser 同时执⾏任务,以模拟服务器上的⽤户负载。
可以通过增加戒减少同时执⾏任务的Vuser 的数量杢设置负载级别。
•监视⽅案:使⽤LoadRunner 联机运⾏时、事务、系统资源、Web 服务器资源、数据库服务器资源、⽹绚延时、流媒体资源、防⽕墙服务器资源、Java 性能等、应⽤程序部署和中间件性能监视器杢监视⽅案的执⾏•分析测试结果:在⽅案执⾏期间,LoadRunner 将记录丌同负载下的应⽤程序性能。
可以使⽤LoadRunner 的图和报告杢分析应⽤程序的性能。
根据性能测试计划,搭建好测试环境后,我们使⽤lr进⾏性能测试的步骤如下:1.使⽤VuGen录制vu要执⾏的测试脚本并完善精简。
录制过程可能有点⿇烦,所以录制成功后最好先做好备份,然后使⽤其中的⼀份进⾏完善脚本的操作,其中需要完善的项⽬有:参数化、关联、检查点、集合点、思考时间、事务等。
再完善了脚本后最后⼀步对脚本进⾏精简⼯作。
(录制的脚本回放时不出错不代表脚本是正确的,单⽤户运⾏脚本不出错也不代表多⽤户运⾏时不出错)录制:设置好录制选项和运⾏时选项,录制好脚本后做好备份⼯作。
参数化:a.为什么做参数化(需要⽤户提供不同的数据才能正常运⾏,这个是从脚本⾃⾝⾓度);b.哪些地⽅需要做参数化;3.怎么做参数化。
a.如果⽤户在录制脚本过程中,填写提交了⼀些数据,返些操作都被记录到了脚本中。
LoadRunner性能测试实战讲解内容介绍:很多使用LoadRunner的测试人员经常面临两个难题:脚本开发与性能测试分析。
本书就是基于帮助测试人员解决这两个问题而编写,致力于使读者学精LoadRunnner这一强大的性能测试工具。
全书共分为四部分:入门篇、基础篇、探索篇、实战篇。
第一篇入门篇的内容包括第1章和第2章,着重于讲解性能测试与LoadRunner的基础理论知识。
第二篇基础篇的内容包括第3章至第5章,是LoadRunner 的基本使用部分,着重讲解Virtual User Generator、Controller、Analysis的使用方法。
第三篇探索篇的... 第1部分入门篇.. (1)第1章性能测试基础知识.. 31.1 性能测试基本概念 (4)1.1.1 什么是性能测试 (4)1.1.2 性能测试应用领域 (6)1.1.3 性能测试常见术语 (8)1.2 全面性能测试模型 (11)1.2.1 性能测试策略模型 (14)1.2.2 性能测试用例模型 (17)1.2.3 模型的使用方法 (20)1.3 性能测试调整基础 (21)1.4 如何做好性能测试 (24)1.5 本章小结 (28)第2章LoadRunner基础知识.. 292.1 LoadRunner简介 (29)2.1.1 LoadRunner主要特点 (29)2.1.2 LoadRunner常用术语 (31)2.2 LoadRunner工作原理 (32)2.3 LoadRunner测试流程 (33)2.4 LoadRunner的部署与安装 (35)2.5 本章小结 (41)第2部分基础篇 (43)第3章脚本的录制与开发.. 453.1 Virtual User Generator简介 (45)3.1.1 VuGen录制原理 (46)3.1.2 VuGen功能简介 (48)3.1.3 如何选择协议 (49)3.2 VuGen录制功能详解 (50)3.2.1 录制参数设置 (50)3.2.2 脚本录制与创建事务 (57)3.2.3 回放与调试脚本 (61)3.2.4 脚本录制的基本原则 (63)3.3 修改虚拟用户脚本 (64)3.3.1 参数化功能 (64)3.3.2 深入集合点 (71)3.3.3 巧用检查点 (72)3.3.4 关联 (78)3.4 配置虚拟用户脚本 (80)3.5 两个常用函数介绍 (84)3.6 本章小结 (86)第4章场景的创建与执行.. 87 4.1 Controller简介 (87)4.2 场景类型介绍 (88)4.2.1 手动测试场景 (88)4.2.2 面向目标的测试场景 (90)4.3 测试场景设计 (93)4.3.1 配置测试脚本 (93)4.3.2 配置Generator 944.3.3 配置Schedule. 954.3.4 集合点配置 (99)4.3.5 IP Spoofer配置 (100)4.3.6 其他设置场景 (106)4.4 执行测试场景 (108)4.4.1 启动测试场景 (108)4.4.2 控制用户与用户组 (108)4.4.3 查看场景与用户状态 (109)4.4.4 控制集合点 (110)4.4.5 查看运行数据图 (110)4.5 监控系统资源 (111)4.5.1 监控Windows系统资源 (112)4.5.2 监控Linux/Unix系统资源 (114)4.6 本章小结 (121)第5章性能测试结果分析.. 1235.1 如何分析性能测试结果 (124)5.1.1 性能分析基础知识 (125)5.1.2 Analysis使用基础 (127)5.1.3 一个视频网站例子 (135)5.2 如何从分析图中发现问题 (148)5.2.1 虚拟用户图 (148)5.2.2 事务图 (151)5.2.3 Web资源图 (160)5.2.4 网页细分图 (166)5.2.5 小结 (179)5.3 分析图的处理方法 (179)5.3.1 修改默认配置 (180)5.3.2 合并分析图 (187)5.3.3 自动关联 (188)5.3.4 场景运行比较 (191)5.4 Analysis分析报告 (193)5.4.1 事务活动报告(Activity Reports) (193)5.4.2 事务性能报告(Performance Reports) (196)5.4.3 HTML与Word报告 (199)5.5 本章小结 (206)第3部分探索篇 (209)第6章用Visual C++增强虚拟用户.. 2116.1 认识LoadRunner动态链接库的调用功能 (211)6.1.1 动态链接库调用功能简介 (211)6.1.2 动态链接库调用功能适用范围 (212)6.2 创建与调用动态链接库 (212)6.2.1 用Visual C++创建Dll 2126.2.2 Dll调用方法 (215)6.2.3 载入头文件方法 (217)6.2.4 Dll调用需注意的问题 (220)6.3 UDP发包应用案例 (222)6.3.1 测试内容简介 (222)6.3.2 测试程序设计 (222)6.3.3 虚拟用户脚本 (223)6.3.4 测试场景设置 (224)6.3.5 测试结果分析 (225)6.4 本章小结 (226)第7章深入Java虚拟用户.. 2277.1 认识Java虚拟用户 (227)7.1.1 Java虚拟用户协议 (227)7.1.2 Java虚拟用户适用范围 (230)7.1.3 脚本开发环境配置 (231)7.2 Java脚本开发基础 (234)7.2.1 Java虚拟用户开发基础 (234)7.2.2 LoadRunner的Java API. 2437.3 Java算法测试案例 (245)7.4 本章小结 (260)第8章深入.NET虚拟用户.. 2618.1 认识.NET虚拟用户 (261)8.1.1 .NET虚拟用户适用范围 (261)8.1.2 安装与配置.NET插件 (262)8.2 创建.NET虚拟用户 (264)8.2.1 创建虚拟用户项目 (264)8.2.2 参数、集合点、事务 (266)8.3 网站视频性能测试应用案例 (271)8.3.1 创建自定义的播放器类 (272)8.3.2 创建抽象虚拟用户类 (276)8.3.3 创建抽象并发测试类 (282)8.3.4 创建自定义虚拟用户脚本 (284)8.3.5 创建LoadRunner .NET虚拟用户 (287)8.3.6 案例总结 (290)8.4 本章小结 (290)第9章LoadRunner特殊协议应用.. 2919.1 Windows Sockets协议应用 (291)9.1.1 录制Windows Sockets协议脚本 (292)9.1.2 增强Windows Sockets协议脚本 (294)9.2 WAP协议应用 (298)9.3 Web Services协议应用 (302)9.3.1 Web Services协议简介 (302)9.3.2 录制Web Services协议脚本 (303)9.4 FTP协议应用 (312)9.5 本章小结 (317)第4部分实战篇 (319)第10章电子商务平台测试案例.. 321 10.1 GBE测试项目简介 (321)10.1.1 项目背景信息 (321)10.1.2 系统功能简介 (322)10.1.3 项目测试计划 (323)10.2 性能测试规划与设计 (323)10.2.1 性能测试的种类、范围、目标 (324)10.2.2 人力资源、进度安排 (325)10.2.3 测试环境需求 (325)10.2.4 选择测试工具 (327)10.2.5 用户场景分析与设计 (328)10.2.6 性能测试计划 (333)10.2.7 测试用例设计 (334)10.2.8 其他事项 (341)10.3 性能测试准备 (341)10.3.1 测试环境 (341)10.3.2 系统使用培训 (342)10.3.3 测试数据 (343)10.3.4 虚拟用户脚本 (346)10.4 测试的实施与控制 (349)10.4.1 设计测试用例场景 (349)10.4.2 执行测试用例场景 (351)10.4.3 进度与变更控制 (359)10.5 测试结论与建议 (360)10.5.1 测试结果综述 (360)10.5.2 系统性能优化建议 (361)10.5.3 风险分析 (362)10.6 本章小结 (362)附录A LoadRunner性能测试常见问题.. 365 附录B LoadRunner性能测试模板.. 373 B.1 性能测试计划模板 (373)B.1.1 项目背景简介 (373)B.1.2 测试方案简介 (373)B.1.3 测试环境与资源 (373)B.1.4 项目里程碑 (374)B.1.5 技能培训计划 (374)B.1.6 风险分析 (374)B.1.7 计划结束标准 (374)B.2 性能测试用例模板 (374)B.2.1文档介绍 (374)B.2.2 测试需求分析 (375)B.2.3 性能测试用例 (375)B.3 性能测试报告模板 (380)B.3.1 基本信息 (380)B.3.2 测试环境描述 (381)B.3.3 性能测试用例执行分析 (381)B.3.4 测试结果综合分析及建议 (381)B.3.5 测试经验总结 (381)后记.. 383前言在作者的另一作品《Web性能测试实战》中,曾经提到过“软件亚健康”这个概念。
使用LoadRunner进行性能自动化测试的方法和技巧LoadRunner是一款常用的性能测试工具,它可以模拟多种负载条件下的应用程序行为,帮助开发人员检测和解决性能问题。
本文将介绍使用LoadRunner进行性能自动化测试的方法和技巧,帮助读者更好地利用LoadRunner提升应用程序的性能。
一、LoadRunner简介LoadRunner是由Micro Focus公司开发的一款性能测试工具,它可以模拟多种负载条件下的应用程序行为,帮助开发人员评估应用程序的性能与稳定性。
LoadRunner提供了丰富的功能和工具,包括脚本录制、负载生成、性能监控和报告分析等,可用于测试各类应用程序,如Web应用、移动应用和企业应用等。
二、性能自动化测试的基本步骤1. 确定测试目标和需求:在进行性能自动化测试之前,需要明确测试目标和需求,例如确定负载要求、并发用户数、响应时间等指标,以便后续的测试设计和执行。
2. 脚本录制与回放:LoadRunner提供了脚本录制功能,可以通过录制用户在应用程序上的操作来生成测试脚本。
在录制完成后,可以使用脚本回放功能对录制的操作进行模拟,以验证应用程序在负载条件下的性能表现。
3. 参数化和数据驱动:在进行性能测试时,往往需要模拟多个用户的行为。
为了实现这一目标,可以通过参数化和数据驱动的方式来设置不同用户之间的差异。
LoadRunner提供了参数化工具和数据驱动功能,可以轻松地设置和管理测试数据。
4. 脚本调优和编辑:在录制和回放过程中,可能会出现一些不必要或重复的操作,这会影响测试的准确性和效率。
通过对脚本的调优和编辑,可以剔除不必要的操作,减少脚本的体积和执行时间。
5. 负载生成和分析:LoadRunner提供了多种负载测试模式,可以模拟不同负载条件下的应用程序性能。
通过调整负载模式和负载参数,可以对应用程序进行不同负载场景的测试。
测试完成后,可以使用LoadRunner提供的分析工具对测试结果进行统计和分析,以便找出性能问题和瓶颈。
Jmeter与loadrunner性能测试工具对比报告测试范围:即时库存系统中选定的三个测试接口:订单取消接口,客户下单接口,wms出库完成接口;
测试环境:测试过程中所有硬件及软件资源均相同,包括压力机,应用服务器,数据库服务器,中间件服务器及相关配置。
每一轮测试结束后数据库数据均清空。
尽可能排除外部因素对本次测试结果的影响。
测试目的:验证两种性能测试工具本身对同一性能测试点的性能指标差异。
测试结果:如下图所示:
测试结论:
1、通过三个接口的测试发现两种工具本身在系统响应时间上的差别基本处在“十毫秒”量级
上。
2、jmeter相比loadrunner在系统响应时间上略短,系统处理能力略高;
测试问题:通过统计测试结果发现,jmeter在统计系统处理能力,即TPS时,它算出的结果不是平均值,是一个不断上升增加的状态,最后需要手动进行平均,该问题还需在后期测试中进一步验证。
工具使用可行性分析:
1、针对直接调用java代码的一些webservice接口、应用程序的性能测试。
2、数据库sql性能测试。
2015年第2期 No.2,2015 九江学院学报(自然科学版) (总第109期) Journal ofji ̄iang Uniw ̄rsity(natural sciences) (Sum No.109)
基于LoadRunner 的性能测试研究术
陈佳丽 (龙岩学院数学与计算机科学学院福建龙岩364012) 摘要:本文介绍了性能测试的相关概念,并利用LoadRunner测试工具,针对具体实 例给出了性能测试的实施步骤与方案,结合测试结果分析了该实例在性能方面可能存在的 瓶颈,最后提出了性能测试在互联网应用领域、移动应用领域及敏捷开发模式中进行测试 时所面临的挑战。 关键词:性能测试,软件测试,LoadRunner 中图分类号:TP 393文献标识码:A文章编号:1674—9545(2015)02—0021一(05)
近年来,随着互联网、移动应用、物联网、 云计算等各种信息技术的日趋成熟 J,软件测试 的地位也日趋重要。同时,伴随着IT领域中“大 数据集中”时代的到来,测试领域中的性能测试 显得尤为重要,引起了人们的广泛关注。不同的 应用系统都有其特定的性能或效率指标,可理解 为该系统在特定负载和不同环境配置下应具备的 响应时间和吞吐量。当前信息系统的结构越来越 庞大,使得性能测试不论是在技术方面,还是在 人员、时间及资源等方面都面临着巨大的挑战。 本文在已有研究的基础之上,着重分析了性能测 试的相关概念,包括其定义、原理及常见术语, 并利用LoadRunner测试工具结合实例给出了性能 测试的实施步骤与方案,结合测试结果分析了该 实例在性能方面可能存在的瓶颈,最后提出了性 能测试在互联网应用测试领域、移动应用测试领 域及敏捷开发模式中进行测试时所面临的挑战。 l性能测试简介 1.1性能测试的定义 软件系统的性能是一个宽泛的概念,通常包 含系统的执行效率、资源占用、稳定性、安全性、 兼容性、可靠性及可扩展性等 J。系统的性能测 试则是为了描述测试对象的性能特征而实施和执 一基金项目:龙岩学院第三批教学改革项目成果。 收稿日期:2014—10—20 通讯作者:陈佳丽。chenjialiej1425@163.tom。 行的一类测试-3 J。性能测试的合理实施,一方面 可以验证目标系统是否符合用户性能指标;另一 方面可得到相关的性能数据,为目标系统的优化 提供参考。组件测试(Component testing)、负载 测试(Load testing)、压力测试(Stress testing) 及容量测试(Volume testing)等都属于性能测试 的范畴 J。 1.2性能测试的原理 系统性能测试以多进程/多线程(Multiple processes/threads)的方式进行,其主要原理是通 过性能测试工具来模拟成千上万用户同时向后台 发送请求(该请求可理解为客户端与服务器端之 间的通讯包或协议),每个请求以测试脚本的形式 存在,以进程/线程形式运行,从而达到产生巨大 压力或指定压力的目的,同时监控后台系统资源 消耗情况以及用户端的请求处理时间。在典型的 信息系统三层架构中,若设tl、t2、t3分别为网 络延迟时间、应用服务器处理时间、数据库处理 时间,则用户端总的处理时间T=tl+t2+t3。性 能测试的目的之一就在于通过测试找到合适的解 决方案尽量降低tl、t2及t3的值,从而降低T的 值,如图l所示。 ・22・ 九江学院学报(自然科学版) 2015年第2期 闻 图1信息系统三层架构中用户请求处理时间分解 1.3性能测试常见术语 性能测试领域常见的术语有如下几个: (1)请求响应时间。请求响应时间是指从客 户端发出请求到得到响应的整个时间,一般包括 网络延迟时间和服务器处理时间(如图1中的 T)。 (2)并发用户数。是指同一时刻与同一服务 器进行交互的在线用户数。 (3)吞吐率。吞吐率是衡量网络性能的主要 指标,表示单位时间在网络上传输(从服务器发 送给客户端)的数据量。 (4)点击率。是指每s发送的Http请求数, 其值越大,该服务器上的压力更大。 (5)基线。基线可理解为对被测试系统所提 供的一个标准,性能测试需要有一个测试的基线 或标准,以此来判断被测试系统在不同环境中的 性能。 1.4性能测试工具I ̄adRunner简介 随着计算机处理速度越来越快,要想考察系 统的某项功能,如业务处理速度是否达到要求, 采用手工方式来记录处理时间,是不现实也不明 智的。同时,当需要模拟大量用户访问系统时, 例如要监测某个论坛是否能承受1O万个终端用户 的同时访问,要在同一时刻寻找10万个人、l0万 台电脑登录该网站的做法也是不现实的。因此, 执行性能测试时必须有专门的测试工具的帮助。 LoadRunner是目前应用最多的测试工具之一,可 适用于各类不同构架的应用,主要包括:脚本录 制开发工具(VuGen)、集中控制器(LR Control- ler)、结果分析器(LR Analysis)及压力机(Load Generator)等4个组件【‘】,其基本结构框架如图2 所示。
国~一 …国 一
一 一一一一 白 ~~~ ~~~ 岫
图2 LoadRunner的结构组成 2性能测试实施 性能测试的实施流程是测试中的一个关键问 题,需要在测试前做好充足的准备。其基本实施 流程如图3所示。
分析需求,构建环境
照睡磋 }… 张葡磊 一 . …~ … ~…一…… …
设计测试用例 创建测试用例脚本
__。一 、 、
l 蔓 ] 霞 _i真插 分析测试结果
图3性能测试实施流程 本节以下内容将结合《某酒店预订系统》,利 用LoadRunner测试工具,按上述实施流程,分析 性能测试的具体实施步骤。 2.1性能测试需求分析 该“酒店预订系统”是B/S架构模式,采用 J2EE开发。主要实现两个核心的功能:①查询检 索功能,即查询出符合用户输入条件的酒店列表; ②预订功能,即能正常预订用户所选定的某一酒 店。该酒店预订系统的性能测试需求如表1所示。 表1酒店预订系统的性能需求 需求内容 详细描述 需求1 检索功能支持1000个并发用户 需求2 预订功能支持120个并发用户 需求3 检索响应时间在3s以内
需求5 系统要连续稳定运行72h 2.2测试环境构建 根据2.1节对酒店预定系统功能的描述和表1 对该系统性能测试需求的描述,构建该系统的测 第2期 陈佳丽:基于LoadRunnez’的性能测试研究 ・23・ 试环境,如表2所示。 表2酒店预订系统性能测试环境
2.3测试用例设计 针对同一个性能测试需求,有多种不同的测试 方法。在确定了性能测试需求之后,可将用户业务 操作形成更详细的测试用例描述,据此设计如表3 所示的测试用例。 表3酒店预订系统性能需求对应的测试用例
2.4创建测试脚本
设计完测试用例之后,接下来的工作是结合用 例的内容,进行测试脚本的创建与编写工作,该工 作主要在l_ ̄adRunner的脚本录制开发工具(Vu. Gen)中完成,启动VuGen应用(如基于B/S结构 的酒店预订系统),选择合适的录制协议(如Web (HrIq'P/HTML)协议),打开被测应用的客户端程 序,按照预期的操作步骤即可进行录制 J。 录制完后的每个Vuser脚本都至少包含以下3 个部分的内容: (1)vuser_init,记录登录到服务器上的活动, 在脚本启动时运行,运行次数为1次; (2)Action,脚本的主体内容,记录客户端的 活动,运行次数由Run Time Setting决定; (3)vuseE end,记录注销服务器活动的过程, 在脚本退出时运行,运行次数为1次。 2.5测试场景设计 性能测试场景的设计是以所设计的性能测试用 例、所编写的测试脚本为基础而进行的。结合表1 和表3,可确定该系统中的几个典型的测试场景, 如表4所示。
表4酒店预订系统典型的测试场景 名称 描述 指标 性能计数器
。 …。 主兰行 耄 . ①应用服务器cPu使用情况 竺 竺模块 长 : 加 页面响应时间≤3 内存 黥 4佣户… …一 ~……一
⑤迭代时间间隔:30s ………… ・24・ 九江学院学报(自然科学版) 2015年第2期 黻垂 ……一3s
………=, 、 ① c 使用 定性测试场(。 暨模 型场景 ;.处否 ; 内存 景 要
:倍… …”…~ ~……。
②测试持续时间:72h 力也无明显改变 …… …一
2.6执行场景 执行测试场景是关系到测试结果是否准确的一 个重要过程,该过程相对简单。当单击运行页面中 的“Start Scenario”按钮时,LR控制器会自动开始 运行场景,并在场景状态中显示运行时的信息。在 时间充裕的情况下,同样一个测试用例最好能执行 至少3次,然后再分析结果,若结果相接近,才能 初步证明此次的测试是成功的。因而从场景执行到 测试结果的分析是一个循环的过程。 2.7分析测试结果 根据上述分析步骤,对该系统执行负载测试, 结果如下表5所示。 表5酒店预订系统服务器资源利用情况测试结果
上述结果表明,对检索功能而言,当并发用 户数达到1 000时,系统检索的平均响应时间为 3.8s,不满足检索响应时间在3s以内的要求,因 而该项测试结果不满足性能指标;当检索并发用 户数达到1 200时,系统检索的平均响应时间为 6.6s,超出了3.6s,但此时的并发用户数是l 200 人,故可看作是满足性能指标。就系统测试而言, 当查询功能模块并发用户数为1 ooo,预订功能模 块为120时,系统CPU平均的占用率为88%,不 满足CPU利用率≤85%的性能指标,因而该项测 试结果不满足要求;而当查询功能模块并发用户 数为1200,预订功能模块为140时,系统CPU平 均的占用率为93%,同前分析,也可看作是满足 性能要求。 综上,当并发用户数超过一定数量时,系统 检索响应时间和CPU的占用率都不能满足需求, 因而该系统的性能暂时无法达到预期的结果。其 存在的瓶颈可能包含以下几个方面:①系统没有 采用合适的并发/并行策略;②数据库设计和优化 不充分;③服务器的网络带宽不足;④服务器的 CPU性能不够等。后续的解决方案是针对这些可 能的瓶颈,尽快对其进行改进,使其性能尽可能 达到预期的要求。 3性能测试面临的挑战 3.1互联网应用测试 与测试传统系统一样,在针对互联网的应用 系统进行测试时,同样必须在程序部署到互联网 之前就暴露其中的错误。互联网用户往往需要的 是能即时得到响应的页面,他们不会长时间地等 待页面加载,几秒的延时都可能导致客户的离开, 较差的性能也会导致客户怀疑网站的可靠性。再 加上基于互联网的应用系统越来越复杂,各部件 之间紧密耦合,对数据的准确性和安全性提出了 更高的要求,使得对其进行性能测试的难度也越