• 你用的是 drozer-agent-2.3.4.apk 这个 apk 是吧?
    文档里的 package 名称是错的,正确的应该是com.mwr.dz
    你可以在安装并启动 app 后用下面的命令获取当前显示的 app 的报名和 activity 名称(用于 linux 或 mac,windows 的话应该是把 grep 换成 findstr):

    $ adb shell dumpsys window windows | grep mFocusedApp
      mFocusedApp=AppWindowToken{5294c5d4 token=Token{52957184 ActivityRecord{529570d4 u0 com.mwr.dz/.activities.MainActivity t2}}}
    

    其中com.mwr.dz是包名,.activities.MainActivity是 activity 名称。

  • UIAutomator 2.0 发布了 at March 13, 2015

    谢谢分享!

    大致看了一下官方文档的更新,大致内容是把 Android 的自动化测试工具合并成了一个 Testing Support Library(包含在最新的 Android Support Repository 中,可在 SDK Manager 里面下载安装),里面包含 AndroidJUnitRunner(一个 Junit test runner,Android 2.2 (API level 8) or higher), Espresso(UI 测试框架,可用来做单个应用的功能测试,偏向白盒,Android 2.2 (API level 8) or higher), UI Automator(UI 测试框架,可用来做跨应用的功能测试,偏向黑盒,Android 4.3 (API level 18) or higher)。

    PS: 那个短连接我老是打不开,补充一个长连接:http://developer.android.com/tools/testing-support-library/index.html

  • 额,我觉得你需要的是系统学习一下 xpath 这门语言……
    可以去维基百科看看:http://zh.wikipedia.org/wiki/XPath

    xpath 说到底就是一个在 xml 文档中定位 xml 元素的语言。用 index 虽然方便,但适应性很弱(上面这么多层,某一层变了你就悲剧了)

  • #21 楼 @tester_felix

    1. 源码环境和运行环境区别:源码环境需要从源码安装(废话),因此需要按照很多依赖库(seledroid,node.js 的依赖库等等),组建时间较长且需要修改某些系统设置,使用目的是进行 appium 的开发/源码学习。运行环境则主要是用 apppium 来测试手机应用,重点在使用 appium,希望安装依赖库这类问题越少越好(所以用 exe 或者.app 是最简单的,而且还能随时切换版本)。当然,源码环境也可以做运行环境。

    2. appium for ios 的资料确实不多,你可以参考官方文档(github 的或者官方网站的),官方讨论区 (https://discuss.appium.io/) 等,testerhome 也有不少好文的,你也可以搜索一下。总的来说,appium 作为 ios 和 android 通用的框架,大部分地方都是通用的,但有些特有的地方(如应用签名、使用 ios predicate)需要通过学习一些 ios 开发知识来补充(我也正在学习中)。

    3. 如何入门 appium:我的入门方法:自己搞个简单 app(学习应用开发),通过官方 sample-code 学习编写简单的脚本(学习 webdriver API),学习其他流行的移动开发框架(了解某些地方 appium 为何如此设计/如此使用,共有的就是最需要学习的),测试自己开发或市面现有的复杂 app(了解如何测试一个实际应用。实际应用总会有各种自定义控件,学习测试自定义控件才是落地的)。

    最后说一点:国外网站大多是英文,所以英文水平也是必备的。每次学习到一个知识点最好写一篇博客/帖子记录一下,一方面方便后面自己查阅,另一方面也是知识库储备。

  • 非常赞同。
    我一般遇到问题先 google,再 stackoverflow,然后源码(能拿到的话),最后提问(或者报 bug)。

  • ok,解决了就好。😄

  • 这个不大清楚哦。目前看到的文档只提到支持 chrome 或者基于 chrome 内核且可被 chromedriver 驱动的浏览器。
    你可以试试。
    话说你要测的到底是在浏览器里用的 web app 还是内置浏览器的 hybrid app?

  • #2 楼 @lit7tlemk 不好意思,我可能是理解错了。你想问的是不是 appium 要怎样和已经启动的 Genymotion 虚拟机取得连接?
    这个不需要额外配置的,appium 会自动通过 adb 寻找设备的。你出错是因为你在 appium 里多配了 avd 的参数,导致 appium 启动 avd 出错了。

  • #6 楼 @lihuazhang 刚刚细看了一下,好像是理解错了。。。

  • @lihuazhang 他想问的应该是怎么像启动 avd 那样让 appium 在启动时自动启动 Genymotion 吧?appium server 有个参数可以在 appium server 启动时自动启动指定的 avd 的。

  • 差不多这个意思。
    在这个 appium 的 app 里面是没有可以启动 Genymotion 的选项的(Genymotion 不是 google 官方的,要支持它 appium 需要额外做一些事情,所以 appium 没有做这部分的支持)。你应该通过别的方法先启动 Genymotion 虚拟机(如手动打开、写 shell 脚本),再启动 appium。

  • appium 不支持自动启动 Genymotion 虚拟机吧。你可以另外写脚本来启动 Genymotion 。

    另外,请加头像。

  • @zuoan 昨天 review 文档翻译刚好看到这一句:

    在不编译 Chromium 的情况下,不可能得到模拟器上的 x86 版本的 chrome。你可以运行一个 ARM 的模拟器然后从真机上获取一个 Chrome 的 APK 安装在模拟器上。

    建议你用 arm 的模拟器吧。。。

  • ruby china 貌似是有 android 和 iOS 的 app 的。可以在它们的基础上做。

  • appium-ios 自动化入门 at March 10, 2015

    写得不错!手把手入门了。
    话说为啥大伙的运行环境都喜欢用 npm 安装 appium ? 总觉得 npm 安装依赖项很多,容易出现各种坑,而且会影响其他 node.js 项目。用 dmg 里面的 app 或者 exe 就简单多了。

  • 测试和洗衣服的类比 at March 10, 2015

    最后那句吐槽必须赞!不过还是得拆开洗衣机看看里面构造,以后挨骂也能搞清楚是自己责任还是洗衣机的错。 😄

  • @emily 额,你这个不是搭建源码环境,而是搭建运行环境,所以我就不附到帖子里面了。

  • @doctorq 我明白。我的意思是我们翻译后的文档是否都要统一加上 cn?
    如果统一加上的话,就必须对所有链接到其他文档的链接进行修改,因为文件名不一样了。
    个人建议用回原来的名字,不加 cn,理由就是 README.md 不能加 cn,为了保持统一全部都不加好了。

  • @doctorq 所有中文文档的名称是否需要加 cn?如 README.md 翻译后文件名改为: README.cn.md

  • @lihuazhang 你的意思是第 4 步 rebase 里面的 upstream 要添加 remote 连接到 testerhome 或者 appium 官方 ?我是通过 github 网页来做 fork 和 pull request 操作的。
    @shixue33 你试试 github 的 windows 客户端能不能完成上面的操作?可以的话就没问题。

  • @Monkey @lihuazhang @seveniruby @doctorq &各位了解 github 贡献流程的童鞋麻烦看看这个流程有没有问题?