干货|app自动化测试之Appium问题分析及定位

本文详细介绍了如何使用Appium进行自动化测试时,通过分析Appium Server日志、Session日志和HTTP请求日志进行问题排查。在启动Appium服务、运行测试会话以及处理错误时,日志提供了关键信息,帮助定位和解决Android测试中的错误。通过调整日志级别、关闭颜色输出和添加时间戳等参数,可以优化日志查看体验。

使用 Appium 进行测试时,会产生大量日志,一旦运行过程中遇到报错,可以通过 Appium 服务端的日志以及客户端的日志分析排查问题。

Appium Server日志-开启服务

通过命令行的方式启动 Appium Server,下面来分析一下启动日志,日志第一行显示了 Appium 版本信息和服务在本地的运行地址。

$ appium -g appium.log
[Appium] Welcome to Appium v1.8.0-beta3 (REV \
  40e40975ebd3593d08c3f83de2546258f7ddf11d)
[Appium] Appium REST http interface listener started \
  on 0.0.0.0:4723

如果启动 Appium 服务时添加了参数,会在启动日志中展示,比如添加了 defaultCapabilities,启动日志也会显示出来。

Hogwarts $ appium --log-timestamp --log-no-colors --no-reset     
2021-04-29 10:11:58:545 - [Appium] Welcome to Appium v1.17.0
2021-04-29 10:11:58:547 - [Appium] Non-default server args:
2021-04-29 10:11:58:547 - [Appium]   logTimestamp: true
2021-04-29 10:11:58:547 - [Appium]   logNoColors: true
2021-04-29 10:11:58:547 - [Appium]   noReset: true
2021-04-29 10:11:58:548 - [Appium] Deprecated server args:
2021-04-29 10:11:58:548 - [Appium]   --no-reset => --default-capabilities '{"noReset":true}'
2021-04
### 设置Appium环境用于APP自动化测试 #### 配置要求 为了成功运行基于Appium的应用程序自动化测试,需满足一系列配置需求。设备方面,支持真实移动设备以及模拟器/仿真器;操作系统上,对于Android而言,推荐使用Windows或Mac OS作为开发平台,并确保已安装Java Development Kit (JDK),因为许多构建工具和服务都依赖于它。 #### 安装步骤及所需依赖项 1. **安装Node.js** Appium服务器由JavaScript编写并依靠Node.js来执行。因此,在任何平台上部署前都需要先下载并安装最新稳定版本的Node.js[^1]。 2. **安装Appium Server** 可通过命令行工具npm全局安装Appium server。打开终端窗口输入`npm install -g appium@latest`完成安装过程。这一步骤会自动处理所有必要的依赖关系,使用户能够专注于后续操作而非解决兼容性问题。 3. **启动Appium服务** 使用命令`appium`可以在本地机器上启动默认端口上的Appium服务实例。如果希望指定不同参数,则可以附加更多选项至上述指令之后。值得注意的是,在利用检查器工具之前务必确认该服务已经正常开启。 4. **准备安卓环境(仅限Android)** 对于打算针对Android应用开展工作的开发者来说,还需要额外几步准备工作: * 下载并设置好Android SDK; * 将ANDROID_HOME环境变量指向SDK路径下; * 添加adb、emulator等常用二进制文件所在的目录到系统的PATH中去; 5. **获取页面元素信息** 借助Appium Inspector这类可视化调试工具可以帮助识别应用程序UI组件的信息以便更方便地编写定位表达式。当尝试访问特定控件时,这些数据显得尤为重要。启动此功能的前提条件同样是保证后台存在可用的服务进程。 6. **定义启动活动(Activity)** 当涉及到跨多个应用程序的操作场景时,可能需要明确指出要激活的目标activity名称。例如,在某些情况下可以通过设定desired capabilities里的`appActivity`属性值为待测软件包内的某个具体入口点来进行切换[^2]。 7. **探索Web视图中的DOM结构** 如果目标应用程序包含了WebView组件的话,那么还可以进一步深入研究其内部HTML文档对象模型(DOM)层次。此时可借助浏览器开发者控制台提供的inspect特性实现这一目的[^3]。 8. **Xposed框架集成**(非必需) 虽然不是强制性的组成部分之一,但在某些特殊场合下可能会用到像Xposed这样的第三方插件扩展机制。它们允许修改现有系统行为而无需重新编译源码,从而简化了部分复杂交互逻辑的实现难度。 ```bash # Node.js安装示例(Linux/MacOS) sudo apt-get update && sudo apt-get install nodejs npm # Debian/Ubuntu brew install node # macOS with Homebrew # Appium Server安装 npm install -g appium@latest # 启动Appium Service appium & ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值