Appium 启动应用 log 日志分析

目录

前言:

启动 REST http 服务器,默认监听本地 4723 端口

脚本将 desiredCapabilities 参数 通过 post 请求发送到 Appium 服务器

创建一个 session id

获取 Java 版本

检查 adb 是否存在

查找当前连接的设备,通过【adb devices】命令

查询到一个设备连接,使用这个设备并设置 udid(唯一标识符)

获取设备的 Android 系统版本

没有给出 APP 文件路径,将会运行软件包,先检查这个软件包是否存在,存在则继续

检查设备是否能够正常响应 adb 命令

获取设备的语言或国家

在设备上安装 io.appium.settings,并检查是否安装

获取 Android 系统 API 版本号

查看 io.appium.setting 的系统信息和 dump 信息,并授予 io.appium.settings 访问权限 (允许改变网络连接状态、读写系统设置、创建模拟位置)

安装 io.appium.unlock,辅助设备解锁

获取设备的 Android 系统版本、屏幕尺寸,API 版本和屏幕分别率、生产商

强制停止与清理测试软件包

建立 Appium Server 到设备上的 4724 端口转发,并开启设备上的基于 appiumbootstrap 的 socket 服务

启动测试应用

创建新的 AndroidDriver Session

设置 Appium Driver 运行时的上下文

获取当前的 WebView

获取当前页面元素


前言:

在 Appium 测试过程中,启动应用是一个非常重要的步骤。应用启动成功与否直接关系到测试的顺利进行。然而,在实际测试中,我们往往会遇到应用启动失败的情况,这时,分析应用的 log 日志就显得尤为重要。通过 log 日志,我们可以快速定位问题所在,从而解决应用启动失败的问题。

启动 REST http 服务器,默认监听本地 4723 端口

这里可通过 ip 配置 appium server 的地址) 用于接收客户端(Test Case+Selenium/Appium Driver) 发送的 JSON 格式的 POST 请求

[Appium] Welcome to Appium v1.7.2
[Appium] Appium REST http interface listener started on 0.0.0.0:4723
脚本将 desiredCapabilities 参数 通过 post 请求发送到 Appium 服务器
[HTTP] --> POST /wd/hub/session {"desiredCapabilities":{"appActivity":"com.****.MainActivity","appPackage":"com.****.d","deviceName":"192.168.96.101:5555  ","platformName":"Android","platformVersion":"6.0","newCommandTimeout":0,"connectHardwareKeyboard":true}}
[MJSONWP] Calling AppiumDriver.createSession() with args: [{"appActivity":"com.****.MainActivity","appPackage":"com.****.d","deviceName":"192.168.96.101:5555  ","platformName":"Android","platformVersion":"6.0","newCommandTimeout":0,"connectHardwareKeyboard":true},null,null]
[BaseDriver] Event 'newSessionRequested' logged at 1520258266730 (21:57:46 GMT+0800 (中国标准时间))
[Appium] Creating new AndroidDriver (v1.37.0) session
[Appium] Capabilities:
[Appium]   appActivity: com.****.MainActivity
[Appium]   appPackage: com.****.d
[Appium]   deviceName: 192.168.96.101:5555  
[Appium]   platformName: Android
[Appium]   platformVersion: 6.0
[Appium]   newCommandTimeout: 0
[Appium]   connectHardwareKeyboard: true
[BaseDriver] The following capabilities were provided, but are not recognized by appium: connectHardwareKeyboard.
创建一个 session id

Android Sesision 用于跟客户端通信

[BaseDriver] Session created with session id: e400eb0c-4b20-4ddf-ac87-cdab8a3e9fa6
获取 Java 版本
[AndroidDriver] Getting Java version
[AndroidDriver] Java version is: 1.8.0_161
检查 adb 是否存在

通过配置的环境变量 ANDROID_HOME 去固定路径下查找

[ADB] Checking whether adb is present
[ADB] Using adb.exe from C:\Users\PigHead\AppData\Local\Android\Sdk\platform-tools\adb.exe
查找当前连接的设备,通过【adb devices】命令
[AndroidDriver] Retrieving device list
[ADB] Trying to find a connected android device
[ADB] Getting connected devices...
查询到一个设备连接,使用这个设备并设置 udid(唯一标识符)
[ADB] 1 device(s) connected
[AndroidDriver] Looking for a device with Android '6.0'
[ADB] Setting device id to 192.168.96.101:5555
获取设备的 Android 系统版本
[ADB] Getting device platform version
[ADB] Getting connected devices...
[ADB] 1 device(s) connected
[ADB] Running 'C:\Users\PigHead\AppData\Local\Android\Sdk\platform-tools\adb.exe' with args: ["-P",5037,"-s","192.168.96.101:5555","shell","getprop","ro.build.version.release"]
[ADB] Current device property 'ro.build.version.release': 6.0
没有给出 APP 文件路径,将会运行软件包,先检查这个软件包是否存在,存在则继续
[AndroidDriver] App file was not listed, instead we're going to run com.****.d directly on the device
[AndroidDriver] Checking whether package is present on the device
[ADB] Getting connected devices...
[ADB] 1 device(s) connected
[ADB] Running 'C:\Users\PigHead\AppData\Local\Android\Sdk\platform-tools\adb.exe' with args: ["-P",5037,"-s","192.168.96.101:5555","shell","pm","list","packages","com.****.d"]
检查设备是否能够正常响应 adb 命令

通过【adb shell echo ping】来检查,设备能够正常响应打印出"ping"则认为设备正常,这里响应有个超时时间(默认是 5 秒)

[AndroidDriver] Starting Android session
[ADB] Running 'C:\Users\PigHead\AppData\Local\Android\Sdk\platform-tools\adb.exe' with args: ["-P",5037,"-s","192.168.96.101:5555","wait-for-device"]
[ADB] Getting connected devices...
[ADB] 1 device(s) connected
[ADB] Running 'C:\Users\PigHead\AppData\Local\Android\Sdk\platform-tools\adb.exe' with args: ["-P",5037,"-s","192.168.96.101:5555","shell","echo","ping"]
获取设备的语言或国家
[AndroidDriver] setDeviceLanguageCountry requires language or country.
[AndroidDriver] Got language: 'undefined' and country: 'undefined'
[Logcat] Starting logcat capture
在设备上安装 io.appium.settings,并检查是否安装
[AndroidDriver] Pushing settings apk to device...
[ADB] Getting install status for io.appium.settings
[ADB] Getting connected devices...
[ADB] 1 device(s) connected
[ADB] Running 'C:\Users\PigHead\AppData\Local\Android\Sdk\platform-tools\adb.exe' with args
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值