51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1799|回复: 3
打印 上一主题 下一主题

[Appium] Appium 报错后查错指南

[复制链接]
  • TA的每日心情
    无聊
    2024-9-19 09:07
  • 签到天数: 11 天

    连续签到: 2 天

    [LV.3]测试连长

    跳转到指定楼层
    1#
    发表于 2017-6-20 13:36:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    很高兴最近论坛用appium的人多了不少,但也有不少由于不了解appium导致出现错误后不知道从何下手。这里根据我的个人经验给出一个简单的查错指南,不保证能解决所有错误,但至少让你知道你应该朝哪个方向去解决。
    1. 阅读Appium文档这是很多人忽略但却是最重要的方法。Appium的文档说明了 如何正确使用appium有哪些事情appium做不了或者要通过特殊方法做。大部分刚入门的同学的问题在这里面都能找到答案。
    中文文档(由testerhome开源团队翻译,目前已和官方文档一致):https://github.com/testerhome/appium/tree/master/docs/cn
    英文文档:https://github.com/appium/appium/tree/master/docs/en
    2. 阅读Appium log后查询google或stackoverflowAppium的log默认使用debug级别,所以内容很丰富。如果你懂得正确地阅读,你能很容易地从google/stackoverflow找到答案。
    PS:不建议用百度。百度搜出来的其实大多都是testerhome的……
    由于Appium的主要结构为:
    Android:使用adb管理设备及安装应用,使用UiAutomator/selendriod驱动对应用的各种操作(找元素、点击等)
    iOS:使用Instruments管理设备,使用UiAutomation驱动对应用的各种操作
    因此Appium的log主要有以下几类:
    1、  网络通讯log(以-->或<--符号开头):
    info: --> GET /wd/hub/status {}info: <-- GET /wd/hub/status 200 1.335 ms - 104 {"status":0,"value":{"build":{"version":"1.3.4","revision":"c8c79a85fbd6870cd6fc3d66d038a115ebe22efe"}}}此类log一般出现在Appium client与Appium server通信时,记录原始通信信息。一般出错只是因为下面执行出错然后反馈到上层(出错的话请看http status code。如上面的状态码是200,即处理成功)。
    2、 Appium Server内部处理log(以类似[debug]的log级别开头,相比下面其他类型的log没有其他特别标志 ):
    1. info: [debug] Responding to client with success: {"status":0,"value":{"build":{"version":"1.3.4","revision":"c8c79a85fbd6870cd6fc3d66d038a115ebe22efe"}}}
    2. ...
    3. info: [debug] Configuring Safari session
    4. info: [debug] We're on iOS8+ so not copying mobile safari app
    5. info: [debug] Creating new appium session 59f933a1-ee07-45d3-bbec-cabfe89735d8
    6. info: [debug] Removing any remaining instruments sockets
    7. info: [debug] Cleaned up instruments socket /tmp/instruments_sock
    8. info: [debug] Setting Xcode folder
    复制代码
    此类log是appium server内部log,出现频率最高,用于说明此时Appium server内部正在做什么(调用其他工具、创建会话等)。如果这里出错且无下面三类错误,那是appium server的错误。
    3、 Apple Instruments log(log内容中有额外时间戳。如果用.app看,log颜色为绿色):
    1. info: [debug] [INST] 2015-03-13 23:31:59 +0000 Debug: evaluation finished

    2. info: [debug] [INST] 2015-03-13 23:31:59 +0000 Debug: responding with:
    3. info: [debug] [INST] 2015-03-13 23:31:59 +0000 Debug: Running system command #1:
    4. /Applications/Appium.app/Contents/Resources/node/bin/node /Applications/
    5. Appium.app/Contents/Resources/node_modules/appium/node_modules/appium-uiauto/
    6. bin/command-proxy-client.js /tmp/instruments_sock 2,{"status":0,"value":true}...
    复制代码
    此类log为Instruments的log,Appium只是为了让大家方便查看而附在appium log里面。此类log出错请找Instruments。
    4、 Android UiAutomator log(以[UIAUTOMATOR STDOUT]或[BOOTSTRAP]开头):
    1. info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS: numtests=1

    2. info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS: stream=

    3. info: [debug] [UIAUTOMATOR STDOUT] io.appium.android.bootstrap.Bootstrap:
    4. info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS: id=UiAutomatorTestRunner
    5. info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS: test=testRunServer
    6. info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS: class=io.appium.android.bootstrap.Bootstrap
    7. info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS: current=1
    8. info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS_CODE: 1
    9. info: [debug] [BOOTSTRAP] [debug] Socket opened on port 4724
    10. info: [debug] [BOOTSTRAP] [debug] Appium Socket Server Ready
    11. info: [debug] [BOOTSTRAP] [debug] Loading json...<code></code>
    复制代码
    此类log为UiAutomator的log。其中[UIAUTOMATOR STDOUT]是启动UiAutomatorTestRunner的log,[BOOTSTRAP]是Appium装在被测设备上的BOOTSTRAP工具的log(由于UiAutomator必须在Android系统上运行,所以Appium做了一个特殊的UiAutomator的测试用例在被测设备上接收Appium命令并执行命令)。此处log出错请找UiAutomator(虽然BootStrap也是Appium的一部分,但一般是调用UiAutomator API时出错)。
    5、 Selendroid log(以[SELENDROID]开头):
    info: [debug] [SELENDROID] mSeq=0 mSystemUiVisibility=0x0info: [debug] [SELENDROID] mSystemDecorRect=[0,38][480,728] last=[0,38][480,728]此类log为Selendroid内部处理的log。此处出错请找Selendroid。
    3. 根据出错信息查询appium官方issue和讨论组以及testerhome(建议google前先看这些地方):issue:https://github.com/appium/appium/issues
    讨论组:https://discuss.appium.io/
    testerhome:http://testerhome.com/

    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    该用户从未签到

    2#
    发表于 2017-6-20 13:55:31 | 只看该作者
    我觉得后续有不同的错误,解决了后可以回复此帖就好了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
    发表于 2017-6-20 13:55:38 | 只看该作者
    我觉得后续有不同的错误,解决了后可以回复此帖就好了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2024-9-19 09:07
  • 签到天数: 11 天

    连续签到: 2 天

    [LV.3]测试连长

    4#
     楼主| 发表于 2017-6-20 13:58:00 | 只看该作者
    巴黎的灯光下 发表于 2017-6-20 13:55
    我觉得后续有不同的错误,解决了后可以回复此帖就好了

    好主意,欢迎各位遇到其它错误后在这里跟帖补充,让新手们更快学会自主解决问题。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-14 14:28 , Processed in 0.066235 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表