2. 测试环境准备:硬件环境搭建与软件环境搭建

做场景搭建和数据录制,第一步就是把测试环境给支棱起来。我见过不少团队,代码写得挺漂亮,结果环境搭得稀碎,最后数据录出来全是废的。说白了,环境是地基,地基不稳,上面盖什么都白搭。

这一章,咱们就聊聊硬件和软件环境到底该怎么搭。我会把我在项目中踩过的坑、总结的经验都抖出来。

2.1 硬件环境搭建

硬件环境,说白了就是你的服务器、客户端、还有网络设备。这三样东西,缺一个都不行。

2.1.1 服务器选型与配置

服务器是整个测试系统的核心。我个人习惯,先把业务场景想清楚,再定配置。别一上来就买最贵的,浪费钱。

场景类型 推荐配置 我的经验
轻量级Web测试 4核CPU / 8G内存 / 100G SSD 够用,但别跑并发超过200
数据库压测 8核CPU / 32G内存 / 500G SSD 内存越大越好,我吃过亏
全链路仿真 16核CPU / 64G内存 / 1T NVMe 这个配置基本能扛住大部分场景
⚠️ 注意: 服务器千万别用机械硬盘做数据库。我曾经在一个项目里图便宜用了SATA盘,结果压测时IO直接打满,整个环境卡死。后来换了NVMe,问题才解决。

2.1.2 客户端设备

客户端这块,很多人容易忽略。你想想看,如果客户端性能太差,录出来的数据能准吗?

  • PC客户端: i5以上处理器,8G内存起步。我建议用16G,因为Chrome开几个标签页就吃掉好几个G了。
  • 移动端: 准备几台主流机型。iPhone和Android各备一台,别只用一个品牌测。
  • 虚拟客户端: 用Docker或者VMware搭几个轻量级客户端,方便批量操作。

2.1.3 网络设备

网络设备这块,我踩过最大的坑就是交换机带宽不够。有一次做压力测试,服务器端一切正常,但客户端就是卡。查了半天,发现是交换机端口被限速了。

💡 小技巧: 测试环境最好用千兆交换机。如果条件允许,上万兆。别省这点钱,省下来的时间成本远不止这些。

另外,路由器要支持VLAN隔离。为什么?因为测试环境和开发环境混在一起,容易互相干扰。我习惯把测试环境单独划一个VLAN,干净又安全。

2.2 软件环境搭建

硬件搞定了,接下来就是软件。操作系统、数据库、中间件,这三样是标配。

2.2.1 操作系统

我个人推荐用Linux,具体选哪个发行版?看团队习惯。

  • CentOS / Rocky Linux: 稳定,适合生产级测试。我最早用的就是CentOS 7,后来换成了Rocky Linux。
  • Ubuntu: 包管理方便,适合快速搭建。我现在的测试环境就是Ubuntu 22.04 LTS。
  • Windows Server: 如果被测系统是.NET生态,那没办法,得上Windows。

安装完系统后,有几个必做的操作:

# 更新系统
sudo apt update && sudo apt upgrade -y

# 安装常用工具
sudo apt install -y vim git curl wget net-tools

# 关闭防火墙(测试环境可以关,生产环境别学我)
sudo systemctl stop ufw
sudo systemctl disable ufw

# 设置时区
sudo timedatectl set-timezone Asia/Shanghai

核心要点: 操作系统装好后,一定要做快照。我曾经手滑删了个配置文件,折腾了两小时才恢复。有了快照,5分钟搞定。

2.2.2 数据库

数据库这块,看业务需求。我常用的就三种:

数据库 适用场景 安装方式
MySQL 8.0 关系型数据,OLTP场景 apt install mysql-server
PostgreSQL 15 复杂查询,GIS数据 apt install postgresql
Redis 7 缓存,会话管理 apt install redis-server

安装MySQL时,我建议用Docker。为什么?因为干净,卸载也方便。我曾经直接在宿主机上装MySQL,结果版本冲突搞得头大。

# 用Docker启动MySQL
docker run -d \
  --name mysql-test \
  -e MYSQL_ROOT_PASSWORD=test123 \
  -p 3306:3306 \
  mysql:8.0
⚠️ 注意: 测试环境的数据库密码别设太复杂,方便调试就行。但生产环境一定要强密码,这个不用我多说吧?

2.2.3 中间件

中间件这块,我常用的有Nginx、Kafka、RabbitMQ。每个都有它的用处。

  • Nginx: 做反向代理和负载均衡。我习惯用1.24版本,稳定。
  • Kafka: 处理消息队列,适合高吞吐场景。版本推荐3.5以上。
  • RabbitMQ: 适合需要可靠投递的场景。我有个项目就是用它做订单消息的。

安装Nginx很简单:

sudo apt install -y nginx
sudo systemctl start nginx
sudo systemctl enable nginx

装完后,记得修改默认配置。我一般会把worker_processes改成CPU核心数,再调大worker_connections。

2.3 知识体系结构图

下面这张图,是我自己总结的测试环境搭建知识体系。你看一眼,心里就有数了。

测试环境搭建知识体系 硬件环境 服务器 客户端 网络设备(交换机/路由器) 软件环境 操作系统 数据库 中间件(Nginx/Kafka/RabbitMQ) + 核心原则:先硬件后软件,先基础后应用 每完成一步,记得做快照或备份 ⚠️ 避坑指南 1. 别用机械硬盘做数据库,IO扛不住 2. 测试环境和开发环境一定要隔离 3. 装完系统立刻做快照,别偷懒

2.4 环境验证

环境搭完了,别急着用。先验证一下,确保所有组件都正常工作。

我一般会写一个简单的脚本,一键检查:

#!/bin/bash
# 环境验证脚本

echo "=== 检查操作系统 ==="
uname -a

echo "=== 检查数据库 ==="
mysql -u root -ptest123 -e "SELECT VERSION();"

echo "=== 检查Nginx ==="
curl -I http://localhost

echo "=== 检查Redis ==="
redis-cli ping

如果所有检查都通过,恭喜你,环境搭好了。如果哪个环节报错,别慌,看日志。我遇到过最奇葩的问题,是防火墙没关导致端口不通。查了半天才发现。

💡 我的习惯: 每次搭完环境,我都会把配置文件和安装步骤记录下来。下次再搭,直接复制粘贴,省时省力。

好了,环境准备这块就聊到这儿。记住一句话:环境搭得好,测试跑得顺。别嫌麻烦,前期多花点时间,后面能省下大把的调试时间。