聊聊测试环境

283 阅读2分钟

本文已参与掘金创作者训练营第三期「高产更文」赛道

测试环境在测试过程中无疑是最最重要的存在,可以说没有之一。如果没有测试环境一切测试活动都是无法进行的。下面就科普几类常见的测试环境,和在此环境基础上的测试活动。

1.线下测试环境

线下测试环境,应该是所有技术同学最最熟悉的测试环境了。用于线下测试。线下测试环境是最简单的,也是最复杂的;是最灵活的,也是挑战最大的。

  • 简单,只要你不怕麻烦,随便搞一台物理机/虚拟机,甚至是本机,再安上被测代码,一个最简单的线下测试环境就好了。
  • 复杂,现在随着微服务化和迭代节奏越来越快,已经非常少有上面的测试环境了,因为带来了新的问题:
    • 效率。每天发布N个版本,如何做到快速部署、验证,如何支持持续集成。此时,就需要线下环境具备非常以下几个特性。
      • 自动部署能力
      • 环境本身管理、调度能力
      • 与相关平台(比如:代码仓库、流水线、自动化等)打通的能力
    • 完整性。微服务化背景下通常一个系统涉及到几十甚至上百个微服务,每次迭代可能仅仅修改一个,如何在效率与资源上取得平衡。
    • 仿真度。现在系统越来越复杂,对标到具体的技术团队可能涉及多个团队。配置文件、数据都是个非常庞大的量级,如果配置不同,很可能会影响功能的验证。因此,复杂服务一个非常关键的环境诉求,即仿真度高。仿真度的真就是指线上生产环境。

2.预发布环境

预发布环境,是指完成线下测试,代码上到生产环境之前。预发布环境不是每个团队/公司都有的。主要目的是最大程度上拦截线上可能发生的问题。预发布环境的测试通常都是各种自动化的测试,这些验证的结果通常可以作为测试准出和发布的准入。

3.线上环境

3.1 线上压测环境

如果要用线上环境进行压测,是需要对代码进行一些改造,主要有以下两点:

  • 数据隔离
  • 流量隔离

3.2 线上生产环境

线上生产环境,主要用来做最后的线上主流程验证和产品验收。