您当前的位置: 首页 > 
  • 0浏览

    0关注

    265博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

读懂 Appium 日志,让测试效率翻倍

可可爱爱的程序员 发布时间:2022-03-04 22:45:45 ,浏览量:0

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

  开启服务

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

  $ appium

  [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,日志也会显示出来。

  Appium 参数:

  http://appium.io/docs/en/writing-running-appium/server-args/

  defaultCapabilities详见:

  http://appium.io/docs/en/writing-running-appium/default-capabilities-arg/

  $ appium --address 172.19.131.113 --port 8000 --default-capabilities '{"showIOSLog": true}'

  [Appium] Welcome to Appium v1.8.0-beta3 (REV 40e40975ebd3593d08c3f83de2546258f7ddf11d)

  [Appium] Non-default server args:

  [Appium] address: 172.19.131.113

  [Appium] port: 8000

  [Appium] defaultCapabilities: {

  [Appium] showIOSLog: true

  [Appium] }

  [Appium] Default capabilities, which will be added to each request unless overridden by desired capabilities:

  [Appium] showIOSLog: true

  [Appium] Appium REST http interface listener started on 172.19.131.113:8000

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

  创建 Session

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

  desired capabilities:

  http://appium.io/docs/en/writing-running-appium/caps/

  [Appium] Creating new XCUITestDriver (v2.68.0) session

  [Appium] Capabilities:

  [Appium] app: /Users/isaac/apps/UICatalog-iphonesimulator.app

  [Appium] platformName: iOS

  [Appium] platformVersion: 11.3

  [Appium] deviceName: iPhone 6

  [Appium] automationName: XCUITest

  [Appium] noReset: true

  [Appium] maxTypingFrequency: 30

  [Appium] clearSystemFiles: true

  [Appium] showXcodeLog: false

  [debug] [BaseDriver]

  [debug] [BaseDriver] Creating session with MJSONWP desired capabilities: {"app":"/Users/isaac/code/a...

  Appium 指令

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

  什么是REST服务:

  https://en.wikipedia.org/wiki/Representational_state_transfer

  [HTTP] --> GET /wd/hub/status {}

  [debug] [MJSONWP] Calling AppiumDriver.getStatus() with args: []

  [debug] [MJSONWP] Responding to client with driver.getStatus() result: {"build":{"version":"1.8.0-beta3","revision":"30e7b45bdc5668124af33c41492aa5195fcdf64d"}}

  [HTTP] 和 [HTTP] POST /wd/hub/session

  

  [debug] [AndroidDriver] Shutting down Android driver

  [debug] [AndroidDriver] Called deleteSession but bootstrap wasn't active

  [debug] [Logcat] Stopping logcat capture

  [debug] [ADB] Getting connected devices...

  [debug] [ADB] 1 device(s) connected

  [debug] [ADB] Running '/home/user/Android/Sdk/platform-tools//adb' with args: ["-P",5037,"-s","ec8c4df","shell","am","force-stop","io.appium.unlock"]

  [debug] [AndroidDriver] Not cleaning generated files. Add `clearSystemFiles` capability if wanted.

  [MJSONWP] Encountered internal error running command: Error: Cannot stop and clear com.company.app. Original error: Error executing adbExec. Original error: 'Command '/home/user/Android/Sdk/platform-tools//adb -P 5037 -s ec8c4df shell pm clear com.company.app' exited with code 1'; Stderr: 'Error: java.lang.SecurityException: PID 22126 does not have permission android.permission.CLEAR_APP_USER_DATA to clear data of package com.company.app'; Code: '1'

  at Object.wrappedLogger.errorAndThrow (../../lib/logging.js:63:13)

  at ADB.callee$0$0$ (../../../lib/tools/adb-commands.js:334:9)

  at tryCatch (/home/linuxbrew/.linuxbrew/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:67:40)

  at GeneratorFunctionPrototype.invoke [as _invoke] (/home/linuxbrew/.linuxbrew/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:315:22)

  at GeneratorFunctionPrototype.prototype.(anonymous function) [as throw] (/home/linuxbrew/.linuxbrew/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)

  at GeneratorFunctionPrototype.invoke (/home/linuxbrew/.linuxbrew/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:136:37)

  at

  at process._tickCallback (internal/process/next_tick.js:188:7)

  [HTTP]

关注
打赏
1656598245
查看更多评论
立即登录/注册

微信扫码登录

0.0652s