zoukankan      html  css  js  c++  java
  • 常见测试类型

    测试

    • 类型

    测试类型

    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
    完整示例地址

    喜欢关注一下,不喜欢点评一下
  • 相关阅读:
    ceph 高可用部署
    ceph安装
    openstack 命令
    ceph
    go test 怎么做测试
    govendor
    wrap 缓存。。。
    python中if __name__ == '__main__': 的解析
    pythton 字典的使用,字典的方法
    python 基础 如何让程序接收参数,最简单用sys.argv[]来获取
  • 原文地址:https://www.cnblogs.com/chengmuyu/p/15265020.html
Copyright © 2011-2022 走看看