目录
启动 REST http 服务器,默认监听本地 4723 端口
脚本将 desiredCapabilities 参数 通过 post 请求发送到 Appium 服务器
查询到一个设备连接,使用这个设备并设置 udid(唯一标识符)
没有给出 APP 文件路径,将会运行软件包,先检查这个软件包是否存在,存在则继续
在设备上安装 io.appium.settings,并检查是否安装
查看 io.appium.setting 的系统信息和 dump 信息,并授予 io.appium.settings 访问权限 (允许改变网络连接状态、读写系统设置、创建模拟位置)
获取设备的 Android 系统版本、屏幕尺寸,API 版本和屏幕分别率、生产商
建立 Appium Server 到设备上的 4724 端口转发,并开启设备上的基于 appiumbootstrap 的 socket 服务
前言:
Appium 是一个开源的自动化测试框架,可以用于移动应用程序的自动化测试。在使用 Appium 进行自动化测试时,可以通过启动应用程序来获取应用程序的日志信息,以帮助分析和解决问题。
启动 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: ["-P",5037,"-s","192.168.96.101:5555","shell","pm","list","packages","io.appium.settings"]
[ADB] App is installed
[ADB] Getting package info for io.appium.settings
[ADB] Getting connected devices...
[ADB] 1 device(s) connected
[ADB] Running 'C:\Users\PigHead\AppData\Local\Android\S