1软件性能测试实践软件性能测试实践软件性能测试实践软件性能测试实践陈陈陈陈雷雷雷雷Jackeichan@Gmail.com内容提要内容提要内容提要内容提要理解理解理解理解“性能性能性能性能”与与与与“性能测试性能测试性能测试性能测试”性能测试过程性能测试过程性能测试过程性能测试过程与与与与最佳实践最佳实践最佳实践最佳实践相关主题讨论相关主题讨论相关主题讨论相关主题讨论3内容提要内容提要内容提要内容提要理解理解理解理解”性能性能性能性能”与与与与”性能测试性能测试性能测试性能测试”什么是性能测试什么是性能测试什么是性能测试什么是性能测试如何评价一个系统的性能如何评价一个系统的性能如何评价一个系统的性能如何评价一个系统的性能理发店模型理发店模型理发店模型理发店模型性能测试的过程性能测试的过程性能测试的过程性能测试的过程与与与与实践实践实践实践相关主题讨论相关主题讨论相关主题讨论相关主题讨论4什么是性能测试什么是性能测试什么是性能测试什么是性能测试观察系统在一个给定的环境和场景中观察系统在一个给定的环境和场景中观察系统在一个给定的环境和场景中观察系统在一个给定的环境和场景中的性能表现是否与预期目标一致,评的性能表现是否与预期目标一致,评的性能表现是否与预期目标一致,评的性能表现是否与预期目标一致,评判系统是否存在性能缺陷,并根据测判系统是否存在性能缺陷,并根据测判系统是否存在性能缺陷,并根据测判系统是否存在性能缺陷,并根据测试结果识别性能瓶颈,改善系统性能试结果识别性能瓶颈,改善系统性能试结果识别性能瓶颈,改善系统性能试结果识别性能瓶颈,改善系统性能的完整的过程的完整的过程的完整的过程的完整的过程5功能测试功能测试功能测试功能测试vs.性能测试性能测试性能测试性能测试系统的性能需求系统的性能需求系统的性能需求系统的性能需求系统的功能需求系统的功能需求系统的功能需求系统的功能需求测试依据测试依据测试依据测试依据要求对业务和用户场景非要求对业务和用户场景非要求对业务和用户场景非要求对业务和用户场景非常熟悉常熟悉常熟悉常熟悉要求对业务和用户场景非要求对业务和用户场景非要求对业务和用户场景非要求对业务和用户场景非常熟悉常熟悉常熟悉常熟悉行业背景行业背景行业背景行业背景分析系统需求-分析系统需求-分析系统需求-分析系统需求-设计性能设计性能设计性能设计性能测试用例模拟用户场景-测试用例模拟用户场景-测试用例模拟用户场景-测试用例模拟用户场景-执行测试-执行测试-执行测试-执行测试-提交缺陷-提交缺陷-提交缺陷-提交缺陷-验证缺陷是否解决验证缺陷是否解决验证缺陷是否解决验证缺陷是否解决分析系统需求-分析系统需求-分析系统需求-分析系统需求-设计测试设计测试设计测试设计测试用例模拟用户场景-用例模拟用户场景-用例模拟用户场景-用例模拟用户场景-执行执行执行执行测试-测试-测试-测试-提交缺陷-提交缺陷-提交缺陷-提交缺陷-验证验证验证验证缺陷是否解决缺陷是否解决缺陷是否解决缺陷是否解决测试过程测试过程测试过程测试过程1.验证系统是否满足需求验证系统是否满足需求验证系统是否满足需求验证系统是否满足需求2.查找系统中可能存在的性查找系统中可能存在的性查找系统中可能存在的性查找系统中可能存在的性能缺陷或瓶颈能缺陷或瓶颈能缺陷或瓶颈能缺陷或瓶颈1.验证系统是否满足需求验证系统是否满足需求验证系统是否满足需求验证系统是否满足需求2.查找系统中可能存在的功查找系统中可能存在的功查找系统中可能存在的功查找系统中可能存在的功能缺陷能缺陷能缺陷能缺陷测试目的测试目的测试目的测试目的性能测试性能测试性能测试性能测试功能测试功能测试功能测试功能测试6内容提要内容提要内容提要内容提要理解理解理解理解”性能性能性能性能”与与与与”性能测试性能测试性能测试性能测试”什么是性能测试什么是性能测试什么是性能测试什么是性能测试如何评价一个系统的性能如何评价一个系统的性能如何评价一个系统的性能如何评价一个系统的性能理发店模型理发店模型理发店模型理发店模型性能测试的过程性能测试的过程性能测试的过程性能测试的过程与与与与实践实践实践实践相关主题讨论相关主题讨论相关主题讨论相关主题讨论7如何评价系统的性能如何评价系统的性能如何评价系统的性能如何评价系统的性能用户用户用户用户(end-user)的视角的视角的视角的视角响应时间响应时间响应时间响应时间(ResponseTime)运营商运营商运营商运营商(customer)和开发商的视角和开发商的视角和开发商的视角和开发商的视角响应时间响应时间响应时间响应时间(ResponseTime)并发用户数并发用户数并发用户数并发用户数(TheNumberofConcurrentUsers)吞吐量吞吐量吞吐量吞吐量(Throughput)–每秒交易数每秒交易数每秒交易数每秒交易数(TransactionperSecond)资源利用率资源利用率资源利用率资源利用率(Hardware/SoftwareResourceUtilization)可靠性或稳定性可靠性或稳定性可靠性或稳定性可靠性或稳定性(ReliabilityorStability)可伸缩性可伸缩性可伸缩性可伸缩性(Scalability)可恢复性可恢复性可恢复性可恢复性(Recoverability)8内容提要内容提要内容提要内容提要理解理解理解理解”性能性能性能性能”与与与与”性能测试性能测试性能测试性能测试”什么是性能测试什么是性能测试什么是性能测试什么是性能测试如何评价一个系统的性能如何评价一个系统的性能如何评价一个系统的性能如何评价一个系统的性能理发店模型理发店模型理发店模型理发店模型性能测试的过程性能测试的过程性能测试的过程性能测试的过程与与与与实践实践实践实践相关主题讨论相关主题讨论相关主题讨论相关主题讨论9理发店模型的理发店模型的理发店模型的理发店模型的3个假设个假设个假设个假设理发店中一共有理发店中一共有理发店中一共有理发店中一共有3名理发师名理发师名理发师名理发师每位理发师剪一个发的时间每位理发师剪一个发的时间每位理发师剪一个发的时间每位理发师剪一个发的时间都是都是都是都是1小时小时小时小时我们顾客们都是很有时间观我们顾客们都是很有时间观我们顾客们都是很有时间观我们顾客们都是很有时间观念的人而且非常挑剔,他们念的人而且非常挑剔,他们念的人而且非常挑剔,他们念的人而且非常挑剔,他们对于每次光顾理发店时所能对于每次光顾理发店时所能对于每次光顾理发店时所能对于每次光顾理发店时所能容忍的等待时间容忍的等待时间容忍的等待时间容忍的等待时间+剪发时间剪发时间剪发时间剪发时间是是是是3小时,而且等待时间越小时,而且等待时间越小时,而且等待时间越小时,而且等待时间越长,顾客的满意度越低。如长,顾客的满意度越低。如长,顾客的满意度越低。如长,顾客的满意度越低。如果果果果3个小时还不能剪完头个小时还不能剪完头个小时还不能剪完头个小时还不能剪完头发,我们的顾客会立马生气发,我们的顾客会立马生气发,我们的顾客会立马生气发,我们的顾客会立马生气的走人的走人的走人的走人10理发店内场景的模拟理发店内场景的模拟理发店内场景的模拟理发店内场景的模拟AABABCABCDABCDEFGHIABCDEFGHIJ没有顾客需要等待没有顾客需要等待没有顾客需要等待没有顾客需要等待没有理发师空闲没有理发师空闲没有理发师空闲没有理发师空闲3顾客不需要等待顾客不需要等待顾客不需要等待顾客不需要等待有一名理发师空闲有一名理发师空闲有一名理发师空闲有一名理发师空闲2顾客不需要等待顾客不需要等待顾客不需要等待顾客不需要等待有两名理发师空闲有两名理发师空闲有两名理发师空闲有两名理发师空闲1必然有一位顾客最必然有一位顾客最必然有一位顾客最必然有一位顾客最终会选择离开终会选择离开终会选择离开终会选择离开没有理发师空闲没有理发师空闲没有理发师空闲没有理发师空闲10接近顾客所能忍受接近顾客所能忍受接近顾客所能忍受接近顾客所能忍受的最大限度,顾客的最大限度,顾客的最大限度,顾客的最大限度,顾客满意度接近最低满意度接近最低满意度接近最低满意度接近最低没有理发师空闲没有理发师空闲没有理发师空闲没有理发师空闲9有有有有1名顾客需要等名顾客需要等名顾客需要等名顾客需要等待待待待没有理发师空闲没有理发师空闲没有理发师空闲没有理发师空闲4顾客状态顾客状态顾客状态顾客状态理发师状态理发师状态理发师状态理发师状态顾客顾客顾客顾客数数数数如果持续如果持续如果持续如果持续每个小时每个小时每个小时每个小时3个个个个顾客?顾客?顾客?顾客?11“理发店理发店理发店理发店”的性能模型的性能模型的性能模型的性能模型最佳并发用户数最佳并发用户数最佳并发用户数最佳并发用户数最大并发用户数最大并发用户数最大并发用户数最大并发用户数并发用户数并发用户数并发用户数并发用户数(系统负载系统负载系统负载系统负载)12一个实际项目的测试数据一个实际项目的测试数据一个实际项目的测试数据一个实际项目的测试数据最佳并发最佳并发最佳并发最佳并发用户数用户数用户数用户数最大并发最大并发最大并发最大并发用户数用户数用户数用户数13最佳最佳最佳最佳/最大并发用户数的意义最大并发用户数的意义最大并发用户数的意义最大并发用户数的意义最佳并发用户数最佳并发用户数最佳并发用户数最佳并发用户数应当大于系统的平均负载应当大于系统的平均负载应当大于系统的平均负载应当大于系统的平均负载当并发用户数持续大于该值,可能会出现部分用户当并发用户数持续大于该值,可能会出现部分用户当并发用户数持续大于该值,可能会出现部分用户当并发用户数持续大于该值,可能会出现部分用户请求失败请求失败请求失败请求失败最大并发用户数最大并发用户数最大并发用户数最大并发用户数应当大于系统的峰值负载应当大于系统的峰值负载应当大于系统的峰值负载应当大于系统的峰值负载当并发用户数大于该值,则必然会有用户请求失败当并发用户数大于该值,则必然会有用户请求失败当并发用户数大于该值,则必然会有用户请求失败当并发用户数大于该值,则必然会有用户请求失败14小结小结小结小结常用的评价系统性能的指标常用的评价系统性能的指标常用的评价系统性能的指标常用的评价系统性能的指标响应时间响应时间响应时间响应时间(ResponseTime)并发用户数并发用户数并发用户数并发用户数(TheNumberofConcurrentUsers)吞吐量吞吐量吞吐量吞吐量(Throughput)–每秒交易数每秒交易数每秒交易数每秒交易数(TransactionperSecond)资源利用率资源利用率资源利用率资源利用率(Hardware/SoftwareResourceUtilization)最佳并发用户数最佳并发用户数最佳并发用户数最佳并发用户数(TheOptimumNumberofConcurrentUsers)最大并发用户数最大并发用户数最大并发用户数最大并发用户数(TheMaximumNumberofConcurrentUsers)性能指标之间的关系性能指标之间的关系性能指标之间的关系性能指标之间的关系“此消彼长此消彼长此消彼长此消彼长”,“此长彼消此长彼消此长彼消此长彼消”15什么是性能测试什么是性能测试什么是性能测试什么是性能测试观察系统在一个给定的环境和场景中的观察系统在一个给定的环境和场景中的观察系统在一个给定的环境和场景中的观察系统在一个给定的环境和场景中的性能表现是否与预期目标一致,评判系性能表现是否与预期目标一致,评判系性能表现是否与预期目标一致,评判系性能表现是否与预期目标一致,评判系统是否存在性能缺陷,并根据测试结果统是否存在性能缺陷,并根据测试结果统是否存在性能缺陷,并根据测试结果统是否存在性能缺陷,并根据测试结果识别性能瓶颈,改善系统性能的整个过识别性能瓶颈,改善系统性能的整个过识别性能瓶颈,改善系统性能的整个过识别性能瓶颈