1. 测试环境部署概述作为一名在Linux环境下摸爬滚打多年的测试工程师我深知一个稳定、完整的测试环境对项目效率的重要性。本文将分享我在CentOS 7和Ubuntu 20.04双系统上搭建全栈测试环境的完整方案涵盖从系统初始化到应用部署的全流程。这个环境方案特别适合需要频繁搭建测试环境的团队或个人具有以下核心优势全栈覆盖包含Java/Python/Node开发环境、主流中间件、容器化工具和测试报告系统双系统适配所有操作都提供CentOS 7和Ubuntu 20.04两个版本的具体实现开箱即用每个组件都经过生产验证配置了测试环境所需的优化参数可扩展性强基础架构稳定后可以方便地添加更多测试组件2. 系统初始化配置2.1 防火墙与安全设置在测试环境中防火墙和安全模块往往会成为各种灵异问题的源头。经过多次踩坑后我总结出以下最佳实践CentOS 7配置# 完全禁用防火墙测试环境专用生产环境慎用 systemctl stop firewalld systemctl disable firewalld systemctl status firewalld # 确认状态为inactiveUbuntu 20.04配置# 禁用UFW防火墙 systemctl stop ufw systemctl disable ufw systemctl status ufw # 确认状态为inactive重要提示这些操作会降低系统安全性仅适用于内网测试环境。如果环境需要对外暴露应该配置精确的防火墙规则而非完全关闭。SELinux处理仅CentOS# 永久禁用SELinux sed -i s/^SELINUXenforcing/SELINUXdisabled/ /etc/selinux/config reboot # 必须重启生效 getenforce # 确认输出为Disabled2.2 基础工具安装完善的工具链能极大提升后续工作效率以下是必装工具列表CentOS 7yum install -y wget curl vim net-tools lsof unzip zip gitUbuntu 20.04apt update apt install -y wget curl vim net-tools lsof unzip zip git工具说明wget/curl文件下载和API测试vim高效的文本编辑net-tools/lsof网络和端口诊断unzip/zip压缩包处理git代码版本管理2.3 时区同步统一的时区设置对日志分析至关重要timedatectl set-timezone Asia/Shanghai date # 确认输出包含CST时区3. 开发环境部署3.1 JDK 8安装Java 8仍然是测试环境的主流选择CentOS 7yum install -y java-1.8.0-openjdk-develUbuntu 20.04apt install -y openjdk-8-jdk验证安装java -version # 1.8.0_xxx javac -version # 1.8.0_xxx3.2 Python3环境Python是自动化测试的核心语言CentOS 7yum install -y epel-release python3 python3-pip pip3 install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simpleUbuntu 20.04apt install -y python3 python3-pip pip3 install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple测试常用库安装pip3 install requests pytest allure-pytest pytest-html locust selenium -i https://pypi.tuna.tsinghua.edu.cn/simple3.3 Maven构建工具通用安装步骤wget https://archive.apache.org/dist/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz tar -zxvf apache-maven-3.8.8-bin.tar.gz -C /usr/local/ mv /usr/local/apache-maven-3.8.8 /usr/local/maven环境变量配置echo export M2_HOME/usr/local/maven /etc/profile echo export PATH$PATH:$M2_HOME/bin /etc/profile source /etc/profile验证mvn -v # 输出3.8.83.4 Node.js环境前端测试必备环境通用安装wget https://nodejs.org/download/release/v16.20.2/node-v16.20.2-linux-x64.tar.gz tar -zxvf node-v16.20.2-linux-x64.tar.gz -C /usr/local/ mv /usr/local/node-v16.20.2-linux-x64 /usr/local/node环境变量配置echo export NODE_HOME/usr/local/node /etc/profile echo export PATH$PATH:$NODE_HOME/bin /etc/profile source /etc/profile配置国内源npm config set registry https://registry.npmmirror.com4. 中间件部署4.1 MySQL 5.7CentOS 7安装wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm rpm -ivh mysql57-community-release-el7-9.noarch.rpm yum install -y mysql-community-server --nogpgcheckUbuntu 20.04安装apt update apt install -y mysql-server-5.7关键配置-- 修改root密码 ALTER USER rootlocalhost IDENTIFIED BY 123456; -- 允许远程访问 USE mysql; UPDATE user SET host% WHERE userroot; FLUSH PRIVILEGES;4.2 Redis部署通用安装# CentOS yum install -y redis # Ubuntu apt install -y redis-server关键配置sed -i s/bind 127.0.0.1 ::1/bind 0.0.0.0/ /etc/redis/redis.conf sed -i s/protected-mode yes/protected-mode no/ /etc/redis/redis.conf systemctl restart redis4.3 Nginx安装通用安装# CentOS yum install -y nginx # Ubuntu apt install -y nginx启动验证systemctl start nginx curl 127.0.0.1 # 应返回欢迎页面5. 容器化部署方案5.1 Docker安装CentOS 7yum install -y docker systemctl start docker systemctl enable dockerUbuntu 20.04apt install -y docker.io systemctl start docker systemctl enable docker5.2 Docker Compose安装curl -L https://mirrors.aliyun.com/docker-toolbox/linux/compose/1.29.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose chmod x /usr/local/bin/docker-compose5.3 多服务编排示例docker-compose.ymlversion: 3 services: mysql: image: mysql:5.7 ports: [3306:3306] environment: MYSQL_ROOT_PASSWORD: 123456 restart: always redis: image: redis:6 ports: [6379:6379] restart: always minio: image: minio/minio ports: - 9000:9000 - 9001:9001 volumes: - /data/minio:/data command: server /data --console-address :9001 environment: MINIO_ROOT_USER: minioadmin MINIO_ROOT_PASSWORD: minioadmin restart: always启动命令docker-compose up -d6. 应用部署与验证6.1 Java应用部署标准部署流程mkdir -p /opt/app cd /opt/app nohup java -jar test.jar app.log 21 状态检查ps -ef | grep java netstat -lntp | grep 8080 tail -f app.log6.2 环境验证清单完整验证命令# 基础工具 java -version python3 -V mvn -v node -v # 中间件 mysql -uroot -p123456 -e SELECT 1 redis-cli ping curl 127.0.0.1 # 容器 docker ps docker-compose -v7. 经验总结与避坑指南在实际部署过程中我总结了以下关键经验环境隔离原则测试环境与生产环境必须物理或逻辑隔离使用Docker可以更好地实现环境隔离不同项目应该使用不同的测试环境配置管理技巧所有安装脚本和配置文件应该版本化管理使用Ansible等工具可以实现批量部署重要配置变更必须记录并通知团队常见问题排查# 端口占用检查 lsof -i :8080 # 服务启动失败排查 journalctl -xe # 磁盘空间检查 df -h性能优化建议测试环境可以适当调低JVM内存参数数据库可以关闭binlog减少IO压力定期清理测试产生的临时数据这套环境方案已经在多个项目中验证过稳定性特别适合需要快速搭建测试环境的场景。根据实际需求你可以在此基础上扩展更多组件如Elasticsearch、Kafka等。
企业数字化 ERP 产品动态
相关推荐
Axon 4.4事件处理与查询模型实战:TEP/SEP选择、令牌存储与重放避坑指南 1. 为什么一个“文档第九篇”值得单独拿出来聊 Axon 4.4 中文版文档翻到第九篇这个位置,基本上已经越过了“跑个 Hello World 看看事件总线长什么样”的阶段,进入了整个框架里最容易让人卡住的那一层: 事件处理与查询模型的落地细节 。我见… · 2026/11/3 16:55:45
创龙Kintex7+TMS320C6678异构开发:FPGA与DSP协同信号处理实战 简介:面向创龙Kintex-7与TMS320C6678异构开发板的完整资料包,覆盖FPGA与DSP协同开发场景,适合嵌入式工程师、硬件工程师及高校研究人员用于开发环境搭建、高速接口调试和项目原型验证。包内共971个文件,大小约458MB,主… · 2026/11/3 16:55:45
AI时代测试工程师的生存指南与技术反制 1. 测试殖民时代的来临:AI如何重构质量保障体系2035年,当AlphaZero-QA系统在全球主要测试中心完成部署时,测试工程师们才真正意识到职业地震的到来。这套基于神经模糊测试框架(Neuro-Fuzzy Testing)的系统,… · 2026/11/3 16:55:45
网络安全架构与访问控制技术深度解析 1. 网络安全架构的本质认知 网络安全从来不是简单的设备堆砌或策略文档,而是一个动态演进的系统工程。从业十五年,我见过太多企业花费数百万购置高端防火墙却因默认密码被攻破的案例。真正的安全防护需要从三个维度构建:技术体系、管理流程和… · 2026/11/3 17:41:10
WordPress升级PHP 7兼容性实战:从评估到回滚的完整指南 1. 老站升级这件事,为什么值得单独拎出来讲 手里攥着一个跑了三五年的WordPress站点,某天运维群里弹出一条消息:“服务器PHP版本要统一升到7.x了,旧版本下个月停止安全维护。”看到这句话,多数人的第一反应不是兴奋&am… · 2026/11/3 17:41:10
Google开源ARTEMIS:AI Agent驱动Android真机测试框架深度解析 Android 真机测试这块硬骨头,Google 这次直接扔出来一个 AI Agent 框架——ARTEMIS。简单说,它就是让大模型扮演你的测试工程师,自己看屏幕、自己点按钮、自己判断结果,全程不写一行测试脚本。这个项目一开源,社区里马… · 2026/11/3 17:41:10
STK 8.1.1中文手册实战指南:场景建模、Access分析与Globe可视化 简介:本资源是STK(System Tool Kit)8.1.1版本官方英文帮助文档的完整中文翻译手册,面向航天仿真、卫星通信、遥感观测及空间系统建模领域的初学者与工程实践者,旨在解决用户因语言障碍导致的功能理解困难与操作门槛高问… · 2026/11/3 17:41:10
瑞萨MCU开发环境搭建全攻略:从工具选型到工程调试 1. 瑞萨开发环境搭建的整体思路拆解搞嵌入式这行的朋友大概都有个共识:环境搭建这件事,第一次搞的时候能耗掉你大半天,搞通之后回头看又觉得不过如此。瑞萨(Renesas)的MCU在工业控制、汽车电子、家电主控这些领域用得相… · 2026/11/3 17:41:10
视联网产品迭代优化与用户反馈闭环实践 1. 视联网产品迭代优化的核心挑战与机遇 在当前的数字化浪潮中,视联网产品正经历着前所未有的快速发展。作为连接物理世界与数字世界的桥梁,视联网产品面临着独特的迭代优化挑战。与传统的纯软件产品不同,视联网产品涉及硬件设备、网络传输、… · 2026/11/3 17:40:03
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46
STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59
ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59
基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46