1-测试类型
基准测试 (Performance Benchmark Test)
基准测试是每次对外发布产品版本前必须要完成的测试类型。它会基于固定的环境和架构(固定的服务器、稳定的网络环境、固定的集群、固定的系统配置、固定的数据库等),通过执行固定的性能测试场景得到系统的性能测试报告,然后与上一版本发布时的基准测试结果进行对比,如果发现指标有“恶化”的趋势,就需要进一步排查问题
目的:
1、获取系统性能基准作为参照物(性能问题发生后的测试很难了解系统性能基准)
2、识别系统或环境的配置变更对性能带来的影响
3、给系统优化前后的性能提升/下降提供参考标准
4、观察系统的整体性能趋势与性能拐点,识别系统性能风险
典型的“恶化”趋势,主要表现在以下几个方面
同一事务的响应时间变慢了。比如,上一版本中,用户登录的响应时间是 2 s,
但是在最新的被测版本中这个响应时间变成了 4 s;
系统资源的占用率变高了。比如,上一版本中,平均 CPU 占用率是 15%,
但是在最新的被测版本中平均 CPU 占用率变成了 30%;
等等。。。。
基准自动化测试与一般性能测试的主要区别
1) 测试周期:基准自动化每天定时自动化执行,性能测试需要事件驱动执行。
2) 测试脚本:基准自动化的性能测试脚本仅仅包含所关注业务的HTTP请求,不做用户行为模拟;性能测试的测试脚本包含业务的上下文请求,并进行用户行为的模拟。
3) 测试策略:基准自动化策略固定,几乎不做修改;性能测试需要根据不断变化的性能需求进行修改。
4) 脚本维护:基准自动化的测试脚本仅在访问链接发生变更时维护,或者POST参数发生变更时维护,GET请求几乎不需要维护;性能测试脚本在每轮测试中一般都需要重新开发。
5) 结果用途:基准自动化结果数据用于系统性能变动的衡量指标;性能测试结果脚本可用于感知用户性能体验、预知系统性能风险。
负载测试
1、持续稳定地增加系统的负载,测试系统性能的变化。直到性能指标达到阈值,找到系统瓶颈和性能拐点
2、测试系统所能承受的最大负载量的测试
3、找出内存管理错误,内存泄漏,缓冲区溢出等问题
4、找到处理极限,为调优提供数据
5、负载测试是通过改变系统负载方式、增加负载等来发现系统中所存在的性能问题。它是一种测试方法,可以被压力测试所采用。
例如
1、最多允许200个并发用户访问,测试最大响应时间,最大吞吐量
2、21个小时内处理1000笔业务,测试最大并发
3、响应时间不超过10s,测试最大负载
4、4、cpu利用率低于60%,测试最大并发
压力测试
概述
1、测试系统的资源在达到饱和状态下,应用的处理会话能力
2、持续稳定的增加系统负载,测试系统性能的变化,并最终确定在什么负载下系统性能处于失效状态
3、它的目的是确保系统失败并正常恢复,目的是发现在什么条件下系统的性能变得不可接受,发现应用程序性能下降的拐点
4、有效地发现系统稳定性的隐患和系统在负载峰值的条件下功能隐患等
5、关注大业务量情况下长时间运行系统性能的变化(例如是否反应变慢、是否会内存泄漏导致系统逐渐崩溃、是否能恢复)
目标
1、测试在一定的负载下系统长时间运行的稳定性,但是这个负载不一定是应用系统本身造成的。
比如我们经常利用脚本或工具事先吃掉服务器的一部分cpu、内存或带宽等,
2、创造出一定的负载环境并测试被测应用系统在此环境下的事物处理能力,响应时间等等
稳定性测试
稳定性测试,又称可靠性测试。
主要是通过长时间(7*24 小时)模拟被测系统的测试负载,来观察系统在长期运行过程中是否有潜在的问题。通过对系统指标的监控,稳定性测试可以发现诸如内存泄漏、资源非法占用等问题
破坏性压力测试
不断加压,直至系统崩溃。来得出系统的最大承受能力。通过破坏性不断加压的手段,能快速造成系统的崩溃或让问题明显的暴露出来
稳定性测试的场景设计和基准测试不同
一般是采用“阶梯增压”的方法,逐渐增加测试负载,在高负载情况下持续运行一段时间,然后再逐渐降低负载,这样就构成了一个梯级的测试场景。
稳定性测试通过的标志
1、系统资源的所有监控指标稳定
2、事务的响应时间不稳定
3、事务的错误率不超过 1%
并发测试
并发测试,是通过多线程的方式验证在高并发情况下单一业务功能的正确性以及性能的测试手段。并发测试一般使用思考时间为零的虚拟用户脚本来发起具有“集合点”的测试。
并发测试,往往被当作功能测试的补充,主要用于发现诸如多线程、资源竞争、资源死锁之类的错误。要执行并发测试,需要加入“集合点”
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2023-09-03 mvn test 执行testng测试用例
2022-09-03 TCP网络编程
2022-09-03 网络协议