常见测试类型

测试

  • 类型

测试类型

smoke test:冒烟测试.在最小负载下,系统可以正常运行.
load test:负载测试.主要是根据每秒并发的用户或请求来评估系统的性能.
stress test,spike testing(压力测试,穿透测试):评估系统极限和在极端条件的稳定性.
soak test:浸泡测试.一段时间内系统的稳定性和性能.

  • 测试方式

windows:

./k6.exe run ./scripts/smoke-test-demo.js

linux:

k6 run ./scripts/smoke-test-demo.js

smoke test

冒烟测试是一个在最小负载下的普通负载测试.

价值:

验证测试脚本没有错误;    
验证系统在最小负载小没有抛异常;    

测试脚本示例:

smoke-test-demo

load testing

负载测试是一种性能测试,用于确定系统在正常条件和峰值条件下的行为.通常用于确保服务可以很好满足大量用户同一时间访问.

价值:

评估在典型和峰值负载下系统的当前性能;    
当进行系统(代码,基础设施)调整后,确保依旧满足性能标准.

load-test-demo

要求99%的请求在1.5秒内响应.thresholds 用于确保系统满足你设置的性能标准.

load test 图

整个负载流程是逐步增加系统负载,持续一段时间后,负载又逐渐降低的过程.

常见的负载性能标准:

    99%请求在5秒内完成;    
    95%请求应该在1秒内完成;    
    99%用户可以第一次就成功登陆

压力测试

压力测试是一组不同类型的负载测试.用于评估系统在高负载情况下的可用性和稳定性.

价值:

确认极端条件系统的情况;    
确认系统最大的容量;    
确认系统的临界点和失效模型;    
确认压力测试后,系统能否自恢复;    

压力测试是系统临界点评估的测试,核心是判定系统的临界点而不是摧毁系统.

stress-test-demo

穿透测试

穿透测试是压力测试的一个变种.不同的是,压力测试是逐步的进行压力的增减,而穿透测试讲究的是迅速的进行极端压力请求.

价值:

确认迅速的极端访问下的系统行为;    
确认迅速的极端访问后系统能否自恢复;    

穿透测试是对大型突发情形的预演.系统在这种情形的反应可以分为四种:

优秀: 在突发请求下,系统运行正常.响应时间在高低访问量下相似;    
好: 响应时间变慢.但是系统未发生错误.所有请求都被处理;    
一般: 突发请求下有异常发送.但是请求正常后,服务自恢复;    
差: 系统崩溃,无法自恢复;

stick-test-demo

浸泡测试

浸泡测试:关注系统长时间运行的可靠性.用于揭示系统长时间处理压力下而产生的性能和可靠性问题.

可靠性问题典型的有:bugs,内存泄漏,存储配额不足,配置不正确,基础设施故障等
性能问题典型的有:与数据库交互不协调,内存泄漏,资源泄漏,大数据量

浸泡测试可以在几小时内模拟几天的访问量;

价值:

验证系统不存在导致中断或运行一段时候重启的bug或内存泄漏问题;    
验证服务重启后不丢失请求;    
发现偶发的竞争条件相关的bugs;    
确认数据库不会耗尽分配的存储空间后停止;    
确认日志不会耗尽分配的磁盘空间;    
确认你依赖的其他服务不会大访问量下不会挂掉;    

soak-test-demo

参考资料

k6 test-types
完整示例地址

posted @ 2021-09-13 21:43  橙木鱼  阅读(654)  评论(0编辑  收藏  举报