51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 558|回复: 0
打印 上一主题 下一主题

[资料] 独立性能环境的重要性

[复制链接]
  • TA的每日心情
    开心
    2022-9-21 15:33
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2022-12-14 09:57:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
      独立性能环境的重要性
      有些同学担心,由于性能测试环境和线上环境配置不一致,会导致线下环境得到的性能结果无法发现足够多的性能问题,无法对线上环境的容量评估/稳定性保障带来足够的参考。其中担心的重点有如下几点:
      配置不一致,服务的容量无法很好的换算;
      配置不一致,导致压测时候无法模拟太高的并发;
      数据量不一致,导致有些性能问题上量后会暴露出来;
      其实这些担心不无道理,从技术的角度出发,只有尽可能的和生产保持一致,才能确保测试的结果对生产的稳定性有足够的参考价值,也是保障性能测试交付质量的一个重要因素。
      但,性能测试环境和生产保持一致,就真的能避免生产环境不出现性能问题吗?未必!
      环境配置高低是决定性能结果的一个影响因素,但不是全部因素。提前测试、提前暴露问题,修复的成本也就越低。
      我们常见的性能问题,比如JVM GC/慢SQL/死锁/for 循环/缓存未命中等,都可以在线下的性能环境提前发现。


      ​
      这些问题的发现和修复与服务器配置并没有直接联系,能够在线下提早用更低的成本解决是一种更优的选择。
      大家可以思考下,功能测试的测试环境作用,就能理解独立性能测试环境的作用了。
      我们搭建独立的功能测试环境,是为了在项目上线前进行充分的各种维度的验证,尽量保障线上的交付质量。
      但绝不是功能测试环境没问题,线上就不会有问题。测试环境我们可以通过功能测试验证/自动化测试回归等手段尽可能发现问题,生产环境同样需要进行回归测试/自动化测试去进行日常的巡检,做到早发现早修复。
      原则上bug只要没影响到用户,是不会造成直接的影响和损失的。对于线上的bug,需要的是更完善的监控告警机制和oncall修复流程,在造成更大影响之前修复。
      同理,性能测试环境的作用也是这样:在服务线上发布前,尽可能暴露一些存在的性能问题并进行修复验证。线上通过全链路压测/日常巡检/容灾演练/监控告警等手段来保障线上服务的稳定性。
      如果没有做线下性能测试的情况下直接在生产上测试,对性能中的异常测试、高可用测试可能无法充分执行;同时,修复性能 bug 也需要功能上的回归,这些都增加了过程管理的复杂度。因此,搭建独立性能测试环境的重要性主要有如下几点:
      提前进行性能验证,发现并修复问题;
      独立的性能测试环境可以避免其他测试动作的影响;
      提前进行各种手段的性能测试,降低线上出现问题的修复成本;


    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-4-28 07:20 , Processed in 0.065627 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表