软件测试必备:Redis、禅道、MySQL三件套安装全攻略
作为软件测试人员,你大概率遇到过这样的场景:新项目刚接手,Leader 让你去禅道建项目、录缺陷;被测系统的接口里全是 Redis 缓存逻辑;跑完冒烟测试,还得用 SQL 去数据库里核对落库数据。结果到了工位上一看,本机没有 MySQL,禅道打不开,Redis 更没人给你装。你只能一边等环境,一边干瞪眼。
现实一点讲:软件测试人员能不能独立搭好本机或测试服务器的基础环境,很大程度上决定了你做测试工作的效率。这篇文章不写高深理论,就围绕三件套——Redis、禅道、MySQL,把手把手安装的完整流程拆给你看。你可以把它当作视频教程的文字版,安装过程中需要对照命令、配置和排查思路时,直接翻到对应章节。
先给一个明确判断:对软件测试人员来说,安装这三件套不是运维的杂活,而是你管理缺陷、验证数据、复现缓存类 Bug 的前提能力。读完本文,你能独立完成三件套的环境准备、安装、启动和联通验证,并能在环境出错时按一套排查思路快速定位问题。
文章按"为什么装 - 装什么 - 怎么装 - 怎么验证 - 出问题怎么办"的顺序展开,重点面向 Windows 本机环境和 Linux 测试服务器两种场景。
1. 软件测试人员为什么要装 Redis、禅道、MySQL
先看一个具体的项目场景。假设你刚入职一家做 Web 系统的公司,被测系统典型结构是 Nginx + PHP/Java + MySQL + Redis。日常测试中你一定会碰到这些事:
- 提交 Bug 要在禅道上记录缺陷、关联测试单,项目经理也要在上面看进度;
- 测试用户登录功能时发现验证码发送有延迟,怀疑是 Redis 中验证码 key 没有正确过期;
- 用接口测试工具跑完下单接口,要去 MySQL 的订单表里确认落库数据是否准确。
如果没有一套可用的测试环境,你连复现都做不了。很多测试新人以为"装环境是开发或运维的事",但实际工作中,测试环境经常需要测试人员自己维护。尤其是接口测试、性能测试、自动化测试开展之后,免不了要自己启动服务、清缓存、造数据。
所以这篇文章真正要解决的是:让一个软件测试工程师从零搭起一套可用的测试基础环境。安装过程中你会理解 MySQL 的账号权限、Redis 的密码保护、禅道的初始化逻辑,这些知识在后续写 SQL 脚本、做缓存测试、管理缺陷时都会用到。
结论放在前面:这套环境不是"装上就行",你要装到"能自己打通"的程度,才真正对测试工作有帮助。
2. Redis、禅道、MySQL 基础概念与协作关系
在安装之前,先花两分钟搞清楚这三个东西各自是什么。它们的定位完全不同,安装方式也因此不同。
| 组件 | 类型 | 在测试工作中扮演的角色 |
|---|---|---|
| MySQL | 关系型数据库 | 存储被测系统业务数据;测试时核对落库结果、构造测试数据 |
| Redis | 内存型键值数据库 | 缓存、会话、分布式锁、消息队列;测试缓存逻辑和并发场景 |
| 禅道 | 项目管理与测试协作平台 | 管理测试用例、测试单、缺陷和项目进度 |
2.1 MySQL 是什么
MySQL 是开源的关系型数据库管理系统,绝大多数 Web 项目都会用它保存用户、订单、商品这类结构化数据。它通过 SQL 语句读写数据,默认端口是 3306。对于软件测试人员来说,MySQL 的意义更多在于"验证":接口返回的结果和数据库里存的到底一不一致。这也是软件测试面试里经常出现 SQL 查询题的原因。
2.2 Redis 是什么
Redis 把数据放在内存中,读写速度远快于磁盘型数据库,所以通常用来做缓存、会话共享、抢购扣库存的原子操作等。测试人员接触 Redis 的高频场景有三种:
- 测试登录验证码、token 过期时间:一般在 Redis 里都能查到对应 key;
- 测试缓存穿透、击穿、雪崩:需要理解缓存过期策略;
- 测试分布式锁和接口幂等:经常要连接 Redis 确认锁的加锁和解锁状态。
这里要提前说明一个坑:Redis 官方对 Windows 的维护并不积极,这也是安装时最容易被卡住的地方。后面第 5 节会专门讲。
2.3 禅道是什么
禅道是国内使用率很高的开源项目管理软件,覆盖产品、项目、测试、缺陷、文档等流程。测试人员最常用的是测试视图:维护用例库、创建测试单、提交缺陷、关联需求。很多软件测试岗位的招聘要求里直接写着"熟悉禅道或同类缺陷管理工具"。
2.4 三者如何协作
在一个完整测试环境里,最常见的协作关系是:被测系统连接 MySQL 存业务数据,连接 Redis 做缓存和会话;禅道作为独立的测试协作系统,也有自己的数据库,通常是 MySQL。
也就是说,你安装 MySQL 时,既要为被测系统准备数据库,也可能要为禅道准备数据库。因此在安装时,建议把 MySQL 的账号、端口、字符集都规划清楚,而不是装完就忘。
这里有一个常见误区:把禅道当成"网页工具",点开就能用。事实上,很多禅道安装包已经内置了 MySQL、PHP、Apache,并不需要额外配置;但如果你要共用已有的 MySQL,就得理解禅道的数据库配置在哪里。后面会展开说明。
3. 环境准备与安装策略
安装前先想清楚策略。完整的本机测试环境可以有三种常见方案。
| 方案 | 适合场景 | 优点 | 缺点 |
|---|---|---|---|
| Windows 本机安装 | 新手、临时验证 | 图形化、步骤直观 | 依赖包多,Redis 官方无 Windows 版 |
| Linux 服务器安装 | 真实测试环境、接口自动化跑环境 | 更接近生产 | 需熟悉命令行 |
| Docker 容器化 | 团队统一环境、快速复用 | 环境隔离、删除重建方便 | 需理解 Docker 基础 |
本文以 Windows 和 Linux 两个方向为主,Docker 会在最佳实践一节作为进阶方案给出。
3.1 硬件与系统准备
安装前先确认几项基础条件。
| 检查项 | 建议 |
|---|---|
| 操作系统 | Windows 10/11 或 Ubuntu 20.04/22.04 均可用 |
| 内存 | 建议 8 GB 以上,三件套同时运行时更稳 |
| 磁盘 | 预留 10 GB 以上空间 |
| 端口 | 3306(MySQL)、6379(Redis)、80 或 8080(禅道 Web) |
| 权限 | Windows 使用管理员权限安装;Linux 使用普通用户加 sudo |
3.2 端口检查
端口被占用是安装失败的最高频原因。安装前先用命令检查。
Windows PowerShell:
netstat -ano | findstr "3306" netstat -ano | findstr "6379" netstat -ano | findstr "80"Linux 终端:
ss -lntp | grep -E '3306|6379|80'如果端口已被占用,要么停掉占用进程,要么给对应组件改端口。测试环境下更推荐把端口规划好,避免启动后发现冲突再返工。
4. MySQL 安装与基础配置
MySQL 是这份安装里最"正规"的一个,因为官方提供了很成熟的安装器。无论 Windows 还是 Linux,安装原则一致:先装服务,再设密码,最后验证连接。
4.1 Windows 下安装 MySQL
推荐使用 MySQL Installer 社区版。去 MySQL 官网下载页选择 MySQL Community Server 的 Installer 版本。安装过程中的关键步骤:
选择安装类型时,如果只是测试环境,选择 Server only 就够了;如果后续想看图形化数据,可以额外勾选 MySQL Workbench。
安装到 Configure 阶段会要求设置 root 密码。这里注意两点:
- 测试环境密码也不要留空,建议设置成能记住的强密码;
- 默认端口是 3306,如果本机 3306 已被占用,就在这一步改掉。
设置完成后,点击 Execute 让安装器初始化服务,最后确认服务已启动。
装完后用命令行验证:
mysql -u root -p输入密码后,出现mysql>提示符就说明服务正常。
4.2 Linux 下安装 MySQL
以 Ubuntu 为例:
sudo apt update sudo apt install -y mysql-server sudo systemctl start mysql sudo systemctl enable mysqlCentOS/RHEL 系列使用:
sudo yum install -y mysql-server sudo systemctl start mysqld sudo systemctl enable mysqldCentOS 上安装后初始 root 密码会写入日志,需要先找出来:
sudo grep 'temporary password' /var/log/mysqld.log然后用临时密码登录,再手动修改密码。
4.3 初始化安全设置
Linux 下推荐执行安全初始化脚本:
sudo mysql_secure_installation按提示设置密码强度、移除匿名用户、禁止 root 远程登录。对测试环境来说,禁止 root 远程登录是好习惯。后面如果被测系统需要远程连接 MySQL,建议单独创建专用账号,而不是暴露 root。
4.4 字符集建议
测试环境中的 MySQL 建议统一使用 utf8mb4 字符集,避免中文乱码。Windows 安装器在配置阶段可以选择字符集;Linux 下可以在配置文件/etc/mysql/mysql.conf.d/mysqld.cnf中增加:
[mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci改完重启:
sudo systemctl restart mysql5. Redis 安装与基础配置
Redis 是三个组件里安装坑最多的,原因就是官方对 Windows 支持不友好。测试人员经常搜到一堆"Redis Windows 安装包",但说不清来源。先把这个问题说透。
5.1 Windows 下安装 Redis 的几种方式
严格说,Redis 官方不提供 Windows 安装包。生产环境里一般用 Linux 部署 Redis。Windows 本机开发或测试场景,常见方案有三种:
- WSL(Windows Subsystem for Linux):在 WSL 里按 Linux 方式安装 Redis,最接近真实环境;
- Docker Desktop:用容器运行 Redis,环境干净,删除也干净;
- 第三方维护的 Windows 移植版:例如微软早期维护的 Redis 移植版本以及社区维护版本,可以下载 zip 解压运行。
从软件测试工程师的使用习惯看,如果只是本机临时验证,用第三方移植版或 Docker 最方便;如果是为了配合真实项目联调,更推荐 WSL 或 Linux 服务器。
使用第三方移植版时,解压后通常有redis-server.exe和redis-cli.exe,用命令行启动:
redis-server.exe redis.windows.conf看到 "Ready to accept connections" 就说明启动成功。
如果需要注册成 Windows 服务,可以执行:
redis-server --service-install redis.windows.conf --service-name Redis redis-server --service-start --service-name Redis5.2 Linux 下安装 Redis
Ubuntu/Debian:
sudo apt update sudo apt install -y redis-server sudo systemctl start redis-server sudo systemctl enable redis-serverCentOS/RHEL 可以通过 EPEL 源安装,也可以用编译方式安装。编译方式示例如下:
sudo yum install -y gcc make wget https://download.redis.io/releases/redis-7.0.15.tar.gz tar -zxvf redis-7.0.15.tar.gz cd redis-7.0.15 make sudo make install注意上面的版本号只是示例,请以 Redis 官网提供的最新稳定版本为准。编译安装适合对过程有一定了解后再尝试。测试环境里用包管理器安装更省事。
5.3 验证 Redis 服务
Linux 下用 redis-cli 验证:
redis-cli ping如果返回PONG,说明服务正常。
这里有个新手容易忽略的问题:如果 Redis 配置了密码,直接用redis-cli ping会返回NOAUTH错误。带密码验证时用:
redis-cli -a 你的密码 ping5.4 Redis 配置文件要点
Redis 配置在 redis.conf(Linux 下通常在/etc/redis/redis.conf)。测试环境重点看这几项:
| 配置项 | 作用 | 建议 |
|---|---|---|
| bind | 绑定监听地址 | 测试环境本机可设为 127.0.0.1;要供局域网访问再放开 |
| port | 监听端口 | 默认 6379 |
| requirepass | 访问密码 | 强烈建议设置,防止未授权访问 |
| protected-mode | 保护模式 | 设置密码后建议保持开启 |
修改配置后重启服务:
sudo systemctl restart redis-server6. 禅道安装与基础配置
禅道本质上是一个 PHP + Apache + MySQL 的 Web 应用。它的安装包设计得比较"傻瓜化",尤其是 Windows 一键安装包,目的就是让不熟悉 PHP 的人也能装上。所以测试人员装禅道时,不用自己去配 PHP 环境,直接用官方安装包即可。
6.1 选择禅道版本
禅道官网提供不同版本,包括开源版、企业版等;下载区一般有 Windows 一键安装包、Linux 一键安装包和源码包。软件测试人员搭建测试环境,通常用开源版就够了,下载时优先选官网的一键安装包。
具体版本号不用背,以官网当前提供的最新稳定版为准。重点是理解安装包结构:Windows 一键包内部已经集成了 Apache、PHP、MySQL,解压或安装后启动服务即可。
6.2 Windows 下安装禅道
Windows 一键安装包通常是 exe 或 zip 形式。如果是 zip,解压到D:\zentao之类的目录,双击服务启动脚本;如果是 exe,按向导点击下一步即可。
启动完成后,浏览器访问:
http://localhost/zentao或者:
http://localhost:8088/zentao具体地址以安装包启动后的提示为准。
首次打开会进入禅道初始化页面,需要设置管理员账号。不同版本初始化逻辑有差异:老版本可能默认账号是 admin、密码 123456;新版本一般会引导你创建管理员密码。稳妥做法是:安装完成后先看页面提示,如果要求设置密码就现场设置;如果使用默认账号,首次登录后立刻修改密码。
6.3 Linux 下安装禅道
Linux 一键安装包通常是一个 tar.gz 文件,下载后解压到 /opt:
sudo tar -zxvf ZenTaoPMS.zbox_64.tar.gz -C /opt启动 ZBox 服务:
cd /opt/zbox sudo ./zbox start启动完成后访问http://服务器IP/zentao即可进入初始化页面。如果端口不是默认的 80,可以先看启动日志或配置文件确认实际端口。
6.4 禅道与 MySQL、Redis 的关系
这里需要特别说明:禅道一键安装包内置了 MySQL,也就是说,它不需要依赖你上面单独安装的 MySQL。这是很多测试人员容易绕晕的地方:我明明装了 MySQL,为什么禅道在页面上还能用自己的库?
原因就是禅道安装包自带了独立的 MySQL,端口可能不是 3306,而是比如 3307。这么做是为了避免和已有 MySQL 冲突,但也会让初次使用者困惑。如果你要在禅道安装包里查数据库,连接参数在安装目录的配置文件中,不要拿外部的 MySQL 客户端去连 3306 猜密码。
如果需要共用外部 MySQL,需要手动修改禅道配置并初始化数据库,这个操作步骤略多。刚上手时建议先用一键包的默认数据库,等熟悉了再考虑改造。
关于 Redis:禅道自身对 Redis 的依赖并不强,很多部署不会启用 Redis。但被测业务系统如果使用 Redis,测试环境里仍然要保证 Redis 可用。因此,你的测试环境需要同时具备 MySQL、Redis、禅道,三者各自独立服务,又通过被测系统或测试流程串联起来。
7. 用测试视角验证三件套环境
安装完成后,不要急着开测。建议用一套最小验证流程确认三个组件都可用。
7.1 最小验证流程
- 验证 MySQL:命令行输入
mysql -u root -p,能进入mysql>提示符。 - 验证 Redis:
redis-cli ping返回PONG。 - 验证禅道:浏览器打开禅道地址,能进入登录页,能创建项目或测试用例。
7.2 Python 脚本一键验证 MySQL 和 Redis
很多测试人员会写 Python 脚本,这里给一个最小脚本,用来确认 MySQL 和 Redis 的连接信息正确。先安装依赖:
pip install pymysql redis脚本如下:
import pymysql import redis # 1. 验证 MySQL try: conn = pymysql.connect( host='127.0.0.1', port=3306, user='root', password='你的MySQL密码', charset='utf8mb4' ) cursor = conn.cursor() cursor.execute('SELECT VERSION();') print('MySQL 连接成功,版本:', cursor.fetchone()[0]) cursor.close() conn.close() except Exception as e: print('MySQL 连接失败:', e) # 2. 验证 Redis try: r = redis.Redis( host='127.0.0.1', port=6379, password='你的Redis密码', decode_responses=True ) r.set('test:env_check', 'ok') value = r.get('test:env_check') print('Redis 连接成功,读写值:', value) except Exception as e: print('Redis 连接失败:', e)运行:
python check_env.py如果打印出 MySQL 版本和 Redis 读写值ok,说明连接配置正确。这个脚本在以后排查测试环境时也能复用。
注意:如果 Redis 没有设置密码,password参数可以省略;如果设置了密码但没有传,Redis 连接会报Authentication required。
7.3 在禅道中做一次全流程操作
验证完整环境,建议在禅道里走一遍核心流程:新建一个项目、创建测试单、添加一条测试用例。这样能确认禅道页面交互正常、数据库写入正常,也为后续正式使用做好准备。
8. 常见问题与排查思路
安装排错有一个通用顺序:先看服务有没有启动,再看端口有没有被占用,然后看配置是否正确,最后看日志。下面按三件套整理常见问题。
| 问题现象 | 可能原因 | 排查方式 | 解决方案 |
|---|---|---|---|
| MySQL 启动失败,提示 3306 被占用 | 端口被其他程序占用 | netstat/ss 查看端口占用 | 停掉占用进程,或修改 MySQL 端口 |
| MySQL 登录提示 Access denied | root 密码错误或权限问题 | 确认安装时设置的密码 | 重置 root 密码,或检查是否用了临时密码 |
| 中文写入后乱码 | 字符集不是 utf8mb4 | 执行SHOW VARIABLES LIKE 'character_set%' | 修改配置并重启 MySQL |
| redis-cli ping 返回 NOAUTH | Redis 设置了密码 | 查看 redis.conf 的 requirepass | 使用redis-cli -a 密码 ping |
| Redis 服务启动后立即退出 | redis.conf 配置错误或目录权限 | 查看 Redis 日志 | 修正配置,给目录正确写权限 |
| 禅道页面打不开 | 服务未启动或端口错误 | 检查安装包启动脚本、浏览器地址 | 先启动服务,确认端口后重新访问 |
| 禅道提示数据库连接失败 | 禅道内置 MySQL 未启动,或外部数据库配置错误 | 查看禅道安装目录下的日志 | 重启禅道服务,确认数据库地址端口 |
| 禅道登录初始账号不对 | 版本初始化逻辑不同 | 查看安装包自带的帮助文档 | 新版本按页面引导设置管理员密码;旧版本默认密码登录后立即修改 |
| 安装包运行提示缺少 VC 运行库 | Windows 缺少依赖库 | 查看安装包提示 | 按提示安装对应 Visual C++ Redistributable |
排查建议:每次改完配置,先重启对应服务,再看错误信息。不要同时改多个配置项,否则很难定位是哪一个导致的。
9. 测试环境最佳实践与工程建议
最后聊几条工程建议。这些内容不是必须立刻做,但越早养成习惯,后面越省事。
9.1 把环境资料做成可复用文档
给当前测试环境建一个文档,记录:安装版本、下载方式、端口、数据库账号、Redis 密码、禅道访问地址、初始化账号。不要只记在脑子里。环境重建、团队交接、面试项目描述时,这份文档都能直接用。
9.2 统一版本,保持环境一致性
测试环境最怕"我本地没问题"。如果被测系统和 MySQL、Redis 版本与测试服务器、生产环境差异过大,一些和版本相关的 Bug 无法复现。因此记录版本号,尽量让开发环境、测试环境接近线上配置。
9.3 权限与安全最小化
测试环境虽然不像生产环境那样严格,但也要注意:数据库账号只分配用例需要的权限;Redis 不要裸奔,设置requirepass;禅道管理员密码不要使用默认值。这既是安全习惯,也能让你在面试时说清楚"我如何管理测试环境"。
9.4 进阶方案:用 Docker Compose 统一 MySQL 和 Redis
如果团队已经使用 Docker,推荐用 docker-compose.yml 把 MySQL 和 Redis 统一编排。示例:
services: mysql: image: mysql:8 container_name: test-mysql environment: MYSQL_ROOT_PASSWORD: root123 MYSQL_DATABASE: mytest ports: - "3306:3306" volumes: - mysql-data:/var/lib/mysql redis: image: redis:7 container_name: test-redis ports: - "6379:6379" command: redis-server --requirepass test123 volumes: mysql-data:启动:
docker compose up -d这个方案的好处是删除容器后环境不会留下残留,适合反复搭建测试环境。如果不会 Docker,先按前面的本机安装步骤走也没问题。
禅道官方也提供容器化部署方式,具体镜像和参数以禅道官网文档为准。不要在没有官方文档参考的情况下随便拉第三方镜像,避免环境不可控。
9.5 下一步建议
装完这三件套之后,可以继续深入三块:学习更多 MySQL 查询与索引优化,这对接口测试、数据库断言很有用;学习 Redis 数据结构与过期策略,方便分析缓存类缺陷;在禅道里完整走一遍从用例到缺陷的流程,理解测试流程如何被工具固化。
环境搭好只是第一步,真正提升测试能力的是:你能在环境出问题时快速定位,能在被测系统出现缓存、数据一致性缺陷时,用自己的环境复现和验证。这套 Redis、禅道、MySQL 的安装过程,就是那扇门。
