干货 | 读懂 Appium 日志,让测试效率翻倍!

简介: 干货 | 读懂 Appium 日志,让测试效率翻倍!

Appium 服务器运行时会产生很多日志,但是很多人并不了解其中的意义,也无法掌握有用的信息。本文将详细解读如何读懂 Appium 日志,并让你的测试效率翻倍。

日志第一行显示了 Appium 版本和运行地址。

如果你在 Appium 上添加了参数,他们会在日志中展示,如果添加了 defaultCapabilities,日志也会显示出来。

对于自动化测试来说,这个信息很重要,因为不同的 Appium 版本有不同的功能和问题,必须要知道自己的 Appium 版本。

为了自动化测试跑起来,session 要做很多事,日志提供了一些基本的 session 信息,特别是 desired capabilities 和 default capabilities。应该时刻注意 Appium 服务是否正确接收了请求内容,日志列出了创建 automation session(不懂 automation session 的看下面的链接)。

Appium 是一个 REST 服务,接收 HTTP 请求,展示请求内容,返回某种结果。Appium 服务端日志用线和箭头展示了请求和返回的内容。在两个箭头之间是 Appium 服务端执行请求命令的日志信息:

利用日志可以非常方便的排查错误,错误通常发生在 automation session 之后。但有时,如果 session 持续存在,错误也可能发生。所以第一步是找出错误在哪。

下面的例子可以看出,每个指令用 [HTTP] → 和 [HTTP] ← 标记。这些标记之间是指令细节,包含了错误输出:

用户试图用 Android driver 启动一个 session,但发生了错误。Appium 为准备 session 而关掉并清除 AUT 时发现了错误,这个错误让我们知道两件事:

1.Appium 正在尝试做什么

2.哪里出错了

在这个例子中,Appium 尝试运行 adb 命令(adb shell am force-stop),adb 参数在错误信息中也有显示。发生了 Android 系统权限错误。此时,我们可以手动运行这个 adb 命令,看看错误是不是可以重现。如果错误重现,上网查错吧!如果 adb 命令成功运行,可能是 Appium 的 bug,应该去 Github 的 issue 上查看或者提交这个 bug 。(例子中的错误是设备制造商的安全模型造成的)

这个例子只是众多错误中的一个,但它说明至关重要的一点,当错误发生时,日志可以提供更多的信息,如果没有完整的日志信息,对 Appium 排错难上加难。

通常,默认的日志内容已经足够,如果你想去 Github 上寻求帮助,信息当然越多越好!下面一些参数可以改变 Appium 服务端的日志行为:

  • –log-level - 改变Appium日志显示级别。
  • Appium 默认展示所有日志,它有以下一些选项:‘info’, ‘info:debug’, ‘info:info’, ‘info:warn’, ‘info:error’, ‘warn’, ‘warn:debug’, ‘warn:info’, ‘warn:warn’, ‘warn:error’, ‘error’, ‘error:debug’, ‘error:info’, ‘error:warn’, ‘error:error’, ‘debug’, ‘debug:debug’, ‘debug:info’, ‘debug:warn’, ‘debug:error’。
  • –log-no-colors - 如果你的控制台没有颜色(日志可能会产生一些奇怪的字符,比如"TODO: find the color"),你可以用这个参数关闭颜色。
  • –log-timestamp - 在日志前添加时间戳,在排查超时错误时有奇效,展示如下:
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
4月前
|
XML Java 测试技术
『App自动化测试之Appium应用篇』| 元素定位工具Appium-Inspector从简介、安装、配置到使用的完整攻略
『App自动化测试之Appium应用篇』| 元素定位工具Appium-Inspector从简介、安装、配置到使用的完整攻略
176 3
|
4月前
|
JavaScript Java 测试技术
『App自动化测试之Appium基础篇』| 从定义、原理、环境搭建、安装问题排查等深入了解Appium
『App自动化测试之Appium基础篇』| 从定义、原理、环境搭建、安装问题排查等深入了解Appium
662 0
|
4月前
|
编解码 Java 测试技术
『App自动化测试之Appium应用篇』| uiautomator + accessibility_id定位方法完全使用攻略
『App自动化测试之Appium应用篇』| uiautomator + accessibility_id定位方法完全使用攻略
127 0
|
4月前
|
XML 测试技术 开发工具
『App自动化测试之Appium应用篇』| 元素定位工具uiautomatorviewer从简介、特点、启动到使用的完整过程
『App自动化测试之Appium应用篇』| 元素定位工具uiautomatorviewer从简介、特点、启动到使用的完整过程
80 4
|
3月前
|
SQL Java 数据库连接
Mybatis之Mybatis简介、搭建Mybatis相关步骤(开发环境、maven、核心配置文件、mapper接口、映射文件、junit测试、log4j日志)
【1月更文挑战第2天】 MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下,iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到Github iBatis一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBatis提供的持久层框架包括SQL Maps和Data Access Objects(DAO)
203 3
Mybatis之Mybatis简介、搭建Mybatis相关步骤(开发环境、maven、核心配置文件、mapper接口、映射文件、junit测试、log4j日志)
|
4月前
|
移动开发 安全 测试技术
『App自动化测试之Appium应用篇』| 继承于selenium常用的元素定位方法有哪些?如何使用?
『App自动化测试之Appium应用篇』| 继承于selenium常用的元素定位方法有哪些?如何使用?
85 0
|
4月前
|
测试技术 Android开发 iOS开发
『App自动化测试之Appium基础篇』| Desired Capabilities详解与使用
『App自动化测试之Appium基础篇』| Desired Capabilities详解与使用
85 0
|
3月前
|
测试技术
Appium 并行测试多个设备
Appium 并行测试多个设备
55 0
|
3月前
|
测试技术
Appium自动化测试swipe滑动封装
Appium自动化测试swipe滑动封装
24 0
|
8月前
|
安全 测试技术 网络安全
软件测试|Mac安装appium报权限问题
软件测试|Mac安装appium报权限问题
61 0

热门文章

最新文章