☰
Ubuntu下STF环境安装与配置全指南
2026/10/27 3:11:09 网站建设 项目流程

1. STF环境安装全流程解析

STF(Smartphone Test Farm)作为移动设备远程管理平台,在自动化测试和CI/CD流程中扮演着重要角色。最近在帮团队搭建测试环境时,我完整走通了从零开始部署STF的全过程,期间踩过不少环境配置的坑。本文将详细记录Ubuntu系统下STF环境的正确安装姿势,包含依赖项管理、组件配置和常见故障排除方案。

重要提示:STF对Node.js和Java版本有严格要求,建议先完成基础环境准备再安装核心组件

1.1 基础环境准备

安装前需要确保系统满足以下条件:

  • Ubuntu 18.04/20.04 LTS(推荐)
  • 至少4GB内存
  • 50GB可用磁盘空间
  • 稳定的网络连接

首先更新系统并安装基础工具链:

sudo apt update && sudo apt upgrade -y sudo apt install -y git curl wget make gcc g++ python

1.2 核心依赖安装

Node.js环境配置

STF要求Node.js 12.x版本(最新版可能不兼容),建议通过nvm管理:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash source ~/.bashrc nvm install 12.22.12 nvm use 12.22.12

验证安装:

node -v # 应显示v12.22.12 npm -v # 应显示6.14.16
Java环境配置

STF依赖Java 8运行环境:

sudo apt install -y openjdk-8-jdk java -version # 应显示1.8.0_xxx
ADB工具链

Android调试桥需要单独配置:

sudo apt install -y android-tools-adb adb version # 应显示32.0.0+

2. 数据库与服务组件安装

2.1 Redis部署

STF使用Redis作为消息队列:

sudo apt install -y redis-server sudo systemctl enable redis sudo systemctl start redis

验证服务状态:

redis-cli ping # 应返回PONG

2.2 RethinkDB配置

作为主要存储数据库,需要单独安装:

source /etc/lsb-release echo "deb https://download.rethinkdb.com/repository/ubuntu-$DISTRIB_CODENAME $DISTRIB_CODENAME main" | sudo tee /etc/apt/sources.list.d/rethinkdb.list wget -qO- https://download.rethinkdb.com/repository/raw/pubkey.gpg | sudo apt-key add - sudo apt update sudo apt install -y rethinkdb

配置服务:

sudo cp /etc/rethinkdb/default.conf.sample /etc/rethinkdb/instances.d/instance1.conf sudo systemctl enable rethinkdb sudo systemctl start rethinkdb

检查运行状态:

rethinkdb --version # 应显示2.4.0+

3. STF核心组件安装

3.1 全局工具安装

先安装必要的构建工具:

npm install -g grunt-cli bower

3.2 源码获取与编译

克隆STF仓库并安装依赖:

git clone https://github.com/DeviceFarmer/stf.git cd stf npm install bower install

编译前端资源:

grunt build

3.3 服务启动配置

创建启动配置文件stf-local.conf:

[server] port = 7100 secret = your-secret-key [rethinkdb] host = localhost port = 28015 [redis] host = localhost port = 6379

启动服务:

bin/stf local --config stf-local.conf

4. 常见问题排查指南

4.1 依赖版本冲突

典型报错:Error: Module did not self-register解决方案:

rm -rf node_modules npm cache clean --force npm install

4.2 ADB设备识别失败

检查步骤:

  1. 确认USB调试已开启
  2. 重新加载ADB服务:
adb kill-server adb start-server adb devices

4.3 端口占用问题

查看端口占用情况:

sudo netstat -tulnp | grep -E '7100|28015|6379'

释放端口或修改配置文件对应参数

5. 生产环境优化建议

5.1 使用PM2管理进程

安装PM2并配置自动重启:

npm install -g pm2 pm2 start bin/stf --name "stf" -- local --config stf-local.conf pm2 save pm2 startup

5.2 反向代理配置

Nginx示例配置:

server { listen 80; server_name stf.yourdomain.com; location / { proxy_pass http://localhost:7100; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }

5.3 安全加固措施

  1. 修改默认密钥
  2. 配置HTTPS加密
  3. 设置IP访问白名单

我在实际部署中发现,STF对设备USB接口的稳定性要求极高。建议使用带有独立供电的USB Hub连接测试设备,避免因供电不足导致设备频繁掉线。另外,对于长期运行的测试环境,最好配置日志轮转和磁盘空间监控,防止日志文件撑满磁盘。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询