2. 测试环境准备:硬件环境搭建与软件环境搭建
做场景搭建和数据录制,第一步就是把测试环境给支棱起来。我见过不少团队,代码写得挺漂亮,结果环境搭得稀碎,最后数据录出来全是废的。说白了,环境是地基,地基不稳,上面盖什么都白搭。
这一章,咱们就聊聊硬件和软件环境到底该怎么搭。我会把我在项目中踩过的坑、总结的经验都抖出来。
2.1 硬件环境搭建
硬件环境,说白了就是你的服务器、客户端、还有网络设备。这三样东西,缺一个都不行。
2.1.1 服务器选型与配置
服务器是整个测试系统的核心。我个人习惯,先把业务场景想清楚,再定配置。别一上来就买最贵的,浪费钱。
| 场景类型 | 推荐配置 | 我的经验 |
|---|---|---|
| 轻量级Web测试 | 4核CPU / 8G内存 / 100G SSD | 够用,但别跑并发超过200 |
| 数据库压测 | 8核CPU / 32G内存 / 500G SSD | 内存越大越好,我吃过亏 |
| 全链路仿真 | 16核CPU / 64G内存 / 1T 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 知识体系结构图
下面这张图,是我自己总结的测试环境搭建知识体系。你看一眼,心里就有数了。
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
如果所有检查都通过,恭喜你,环境搭好了。如果哪个环节报错,别慌,看日志。我遇到过最奇葩的问题,是防火墙没关导致端口不通。查了半天才发现。
好了,环境准备这块就聊到这儿。记住一句话:环境搭得好,测试跑得顺。别嫌麻烦,前期多花点时间,后面能省下大把的调试时间。