
作为软件测试人员你大概率遇到过这样的场景新项目刚接手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 以上空间端口3306MySQL、6379Redis、80 或 8080禅道 Web权限Windows 使用管理员权限安装Linux 使用普通用户加 sudo3.2 端口检查端口被占用是安装失败的最高频原因。安装前先用命令检查。Windows PowerShellnetstat -ano | findstr 3306 netstat -ano | findstr 6379 netstat -ano | findstr 80Linux 终端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-serverutf8mb4 collation-serverutf8mb4_unicode_ci改完重启sudo systemctl restart mysql5. Redis 安装与基础配置Redis 是三个组件里安装坑最多的原因就是官方对 Windows 支持不友好。测试人员经常搜到一堆Redis Windows 安装包但说不清来源。先把这个问题说透。5.1 Windows 下安装 Redis 的几种方式严格说Redis 官方不提供 Windows 安装包。生产环境里一般用 Linux 部署 Redis。Windows 本机开发或测试场景常见方案有三种WSLWindows 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 下安装 RedisUbuntu/Debiansudo 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.confLinux 下通常在/etc/redis/redis.conf。测试环境重点看这几项配置项作用建议bind绑定监听地址测试环境本机可设为 127.0.0.1要供局域网访问再放开port监听端口默认 6379requirepass访问密码强烈建议设置防止未授权访问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 文件下载后解压到 /optsudo 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提示符。验证 Redisredis-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( host127.0.0.1, port3306, userroot, password你的MySQL密码, charsetutf8mb4 ) 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( host127.0.0.1, port6379, password你的Redis密码, decode_responsesTrue ) 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 deniedroot 密码错误或权限问题确认安装时设置的密码重置 root 密码或检查是否用了临时密码中文写入后乱码字符集不是 utf8mb4执行SHOW VARIABLES LIKE character_set%修改配置并重启 MySQLredis-cli ping 返回 NOAUTHRedis 设置了密码查看 redis.conf 的 requirepass使用redis-cli -a 密码 pingRedis 服务启动后立即退出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 的安装过程就是那扇门。