1. 1.1 性能测试的概念
性能测试是通过自动化的测试工具模拟多种正常峰值及异常负载条件来对系统的各项性能指
标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各
种工作负载下系统的性能,目标是当负载逐渐增加时,测试系统各项性能指标的变化情况。压力测
试是通过确定一一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。
1. 1.2 性能测试的目的
性能测试的目的是验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统
中存在的性能瓶颈,
以优化软件,最后起到优化系统的目的。性能测试包括以下几个方面:
评估系统的能力: 测试中得到的负荷和响应时长数据可以被用于验证所计划的模型的
能力,并帮助做出决策。
识别体系中的弱点: 受控的负荷可以被增加到一一个极端的水平并突破它,从而修复体
系的瓶颈或薄弱的地方。
系统调优: 重复运行测试,验证调整系统的活动是否得到了预期的结果,从而改进性能。
检测软件中的问题: 长时间的测试执行可导致程序发生由于内存泄露引起的失败,揭
示程序中隐含的问题或冲突。
验证稳定性(Resilience)、可靠性(Rialt): 在一个生产负荷下执行测试一定的时
间是评估系统稳定性和可靠性是否满足要求的唯一方法。
1. 1.3 性能测试的常见分类
性能测试包括负载测试、强度测试和容量测试等。
负载测试(LoadTesting): 负载测试是指通过测试系统在资源超负荷情况下的表现,
来发现设计上的错误或验证系统的负载能力。在这种测试中,将使测试对象承担不
同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正
常运行的能力。负载测试的目标是确定并确保系统在超出最大预期工作量的情况下
仍能正常运行。此外,负载测试还要评估性能特征,如响应时长、事务处理速率和
其他与时间相关的性能指标。
是通过确定- 一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级
别的测试。例如测试- 一个Web 站点在大量的负荷下,何时系统的响应会退化或失败。
容量测试(VolumeTesting): 容量测试确定系统可处理同时在线的最大用户数。
1. 1.4 性能测试的常见指标
在实际工作中我们经常会对两种架构的软件进行测试: B/S和C/S,它们关往的指标有哪些
区别?
对于B/S 架构的软件,一般会关注如下Web服务器性能指标。
Avg Rps: 平均每秒钟的响应次数=总请求次数/秒数。
Avg time to last byte per terstion (mstes ): 平 均每秒业务脚本的迭 代次 数。
Sccssful Rounds: 成功的请求。
FailedRounds: 失败的请求。
Successful Hits: 成功的点击次数。
FailedHits: 夹败的点击次数。
HitsPerSecond: 每秒点击次数。
Successful Hits Per Second: 每利成功的点击次数。
FailedHits PerSecond: 每秒失败的点击次数。
AttemptedConnections: 尝试连接数。
Throughput: 吞吐率。
对于C/S架构的程序,由于软件后台通常为数据库,所以我们更注重数据库的测试指标。
UscrConections: 用户连接数,也就是数据库的连接数量。
Number ofDeadlocks: 数据库死锁。
Butter Cache Hit: 数据库Cache 的命中情况。
1. 1.4 性能测试的基本流程
1.明确性能测试需求
2.制定性能测试方案
性能测试方案应该详尽地描述如何进行性能测试,其中应该至少包括: 测试背景、测试目的、测试范围、测试进入条件、测试退出条件、测试指标要求、测试策略、测试时机、测试风险和测试资源。
其中测试范围、测试进入条件、测试退出条件、测试策略、测试风险、测试资源尤为重要。
下面是一个性能测试方案的简单例子:
1) 测试进入条件
(1) 不遗留L1的缺陷。
(2) 性能测试数据准备完毕。
(3) 系统功能测试已结束。
2) 测试退出条件
(1)各场景执行时间达到测试场景要求。
(2) 系统出现大量错误,暂停执行性能测试。
3) 测试指标要求
关键功能的响应时长和用户数满足需求指标
4)测试环境指标折算:
测试环境平均并发数=(最大在线人数x10%)/n 式中,n是生产环境和测试环境服务器配置折算比,例如n= 公倍数((生产Web服务器数/Web服务器数),(生产APP服务器数/测试APP服务器数))x(生产服务器内存/测试服务器内存),一般算下来n=4。
测试通过标准:
(I )平均响应时长满足测试指标要求。
(2) 90%响应时长满足测试指标要求。
(3) 2小时压力测试中脚本没有报错。
测试场景总的指导原则:
场景设置:
每1秒增加5 个用户,以x个并发为基础,逐渐递增至目标并发数,直到服务器吞吐率不再增加,响应时长随用户增加比例稳定同比增加。达到并发量之后再持续运行脚本x小时左右。场景中的并发用户匀速启动和停止。
3.编写性能测试案例

4.执行性能测试案例
5.分析性能测试结果
6.生成性能测试报告
一份性能测试报告,至少应该包含如下内容。
测试基本信息:
包含测试目的、报告目标读者、术语定义、参考资料。
测试环境描述: 包含服务器软/硬件环境、网络环境、测试工具、测试人员。
性能测试案例执行分析: 需要详细描述每个测试案例的执行情况,以及对应的测试结
果分析。
测试结果综合分析及建议: 对本次性能测试做综合分析,并给出测试结论和改进建议。
测试经验总结。
网友评论