性能测试类型包括负载测试、强度测试、容量测试等。
当负载逐渐增加时,系统各项性能指标的变化情况,系统是否能够承担
在系统资源特别低的情况下,系统能否运行正常,这个资源低的下限在哪
测出系统的界限和极限值
负载测试和压力测试的区别:
负载测试是确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。
压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。
在客户端指一批用户同时执行一个操作,并发数反映了软件系统的并发处理能力
客户端发出请求到得到响应的整个过程所经历的时间
响应时间= 客户端发起请求 + 网络传输时间 + 服务器处理时间
指单位时间内系统处理的客户请求的数量,直接体现软件系统的性能承载能力
指系统资源的使用程度,比如服务器的CPU利用率、内存利用率、磁盘利用率、网络带宽利用率、jvm利用率等
1.评估系统的能力
2.识别系统的弱点
3.系统调优
4.验证稳定性、可靠性
1.用户所体会到的系统响应时间是否够快?
2.应用服务器的资源使用情况是否合理?
3.数据库服务器的资源使用情况是否合理?
4.系统最多能支持多少用户访问?最大的业务处理量是多少?
5.系统是否支持7*24小时的业务访问?
6.系统是否能够实现扩展?更换哪些设备可以提高系统性能?
7.系统的架构设计是否合理?
8.数据库设计是否合理?
9.代码是否存在性能问题?
10.内存使用是否合理?
11.线程同步是否合理?
12.资源竞争是否合理?
13.如果存在性能瓶颈,应该如何调整?
测试需求分析
测试计划制定
测试脚本编写
测试脚本调试
测试场景设计
测试环境搭建
测试场景部署
测试场景执行
测试脚本调试
测试结果分析
性能瓶颈分析
测试报告评估
性能测试环境的搭建是性能测试的基础,那么环境最基础的是什么呢?当然是服务器软硬件资源。
性能测试过程中,需要真实模拟生产的服务器硬件配置,这就要求在性能测试环境中使用与生产环境一致的服务器,比如服务器是几核CPU,几个G的内存,磁盘读取策略等等。
性能测试过程中,也需要真实模拟生产的操作系统,比如操作系统是Centos的还是Linux其他的版本,是32位的还是64位的,另外操作系统的补丁最好跟生产环境一致等等。
按道理测试环境应该与生产环境保持一致,但往往测试环境不具备像生产环境一样大的环境,这种情况下,我们该如何以测试环境下的数据去评估生产性能的可能状况呢?
评估。通过测出系统的性能指标,再根据硬件之间的对比进行评估
查找瓶颈时按以下顺序,由易到难:
服务器硬件瓶颈 —— 网络瓶颈 —— 服务器操作系统瓶颈(参数配置) —— 中间件瓶颈(参数配置,数据库,Redis,web服务器等) —— 应用瓶颈(SQL语句,数据库设计,业务逻辑,算法等)
从哪几个角度对测试结果进行分析呢?
根据场景运行过程中的错误提示信息;
根据测试结果收集到的监控指标数据