计算机测量与控制!"#""!$#!%"!
!"#$%&'()'*+%('#',&-!",&(".!
!
#$&
!#
收稿日期 "#""#"#%$!修回日期 "#""#$&&%
作者简介 韦亚军!&**#"&男&安徽安庆人&硕士&工程师&主要从事大数据处理与软件自动化测试技术方向的研究%
通讯作者 张文文!&*%,"&女&江苏南通人&大学本科&工程师&主要从事自然资源信息化建设方向的研究%
引用格式 韦亚军&张文文!一种标准化的软件性能测试流程设计与研究'+(!计算机测量与控制&"#""&$#!%")$&$,!
文章编号 &',&()*% "#"" #%##$&#,!!-./ &#!&')"' 0!1234!&&5(,'" 67!"#""!#%!##'!!中图分类号 89"#"文献标识码 :一种标准化的软件性能测试流程设计与研究
韦亚军 张文文
!南京国图信息产业有限公司&南京!"&####"
摘要 为了解决软件性能测试过程中测试效率低*测试过程复杂度高*性能瓶颈定位难等问题&文章借助常用的性能测试工具M K A H U B22E R&提出了一种基于M K A H U B22E R的标准化软件性能测试流程&并对其中关键难点分析研究&确定并发用户数*吞吐量等常用性能指标的计算方法$同时&将该流程应用到实际的项目案例中&应用结果表明&该流程不仅将测试过程进一步简易化*标准化&还解决了过去在软件性能测试过程中存在较多冗余步骤*测试不规范的问题&有效地降低了测试难度&提高了测试效率%关键词 软件测试$性能测试$测试流程$性能测试模型$测试场景$M K A H U B22E R
G'+68,*,:/'+'*(01"3*L&*,:*(:6V':L"3&A*('
2'(3"(#*,0'O'+&6,8N."A
D>/`A0B2&c V:^b D E2\E2
!^A2042P b B K6B/2L K R I A64K2/2H B S6R J F K;&M6H;&^A2042P!"&####&F G42A"
=>+&(*0&)-B R42P6G E S K L6\A R E7E R L K R I A21E6E S642P&42K R H E R6K S K O W E6G E7R K X O E I S K L O K\6E S642P E L L414E21J&G4P G1K I7O E Y46J42 6G E6E S642P7R K1E S S A2H H4L L41B O6J42O K1A642P7E R L K R I A21E X K66O E2E13S!D46G6G E G E O7K L6G E1K I I K27E R L K R I A21E6E S642P6K K O M K A H U B25 2E R&A S6A2H A R H4[E H S K L6\A R E7E R L K R I A21E6E S642P7R K1E S S X A S E HK26G EM K A H U B22E R4S7R K7K S E H&6G E3E J H4L L41B O64E S A R E A2A O J[E H A2H S6B H4E H&6G E1A O1B O A64K2I E6G K H S L K R6G E1K I I K27E R L K R I A21E42H41A6K R S S B1GA S6G E2B I X E R K L1K21B R R E26B S E R S A2H6G R K B P G7B6A R E
H E6E R I42E H!:66G E S A I E64I E&6G E7R K1E S S4S A77O4E H6K6G E A16B A O7R K0E16!8G E A77O41A64K2R E S B O6S S G K\6G A66G E7R K1E S S H K E S2K6K2O J
L B R6G E R S4I7O4L4E S A2H S6A2H A R H4[E S6G E6E S642P7R K1E S S&X B6A O S K S K O W E S6G E7R K X O E I S K LI A2J R E H B2H A26S6E7S A2H2K25S6A2H A R H6E S642P 426G E7A S6S K L6\A R E7E R L K R I A21E6E S642P&\G41GE L L E164W E O J R E H B1E S6G E H4L L41B O6J K L6E S642P A2H4I7R K W E S6G E E L L414E21J K L6E S642P!
'@A"(:+)S K L6\A R E6E S642P$7E R L K R I A21E6E S642P$6E S6L O K\$7E R L K R I A21E6E S642P I K H E O$6E S6S1E2A R4K$M K A H U B22E R
B!引言
近年来&随着计算机网络化应用的进一步普及&大数
据*云计算*区块链等技术快速发展和应用&软件环境变
得极其复杂&通常由网络*数据库*负载均衡器*应用服
务!中间件"*硬件等多个部分组成&任何一部分都有可能
成为整个应用软件的性能瓶颈&从而导致软件整体性能低
下%同时&软件业务复杂度日益提升*用户量急剧增加*
操作行为多样化使得保证软件性能的过程变得极为困难&
而如何对软件性能进行测试和验证&一直以来都缺少标准
化的流程和方法'&$(%
针对这一现状&本文借助常用的性能测试工具M K A H5
U B22E R&提出一种基于M K A H U B22E R的软件性能测试标准化
流程&并对其中关键技术分析研究&以对软件性能测试过
程和方法给出指导%同时&结合淮安市+互联网f不动产
登记,一体化平台项目对流程进行应用和验证&结果表明&
该流程有效地剔除测试过程中的冗余步骤&提高测试效率&
不仅满足大部分企业级软件的性能测试和验证&还可以指
导测试人员快速准确地定位软件的性能瓶颈&分析存在的
问题%
C!软件性能测试
软件性能测试是质量保证过程必不可少的环节&是验
证软件是否满足用户期望的性能需求&发现软件可能存在
的性能瓶颈&分析性能问题&并提供性能优化方案的过程%
在实际测试过程中&可以根据具体的性能需求和应用领域
采取不同的测试方法&完成对软件的性能需求和应用领域
验证%常用的性能测试方法主要包括以下几种'(%()
&"验收性能测试)模拟实际业务量和使用场景&测试
软件性能是否满足实际生产的性能要求&即在特定运行条
件下验证软件的能力状况&是最常见的一种性能测试方法%
""负载测试)在一定的软硬件环境下&利用增加虚拟
用户数实现对被测软件增加负载&直到规定的性能指标或
各项资源利用率超过预期目标%该方法可以到软件的最
大承载能力&了解系统的性能容量%
$"压力测试)在服务器F9C*内存处于饱和状态下&
测试软件处理会话的能力*是否会出错等%一般通过模拟
负载实现服务器资源达到较高水平&测试软件的稳定性%
!!计算机测量与控制!第$#""""""""""""""""""""""""""""""""""""""""""""""""""""
#$"!#(
"配置测试)通过不断对软硬件的各项配置参数进行调整*测试*验证&掌握软件在不同环境中的运行效率&从而获得最优的参数配置%可以用于探索软件最大的性能潜力%
)
"并发测试)测试较多用户对软件的同一个功能*同一个接口请求进行访问时&软件是否能正确响应%主要验证软件是否存在内存泄露*线程锁或资源竞争等情况%'
"可靠性测试)检验软件在一定的负载压力下&是否可以持续*稳定的运行%测试时间"!$天&测试过程需随时关注软件各项性能指标*资源使用情况是否满足要求%,
"失效恢复测试)主要针对采用了负载均衡*集部署*分布式软件设计&当其中一台或者多台服务发生故障时&软件是否能正常被使用&且各项性能指标是否都满足要求%
E !5"*:/%,,'(简介
M K A H U B 22E R 是一款广泛应用于企业级软件的性能测试工具&拥有良好的操作界面&可以通过模拟多虚拟用户对软件产生负载压力%同时&还可以与开发工具进行持续集成&实时监控软件性能测试过程中各项指标的运行情况&支持广泛的协议和编程技术&适用于多种体系架构的软件
性能测试'*&&(
%M K A H U B 22E R 主要包括用户脚本生成器*控制器和分析器三大组件'&"(&其工作原理如图&所示%
&"用户脚本生成器!N B P
E 2&W 4R 6B A O B S E R P E 2E R A 6K R "&用于捕捉用户业务操作流并生成脚本%脚本记录了用户的操作&同时包含一系列用来监测软件性能的函数&用户可以对生成的脚本进行修改完善&来满足实际性能测试工作的要求%
""控制器!F K 26R K O O E R
"&是整个软件性能测试的控制中心&用来构造和维护性能测试场景&管理协调虚拟用户在系统上的操作行为%同时&通过控制器将任务分派给负载生成器&并收集N B S E R *服务器*软件各项性能指标数据%$"分析器!:2A O J
S 4S "&将控制器收集的各项性能指标数据以图表的形式进行展示并生成测试报告&供测试人员分析和性能调优
%
图&!M K A H U B 22E R 工作原理
F !软件性能测试流程
基于的软件性能测试流程结合大部分软件
应用现状&将测试流程分为规划测试工程*设计测试工程和测试结果分析$个阶段&每个阶段细分多个工作流程%实现将复杂的测试过程简单化*流程化&降低测试难度&提高测试效率&为软件的性能测试过程和方法提供指导%基于M K A H U B 22E R 的软件性能测试流程如图"所示
%
图"!基于M K A H U B 22E R 的软件性能测试流程
软件测试流程F D C !规划测试工程
软件性能测试通常是利用工具模拟大量用户操作来验证软件能够承受的负载情况&出潜在的性能问题&并对问题进行分析*解决&是一项复杂度高*综合性强的工作&可以将其定义为一项测试工程&在开始阶段需对工程进行规划&主要包括收集并分析性能需求*构建性能模型和制定测试计划%
$;&;&!需求收集与分析
需求收集与分析主要是了解被测软件的系统架构*业务流程*用户特征&以及软件的运行环境&确定软件性能测试的目的和范围&分析哪些业务纳入性能测试范围以及用户期望的性能指标或测试终止标准&形成需求收集表%同时&还需要分析用户使用行为*业务分布*业务量统计&并根据分析结果估算出89<;和并发用户数等指标%
以淮安市+互联网f 不动产登记,一体化平台项目为例&该平台主要是面向全市()#余万用户提供不动产登记业务线上办理服务%业务需求收集示例表格对部分业务量*未来业务量*响应时间*事务通过率等进行了收集&如表&所示%
表&!业务需求收集示例
业务名称
!描述"业务量-!万笔-年"未来业务量-!万笔-年"响应时间
-S 事务通过
率-_用户注册&##&"#+$,**用户登入)##%##+$,**进度查询)#%#+$,**指南查询)#%#+$,**在线申请
"#$#+$,*)在线预约
(#
)#
+$
,*
)$;&;"!模型构建和制定测试计划
在软件性能测试过程中&构建性能模型类似编写测试
第%期
韦亚军&等)""""""""""""""""""""""""""""""""""""""""""""""""""""
一种标准化的软件性能测试流程设计与研究
#$$!#
用例&主要是根据收集的性能需求和应用软件的相关信息完成模型的构建&指导性能测试的实现和测试结果的输出%
软件性能模型构建主要包括业务模型和测试模型'&$"#(
%
&"业务模型!Q =&X B S 42E S SI K H E O
"&指经过性能需求分析后&明确软件的各个业务流程*业务相关功能在某个时间段内运行的业务种类及其业务占比&即哪些业务在哪个时间段运行*运行多久*业务量多少*并发用户多少等%业务模型是构建测试模型的重要基础&是性能测试关注的重点%
""测试模型!8=&6E S 6I K H E O
"&从业务模型中分析和整理出来需要进行性能测试的业务&通常都是高频业务*高资源占用的业务&这些业务需要具有可测性*可验证性%测试模型作为性能测试场景设计的依据&通常会继承业务模型的大多数业务功能&针对因特殊原因无法进行性能测试的!
如第三方非开源加密程序&测试程序无法模拟"&测试模型中会去掉这部分业务&或者设计替代的等价方案%以淮安市+互联网f 不动产登记,一体化平台项目为例&部分测试模型如图$所示
%
图$!测试模型示例
制定测试计划的主要目的是用来规划软件性能测试工作&保证测试工作高效顺利的进行&同时防范和抵御
可能出现的各类风险&是正式开展性能测试工作的前提%测试计划主要包括系统概述*测试环境*测试策略*测试场景*进度计划等内容%同时还需明确人员安排*系统风险&对测试过程中可能涉及的风险加以评估&确定风险的应对策略&如人员风险可以通过加强人力储备*采用:Q 角*明确各自职责等来完成%
F D E !设计测试工程
设计性能测试工程主要是利用M K A H U B 22E R 组件完成测试脚本开发*数据准备*场景设计*执行与监控等工作&是基于M K A H U B 22E R 的软件性能测试流程的重要环节%该阶段的目标是对测试工程的进一步实现和深化&同时输出软件各项指标记录和报告&为后续性能调优提供数据基础%$;";&!脚本开发与调试M K A H U B 22E R 提供了用户脚本生成器!N B P E 2"组件&支持D E X !V 889-V 8=M "*Z O E Y *<:9b C /等多种主流协议和+:N :*F 语言*N Q 等多种编程语言进行测试脚本
开发&可以根据系统架构设计选择对应的协议&参考构建的性能模型完成脚本开发%开发完成后&需对脚本进行回放*调试&同时还可以添加集合点*参数化使脚本更加接近真实用户操作&也可以插入事务和检查点来判断脚本在执行过程中系统是否能正确响应%
以用户登入业务脚本为例&在脚本上方插入集合点O R 4R E 2H E [W K B S !+O K P 42,"&可以实现不同虚拟用户在同一时间点执行登入操作&实现真正意义上的并发%在脚本上方添加开始事务O R 4S 6A R 646R A 2S A 164K 2!+9F 4O K P
42,"&在操作结尾添加结束事务和检查点&根据响应码判断事务成功或失败&通过该操作可以输出在指定压力测试下登入操作的成功率*平均响应时间等性能指标%
O R 4R E 2H E [W K B S !l O K P
42l "$!O R 4S 6A R 646R A 2S A 164K 2!l 9F 4O K P
42l "$!\E X 4R E P 4S A W E 47A R A I !l A 11E S S 46K 3E 2l &l M Qm -l A 11E S S 46K 3E 2-l -)-l l &l U Q -m -l -&l &M :<8"$!\E X 41B S 6K I 4R E T B E S 6!l 2E \M K P
42l &!l C U MmG 667)--O K 1A O G K S 6-E S 6A 6E 7O A 65R E P 4S 6E R -W "-O K P 42=K H E O -2E \M K P
42l &!l =
E 6G K H m9.<8l &!l
U E S K B R 1E m #l &!l U E 1F K 26E 268J 7E m A 77O 41A 64K 2-0
S K 2l &!lU E L E R E Rm G 667)--O K 1A O G K S 6-E S 6A 6E 7O A 65R E P 4S 6E R -7A P E -W "!&-O K P
42!G 6I O l &!l <2A 7S G K 6m 6"!42L l &!l =
K H E mV 8=M l &!l >218J 7E m A 77O 41A 64K 2-0S K 2$1G A R S E 6mC 8Z 5%l &!l Q K H J m 1-l G E A H -l )1-l K R 4P 42-l )-l "-l &-l S 4P 2-l )-l +S 4P 2,-l &-l Y [T J
H I -l )-l -l &-l A 11E S S 46K 3E 2-l )-l -l 3&l !l -l H A 6A -l )1-l O Y -G -l )-l +O Y H G ,-l &-l B S E R 9\H -l )-l -l &-
l J
[I -l )-l &"$()'-l &-l O K P 428J 7E -l )-l 7E R S K 2-l 33l &!M
:<8"$\E X 4R E P 4L 42H !l <E A R 1GmQ K H J l &l <A W E F K B 26m 7A S S 4O K P 42l &l 8E Y 6m 个人中心l &M :<8"
$!\
E X 4B R O !l 2E \4B S E R 442H E Y 4个人中心l &!l C U MmG 667)--O K 1A O G K S 6-E S 6A 6E 7O A 65R E P 4S 6E R -7A P
E -W "!&-2E \4B S E R 442H E Y l &
!l
U E S K B R 1E m #l &!l U E 1F K 26E 268J 7
E m 6E Y 6-G 6I O l &!lU E L E R E Rm G 667)--O K 1A O G K S 6-E S 6A 6E 7O A 65R E P 4S 6E R -7A P E -W "!&-O K P
42l &!l <2A 7
S G K 6m 6*!42L l &!l =
K H E mV 8=M l &!4L !\E X 4P E 6442647R K 7E R 6J !V 8894/^Z .4U >8C U ^4F .->"!"
##"1!O R 4E 2H 46R A 2S A 164K 2!l 9F 4O K P 42l &M U 49:<<"$!3
!E O S E 1!O R 4E 2H 46R A 2S A 164K 2!l 9F 4O K P 42l &M U 4Z :/M "$3
!!计算机测量与控制!第$#""""""""""""""""""""""""""""""""""""""""""""""""""""
#$(!#$;";"!数据准备
如何生成满足软件性能测试需要的大批量测试数据非常重要&因为在软件的实际使用过程中&用户可能会输入各种各样的数据进行操作&M K A H U B 22E R 提供了多种数据生成方法&主要包括如下几种)
&"数据生成池技术%在M K A H U B 22E R 参数列表中&提供了多种数据类型生成技术&包括日期型*随机数等&在测试脚本中插入定义的参数名或函数&并设置参数循环方式&在脚本回放时就可以自动从数据池取出数据&完成大
批量数据测试工作'
"&")(
%""自定义数据文件%用户可以将自己定义的数据文件!$
;H A 6格式"保存在脚本文件夹下&并对其进行参数化&添加到脚本中%在脚本回放时就可以通过参数化读取用户自定义数据文件中的测试数据%
$"执行<?M 脚本文件%通过M K A H U B 22E R 提供的数据库向导功能&编写*执行<?M 语句从指定的数据库中批量选择出满足要求的测试数据并存储在本地$;H A 6文件中&该方法是一种比较高效的测试数据批量生成方法%
在本文项目中&采用第三种方法生成测试数据&即通过执行<?M 语句&从数据库中获取足够多的且符合要求的测试数据&并保存至本地$;H A 6文件&为测试过程做数据准备%当数据库中的数据量不足以满足性能测试要求时&可以通过执行自动化脚本或编写插入数据<?M 等方式批量添加数据&当性能测试结束后&需对本轮测试所产生的数据进行清洗或重新恢复数据库%
$;";$!场景设计与实现
性能测试场景设计与实现是根据已构建的软件性能模型设计出相应的测试场景&并利用M K A H U B 22E R 控制器!F K 26R K O O E R "组件&完成测试场景的实现%&
"场景设计)在构建软件性能模型时已经确定了需要测试的业务种类&场景设计则是结合虚拟用户&将这些业务种类组合到一个测试单元%以淮安市+互联网f 不动产登记,一体化平台项目为例&根据收集的需求和构建的性能模型&设计出部分业务场景示例&如表"所示%
表"!场景设计示例
场景编号
测试类型
业务名称并发数运行时间
目的
<E 14#&
基准测试用户注册
&用户登入&进度查询
&指南查询&^
-:验证脚本*测试环境*性能基准
<E 14#"
配置测试用户注册
"#用户登入"##进度查询
&#指南查询&#
&#I 42优化配置<E 14#$
负载测试用户注册
"#-(#-'#
用户登入"##-(##-'##
进度查询&#-"#-(#
指南查询&#-"#-(#
$#I 42分析性能变化趋
势*
分析性能问题*定容定量
!!<
E 14#&基准测试)主要是用来验证测试环境*测试脚本的正确性*得到软件的性能基准&为后续的测试执行提供参考依据%基准测试采用单业务场景*单用户方式来执行&执行时长根据响应时间来调整&测试结果采样样本尽量大%如响应时间为&S &&###个事务就需要运行&###S
以上$响应时间"##I S &运行'##S 就可以完成$###个事务的采样%
<E 14#"配置测试)帮助分析软件相关性能配置&确保软件配置适合于当前性能需求&一般为综合场景!多个业务同时执行"
%测试过程是一个反复实验的过程&先出不合理的配置&然后进行修改*验证&直到配置满足要求为止%
<E 14#$负载测试)负载测试的目的是出软件的性能问题&并对软件进行定容定量&分析软件性能变化趋势&为软件优化*性能调优提供数据支撑%负载测试分为单场景和综合场景&单场景可以排除其他业
务场景的干扰&有利于分析性能问题$综合场景更接近用户实际使用情况&可以对软件进行综合的性能评估%
""场景实现)性能测试场景设计完成后&就可以利用F K 26R K O O E R 组件来实现具体场景%F K 26R K O O E R 支持手动场景!I A 2B A O S 1E 2A R 4K "和面向目标的场景!P K A O 5K R 4E 26E HS 1E 52A R 4K
"两种类型&手动场景是指完全由用户设置每个脚本的虚拟用户*运行时间等信息$面向目标的场景则是用户提前设定好性能测试要达到的目标和虚拟用户的增长模式&场景运行后&直到达到用户设定的目标后停止%
以<E 14#"配置测试为例&选择手动场景&在F K 26R K O 5O E R 中添加测试脚本&设置每个脚本的虚拟用户数量和行为方式&完成配置测试场景的实现%如图(所示%
图(!配置测试场景示例
$;";(!执行与监控
场景设计与实现完成后&就可以在F K 26R K O O E R 中运行场景&对软件进行性能测试&同时&实时监控场景运行情况*获取虚拟用户的运行状态*收集测试结果%测试结果不仅包括平均事务响应时间*事务通
过率*吞吐量等软件性能指标&还包括数据库性能状态*+N=使用情况及服务器硬件性能指标&如F 9C 使用率*内存利用率*磁盘空间等&如表$所示%
第%期
韦亚军&等)""""""""""""""""""""""""""""""""""""""""""""""""""""
一种标准化的软件性能测试流程设计与研究
#$)!#
表$!性能监控项目
指标名称
阈值
指标说明
F 9C 使用率+,)_
过高会导致响应慢&服务不稳定内存利用率+,)_过高会导致响应慢&服务不稳定
-4S 384I E +,#_过高会导致/.等待时间变长&服务水平降低
网络使用率+,#_过高会导致网络阻塞&网络延时变长&响应时间变长
慢查询<?M 检查是否存在慢<?M 和数据库资源状态+N=b F 内存回收效率
8K I 1A 6相关
检查连接数*线程数*内存是否最优
F D F !测试结果分析
结果分析是测试流程中的一个重要组成部分%场景运行结束后&:2A O J S 4S 组件会自动加载运行数据并生成各类图表信息&包括虚拟用户运行状态*吞吐量*响应时间及硬件资源等%同时&还提供了图表合并*分解*关联等功能&可以将多个性能指标数据关联后进行综合分析&并确定测试结果是否满足性能目标要求*是否需要进行性能调优等%
$;$;&!分析测试结果
性能测试结果分析是一项复杂度高且难度大的工作&需结合软硬件环境*测试报告进行综合分析&对测试人员综合能力要求较高&其分析步骤主要包括如下)
&
"首先查看性能测试整体运行状况&收集运行日志信息
&检查运行过程中是否存在异常报错&若存在&则需进一步分析并确定引起异常报错的具体原因%
"
"其次分析性能测试执行结果&查看响应时间*吞吐量*事务通过率*资源利用率等指标是否满足性能要求&如图)所显示的是部分业务响应时间结果图%若不满足要求&则首先需对硬件环境进行排查&分析是否是硬件问题引起的性能瓶颈&硬件问题排除后&则需要对被测软件本身进行分析&确定引起性能问题的具体原因%
图)!平均事务响应时间
$;$;"!性能调优
针对不满足性能需求的指标&需结合硬件*数据库及被测软件综合分析存在的问题&提出解决方案&并进行性
能调优%通常性能调优的方法包括空间换时间*时间换空间*并行*异步处理等&其中异步处理是指当业务链路上有任务耗时较长&可以拆分业务&甚至使用异步的方式减少阻塞影响&也就是常说的解耦%当性能调优完成后&还需对测试脚本进行更新&以满足软件调优后的实际情况&同时对软件进行性能复测%
M !关键技术研究
在软件性能测试过程中&除了制定统一*标准化的测试流程外&还需对各个性能指标的度量进行统一&如并发用户数*每秒事务数*吞吐量等%同时&在工具的应用过程中&为了使得测试结果更加准确和有效&还应结合被测软件实际情况采用一些增强技术&如脚本参数化*脚本关联%
M D C !并发用户数
并发用户是指在软件中操作业务&并对后台服务器产生压力的用户&在性能测试工具中通常被称为虚拟用户!N C &W 4R B 6A O B S E R
"%并发用户数是由软件具体的业务场景来决定&因此&在计算并发用户数前&需首先确定典型的业务场景*具体的性能需求*业务模型等&然后再根据并
发用户计算公式计算出每个业务场景的并发用户数'"'$#(
%
U Q #
'K 8
!&
"U Q .
#U Q %$U 槡Q !"
"!!在式!
&"中&U Q 是指业务场景的并发用户数&'是指该业务场景平均每天实际访问的用户量&K 是指用户从登入系统到退出的平均耗时&8是指系统每天对外开放的总时长%式!""是用来计算并发用户数峰值&其中&U Q .
是指峰值&
U Q 是由式!&
"计算得到的并发用户数%示例)以淮安市+互联网f 不动产登记,一体化平台项目为例&该软件注册用户数为%#万&每天有&;)万用户访问软件进行各项操作&操作平均时间为#;)小时&该软件每天对外开放时间为&"小时%则根据式!&"和式!""
可以得到)
U Q #
!&)###H #;)
"&"
#'
")U Q .
/'")%$H 槡'")#,##
M D E !吞吐量
吞吐量是指单位时间内系统处理客户请求的数量&直接体现软件系统的性能承载能力%一般情况下&以不同计量单位来表达吞吐量的方式可以表明软件受不同层次的制约%如以Q J 6E S -<E 1K 2H 和9A P E S -<E 1K 2H 为单位表示的吞吐量主要是受网络*服务器架构的制约$以U E T
B E S 6S -<E 1K 2H 为单位表示的吞吐量则主要是受应用服务器*软件代码逻辑的制约%
一般情况下&在软件未遇到性能瓶颈时&吞吐量与并发用户数之间存在一定的关联关系&如图'!A "所示&可以采用式!$
"计算吞吐量)