• 从踢弟弟到逼弟弟 at December 23, 2016

    #11 楼 @kelequy 我们之前强推过一次,用于做无界面的服务端接口测试。feature 由业务测试写,代码由测试开发写。当时遇到的几个主要问题是 story 的风格不统一(不同人写的风格不一样,会增大后续测试开发编写代码的沟通成本和维护成本)、粘合代码编写成本较高(如果不用确保和 feature 对应,写起来能更快更爽)、维护比较麻烦(一旦有更改,feature 和代码都要调整,偶尔也会出现 feature 不用改,但代码要调整的情况)。

    总的来说,当时活文档这个特性的带来的好处没太大感觉(测试报告中更直观地看出具体是哪个步骤出错?),但由于这个特性带来的编写速度慢、维护困难的问题倒是深有体会。

  • WebDriverAgent 踩坑记 at December 21, 2016

    #69 楼 @jira 嗯,应该是这个。

  • swipe 不能用 at December 21, 2016

    #17 楼 @lihaiye 你找下获取当前 context 的函数。。。这个顺序是固定 NATIVE_APP 排在第一位的,和你当前在什么 context 没啥关系。

  • WebDriverAgent 踩坑记 at December 21, 2016

    #66 楼 @jira 它源码是 ruby 写得,不过那句命令是外部调用的,有开发经验应该能很快找到。命令名称我之前发过给你了。

  • swipe 不能用 at December 21, 2016

    #14 楼 @lihaiye
    你要确认下你执行 swipe 前处于什么 context 。chromium 是浏览器,走的也是 selenium。swipe 这些只有处于 native app 这个 context 才能用

  • WebDriverAgent 踩坑记 at December 21, 2016

    #64 楼 @jira 你查下 crashmonkey4ios 源码?就是一个命令,具体是啥命令我也忘了

  • swipe 不能用 at December 20, 2016

    建议先去看下 appium 官方 sample 里面切换 context 相关的代码。你现在的用法是 selenium 的用法,和 appium 的有一些出入。

  • swipe 不能用 at December 20, 2016

    #11 楼 @lihaiye 你代码里哪里切换了 native context ?我只看到你获取了 contextNames ,但没做切换啊。

  • #6 楼 @junewang 目前能想到的你这边基本都汇总了。iOS 的 stf 现在也搞出了个类似 minicap 的工具,你可以了解下:

    https://testerhome.com/topics/6470

    另外,既然是比较汇总,能否做一下各个方式的性能评测,比较各种方式的截图速度、兼容性?这样能更方便以后大家根据需要选择更合适的方案。

  • 从踢弟弟到逼弟弟 at December 20, 2016

    方法不错,增强了 feature 文件的描述性。

    但加了图片感觉维护工作量更大了,而且也还是没办法很好地说清楚大部分需求(例如针对 UI 的,点击 xx 按钮后不同状态应该有怎样不同的界面效果)。感觉目前 bdd 比较适合描述逻辑类的需求,这类需求比较适合通过纯文字描述。

    目前接触的产品都比较喜欢用原型工具展示需求,界面与逻辑结合,表达的内容也是大家都相对能看得懂。BDD 的描述能力相比之下局限性还是比较大。

    你们现在有在落地 BDD 吗?效果如何?

  • swipe 不能用 at December 20, 2016

    你设置了 browserName ,appium 有可能自动切换成了 webview context ,所以手势无效。
    你 swipe 前切换成 native context 试试?

  • swipe 不能用 at December 20, 2016

    #6 楼 @lihaiye 先调整下排版,太乱了。。。

    参考下回帖框右下角的 “排版说明”

  • #8 楼 @Chary 你手机型号是啥?

    装个豌豆荚之类的,看下能不能连接到你的手机?

  • CrashMonkey4iOS 试用过程总结 at December 19, 2016

    #113 楼 @yefnegjun 给你一个看安装包签名信息的方法:

    1. 如果是 ipa 文件,先解压,然后找到 Payload/xx.app 文件(夹)。其中 xx 对应替换回你的应用名称,不过正常这个 Payload 文件夹里面只会有一个 .app 的文件(夹)
    2. 执行命令 codesign -dvvvv path/to/xx.app,就可以看到签名信息。

    例如:

    $ codesign -dvvvv temp/Payload/ToDoList.app
    Executable=/Users/hengjiechen/Develop/iOS/develop/IOSTutorial/ToDoList/temp/Payload/ToDoList.app/ToDoList
    Identifier=chj.ToDoList
    Format=app bundle with Mach-O universal (armv7 arm64)
    CodeDirectory v=20200 size=1176 flags=0x0(none) hashes=50+5 location=embedded
    OSPlatform=37
    OSSDKVersion=590080
    OSVersionMin=458752
    Hash type=sha1 size=20
    CandidateCDHash sha1=8534c429ec4269909c65778970316e7e9d610e51
    Hash choices=sha1
    Page size=4096
    CDHash=8534c429ec4269909c65778970316e7e9d610e51
    Signature size=4350
    Authority=iPhone Developer: Wei Feng Hou (RGR96FVT75)
    Authority=Apple Worldwide Developer Relations Certification Authority
    Authority=Apple Root CA
    Signed Time=11 Dec 2015, 12:26:52 AM
    Info.plist entries=31
    TeamIdentifier=VN295HN9LJ
    Sealed Resources version=2 rules=12 files=61
    Internal requirements count=1 size=172
    

    Authority=iPhone Developer: Wei Feng Hou (RGR96FVT75) 这里就说明了签名的证书是 iPhone Developer ,即开发证书(也可以叫调试证书,目前没有官方中文译名)

  • CrashMonkey4iOS 试用过程总结 at December 19, 2016

    #113 楼 @yefnegjun 建议你了解下 iOS 开发证书(iOS Developer)和 iOS 发布证书(iOS Distribution)的区别,开发应该也了解这个的。

    instruments 对 app 签名有限制不是指必须加 udid(不加 udid 你的应用会闪退或者装不上),而是对打包时使用的签名证书有限制。 iOS distribution 证书签名是不行的。

    1. where adb 看下 adb 路径,确认下你的 adb 是不是确实是你 android sdk 里面的那个
    2. 如果不是,adb 命令替换成你 android sdk 里面的 adb 绝对路径试试

    bash_profile 是 linux 或者 mac 用的,windows 不用这个。USB 序号这个应该是不加就不会显示在 adb devices 的列表里面的,你用的是模拟器,应该也没啥关系。

  • 百度找到的方法都试过了吗? 重启 adb server ,重启手机,重启电脑。

  • WebDriverAgent 踩坑记 at December 19, 2016

    #62 楼 @jira 有的,处理方式参考的是 CrashMonkey4iOS ,用一个 idevicedebug 命令让指定应用恢复前台。我当时为了简单,每隔 10 个事件就调用一次这个命令。

  • #2 楼 @xiaoafeizt 我觉得你理解错了。 @Tank007 的答复是对的。

    find_elements 和 find_element 虽然只是相差一个单词,但返回值类型是完全不一样的,所以用法差异也很大。

    elements 无论 id 是否唯一都是返回 List 类型,List 里面的元素才是 MobileElment (暂且认为是这个名字。具体类型名字我也不大清楚),而 element 如果存在就返回第一个匹配的元素,类型为 MobileElement,不存在直接抛出异常。

    你可以类比为 ["string"]"string" 的区别。第一个是 elements 的返回值,第二个是 element 的返回值。

    你这里是方法使用不对,只有 MobileElement 对象有 click,is_displayed 这些方法,list 没有。

  • WebDriverAgent 踩坑记 at December 19, 2016

    #60 楼 @jira 当时做得很简单,就是两个随机事件:click 和 swipe,然后每个事件的具体坐标随机生成。

  • CrashMonkey4iOS 试用过程总结 at December 19, 2016

    #111 楼 @yefnegjun 使用条件和其它用 UIAutomation 运行的条件基本一致,要求 ipa 包必须是开发者调试证书签名。

    你和开发确认下测试包用的是什么证书签名的吧。

  • 屏蔽理由:同一时期同一公司的招聘贴麻烦合并到同一个帖子中。

  • 同一时期同一公司的招聘贴麻烦合并到同一个帖子中。

  • CrashMonkey4iOS 试用过程总结 at December 18, 2016

    #109 楼 @yefnegjun 这个是执行随机事件的,有可能是你界面跳转的按钮范围比较少所以随机点击的时候按到的概率比较低。

    如果是为了尽可能遍历多的界面,你可以在论坛搜索下 appcrawler 这个遍历工具,可能更满足你的需要。

  • 你说的是 toast 吗?