性能测试简介
软件系统的性能包括很多方面,有执行效率,资源占用,系统稳定性,安全性,兼容性,可靠性,可扩展性等。这些都是可以衡量一个软件系统性能好坏的指标。而性能测试是指通过自动化测试工具去模拟多种正常,峰值及异常负载条件来对系统的各项性能指标进行测试。与功能测试相比,性能测试有更高的技术复杂性。
性能测试方法和目的
通过模拟生产运行的业务压力量和使用场景组合,测试系统的性能是否满足生产性能要求。验证系统所具有的能力。
性能测试分类
1.负载测试(Load test)
通过在被测试系统上不断施加压力,直到系统性能指标达到极限。找到系统处理能力的极限。
2.压力测试
测试系统在一定饱和状态下,系统能够快速处理的会话能力,以及系统是否会出现错误。检查系统处于压力下系统应用的表现。
3.并发测试
通过模拟多用户并发访问,测试多用户并发访问同一个系统应用模块或者数据记录时是否存在死锁或者其他性能问题。可以发现系统中可能隐藏的的并发访问时会出现的问题,比如订单号重复,数据错误等等。
4.配置测试
通过对被测试系统的软硬件环境的调整,了解各种不同对系统的性能影响的程度,从而找到系统各项资源的最优配置。可以了解各种不同因素对系统性能影响的程度。
5.可靠性测试(稳定性测试)
给系统加载一定业务压力的情况下,是系统运行一段时间,以此来检测系统运行是否稳定。可以验证系统是否支持长期稳定的运行。
上面各种测试分类也是密切相关的,各种测试方法之间也有一定的包含。
性能指标
1.平均响应时间(TTLB,Time to laster byte):平均每个请求从发送到接受响应的时间。
2.合理的平均响应时间
2/5/10原则
解释:
在2秒内客户能得倒响应被用户认为是“非常有吸引力的”用户体验。在5秒只内响应客户被认为是“不错的”用户体验,在10秒之内响应给客户被认为是“糟糕”的用户体验。
如果超过10秒还没得倒响应那么被认为请求是失败的。
系统资源类的性能指标
1.CPU
CPU的占用率
2.内存
内存的占用率,交换换页数等。
3.I/O
读写请求数,读写量等。跟数据库相关。
4.带宽
进出站等带宽占用率。用户的访问量会增加带宽的使用,带宽合理的使用率会降低企业的成本。
为什么要进行性能测试
1.能够有效评估系统的性能指标,用于系统的性能评估。
2.能够识别系统的性能瓶颈,协助性能调优。
3.能够指导突发流量承载方案的制定,指导资源的规划。
4.能够用于系统运维成本的预算,根据参照进行资源的配置。
常见性能测试工具
ab , wrk ,http_load , Web Bench ,Siege,Apache JMeter,Loadrunner
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/7138.html