一、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 发布页面 下载适合你操作系统的安装包,然后按提示完成安装。
三、使用 appium
和 appium --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
:在开发和调试阶段较为有用,能够快速切换不同的测试场景,无需手动停止当前会话再启动新会话,提高开发和调试的效率。但要注意,这种方式可能会导致测试数据丢失,因为当前会话会被直接终止。