APP自动化测试-备忘录:Appium 2.X的安装和启动服务方法

发布于:2025-03-20 ⋅ 阅读:(21) ⋅ 点赞:(0)

一、Appium 1.X

启动appium服务:appium --session-override
也可以这样启动appium服务:appium

二、Appium 2.X

Appium 2.X 是一个自动化测试开源工具,用于测试原生、移动 Web 和混合应用程序。下面为你介绍其下载步骤:

1. 安装 Node.js 和 npm

Appium 2.0 是基于 Node.js 构建的,所以要先安装 Node.js 和 npm(Node 包管理器)。

  • 访问 Node.js 官方网站
  • 下载适合你操作系统的 Node.js 安装包。
  • 运行安装程序,按照提示完成安装。安装完成后,在命令行输入以下命令来验证是否安装成功:
node -v
npm -v

2. 全局安装 Appium 2.0

在命令行中输入以下命令,以全局方式安装 Appium 2.0:

npm install -g appium@next

这里的 @next 表明你要安装的是最新的 Appium 2.0 版本。

当执行 npm install -g appium@next 后长时间显示 [#########.........] / idealTree:npm: timing idealTree:#root Completed in 70385ms ,说明 npm 在解析依赖树环节遇到了问题,下面为你分析可能的原因及对应的解决办法:

【注】 执行上述命令,没有很快的安装,可能是网络问题。切换镜像后安装会安装的很快
  • 原因:npm 需要从远程仓库下载 Appium 及其依赖包,网络状况不佳、带宽不足或者网络不稳定,都可能导致下载缓慢甚至停滞。
  • 解决办法
    • 切换网络环境,例如从 Wi-Fi 切换到移动数据,或者反之。
    • 采用国内的 npm 镜像源来加速下载,如淘宝镜像。使用以下命令设置镜像:
npm config set registry https://registry.npmmirror.com

安装完成后,若要恢复官方镜像,可使用如下命令:

npm config set registry https://registry.npmjs.org

3. 安装 Appium 驱动

Appium 2.0 采用了插件式架构,你需要按需安装相应的驱动。以最常用的 UiAutomator2 驱动(用于 Android 应用测试)为例,在命令行输入以下命令进行安装:

appium driver install uiautomator2

如果你要测试 iOS 应用,可安装 XCUITest 驱动:

appium driver install xcuitest

4. 验证安装

安装完成后,你可以在命令行输入以下命令来启动 Appium 服务器:

appium

若服务器成功启动,输出的日志中会显示服务器正在监听特定的端口(通常是 4723),这表明 Appium 2.0 已成功安装。

5. 可选:安装 Appium Inspector

Appium Inspector 是一个可视化工具,能帮助你查看应用的 UI 元素,便于编写自动化测试脚本。你可以从 Appium Inspector 发布页面 下载适合你操作系统的安装包,然后按提示完成安装。

三、使用 appiumappium --session-override 启动 Appium 服务存在一定区别,下面为你详细介绍:

使用 appium 启动服务

当你仅使用 appium 命令启动 Appium 服务时,这是最基本的启动方式,服务会以默认配置启动。默认情况下,Appium 不允许在已有会话存在时创建新的会话,若尝试在已有会话未结束时创建新会话,Appium 会返回错误。

例如,你在命令行输入:

appium

之后若有一个测试会话正在运行,此时又发起一个新的会话请求,Appium 会拒绝该请求并给出相应错误信息。

使用 appium --session-override 启动服务

--session-override 是一个命令行参数,当使用 appium --session-override 启动服务时,Appium 会允许在已有会话存在的情况下创建新的会话。若有新的会话请求到来,Appium 会自动结束当前正在运行的会话,然后创建新的会话。

例如,在命令行输入:

appium --session-override

之后若有一个测试会话正在运行,此时又发起一个新的会话请求,Appium 会结束当前会话,接着为新请求创建一个新的会话。

应用场景

  • 使用 appium:适用于需要严格控制会话数量和生命周期的场景,避免不同测试用例之间的会话相互干扰,确保每个测试会话的独立性和完整性。
  • 使用 appium --session-override:在开发和调试阶段较为有用,能够快速切换不同的测试场景,无需手动停止当前会话再启动新会话,提高开发和调试的效率。但要注意,这种方式可能会导致测试数据丢失,因为当前会话会被直接终止。