移动自动化测试控制端
4723 是 Appium Server 的默认端口:测试脚本通过它的 REST 接口创建会话、下发操作指令并读取页面元素,真机或模拟器连接在运行它的机器上。它本身没有内置认证机制,接入真机之后可以远程操控设备,这意味着测试机上的登录状态、聊天记录与业务数据都处在同一攻击面上,因此它不应出现在办公网可访问的位置。
基本信息
| 服务 | Appium Server |
|---|---|
| 协议 | TCP/HTTP(REST 接口,默认 4723) |
| 用途 | iOS 与 Android 界面自动化测试 |
| 依赖 | 已连接的模拟器或真机设备 |
| 暴露要求 | 仅构建或测试网段 |
典型使用场景
- 持续集成:流水线中启动服务并执行自动化用例
- 兼容性测试:连接多台真机批量跑同一批用例
- 研发自测:本地启动服务调试用例脚本
- 排障:会话创建失败时确认设备是否已连接并被识别
- 安全核对:确认服务只在构建网段可达,且不长期在线
常见问题
| 现象 | 常见原因 | 排查方向 |
|---|---|---|
| 会话创建失败 | 设备未连接或驱动不匹配 | 检查设备列表与驱动版本 |
| 用例随机失败 | 设备性能或弹窗干扰 | 查看设备日志与截图 |
| 服务无响应 | 残留会话未释放 | 清理会话并重启服务 |
| 外部可访问 | 监听地址为全部接口 | 限制绑定地址与来源 |
启动与探测
启动与探测
# 按指定端口启动服务
appium --port 4723
# 检查服务状态接口
curl -s http://127.0.0.1:4723/status
# 查看会话列表,确认是否有残留会话
curl -s http://127.0.0.1:4723/sessions | head -c 300
# 确认监听地址范围
ss -lntp | grep 4723用例之间共享同一台设备时,上一个用例留下的登录态与缓存会污染下一个用例。自动化流水线里除了服务本身,还要为每轮执行准备干净的设备状态,否则失败会集中在看似随机的用例上。
测试机上常保存着真实账号的登录状态。服务若无认证且可被办公网访问,等于提供了一台挂着真机的无人值守设备控制入口,风险高于普通内部工具,建议只在构建时段按需启动。