#11 楼 @kelequy 我们之前强推过一次,用于做无界面的服务端接口测试。feature 由业务测试写,代码由测试开发写。当时遇到的几个主要问题是 story 的风格不统一(不同人写的风格不一样,会增大后续测试开发编写代码的沟通成本和维护成本)、粘合代码编写成本较高(如果不用确保和 feature 对应,写起来能更快更爽)、维护比较麻烦(一旦有更改,feature 和代码都要调整,偶尔也会出现 feature 不用改,但代码要调整的情况)。
总的来说,当时活文档这个特性的带来的好处没太大感觉(测试报告中更直观地看出具体是哪个步骤出错?),但由于这个特性带来的编写速度慢、维护困难的问题倒是深有体会。
建议先去看下 appium 官方 sample 里面切换 context 相关的代码。你现在的用法是 selenium 的用法,和 appium 的有一些出入。
#6 楼 @junewang 目前能想到的你这边基本都汇总了。iOS 的 stf 现在也搞出了个类似 minicap 的工具,你可以了解下:
https://testerhome.com/topics/6470
另外,既然是比较汇总,能否做一下各个方式的性能评测,比较各种方式的截图速度、兼容性?这样能更方便以后大家根据需要选择更合适的方案。
方法不错,增强了 feature 文件的描述性。
但加了图片感觉维护工作量更大了,而且也还是没办法很好地说清楚大部分需求(例如针对 UI 的,点击 xx 按钮后不同状态应该有怎样不同的界面效果)。感觉目前 bdd 比较适合描述逻辑类的需求,这类需求比较适合通过纯文字描述。
目前接触的产品都比较喜欢用原型工具展示需求,界面与逻辑结合,表达的内容也是大家都相对能看得懂。BDD 的描述能力相比之下局限性还是比较大。
你们现在有在落地 BDD 吗?效果如何?
你设置了 browserName ,appium 有可能自动切换成了 webview context ,所以手势无效。
你 swipe 前切换成 native context 试试?
#113 楼 @yefnegjun 给你一个看安装包签名信息的方法:
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 ,即开发证书(也可以叫调试证书,目前没有官方中文译名)
#113 楼 @yefnegjun 建议你了解下 iOS 开发证书(iOS Developer)和 iOS 发布证书(iOS Distribution)的区别,开发应该也了解这个的。
instruments 对 app 签名有限制不是指必须加 udid(不加 udid 你的应用会闪退或者装不上),而是对打包时使用的签名证书有限制。 iOS distribution 证书签名是不行的。
where adb
看下 adb 路径,确认下你的 adb 是不是确实是你 android sdk 里面的那个adb
命令替换成你 android sdk 里面的 adb 绝对路径试试bash_profile 是 linux 或者 mac 用的,windows 不用这个。USB 序号这个应该是不加就不会显示在 adb devices 的列表里面的,你用的是模拟器,应该也没啥关系。
百度找到的方法都试过了吗? 重启 adb server ,重启手机,重启电脑。
#2 楼 @xiaoafeizt 我觉得你理解错了。 @Tank007 的答复是对的。
find_elements 和 find_element 虽然只是相差一个单词,但返回值类型是完全不一样的,所以用法差异也很大。
elements 无论 id 是否唯一都是返回 List 类型,List 里面的元素才是 MobileElment (暂且认为是这个名字。具体类型名字我也不大清楚),而 element 如果存在就返回第一个匹配的元素,类型为 MobileElement,不存在直接抛出异常。
你可以类比为 ["string"]
和 "string"
的区别。第一个是 elements 的返回值,第二个是 element 的返回值。
你这里是方法使用不对,只有 MobileElement 对象有 click,is_displayed 这些方法,list 没有。
#111 楼 @yefnegjun 使用条件和其它用 UIAutomation 运行的条件基本一致,要求 ipa 包必须是开发者调试证书签名。
你和开发确认下测试包用的是什么证书签名的吧。
屏蔽理由:同一时期同一公司的招聘贴麻烦合并到同一个帖子中。
同一时期同一公司的招聘贴麻烦合并到同一个帖子中。
#109 楼 @yefnegjun 这个是执行随机事件的,有可能是你界面跳转的按钮范围比较少所以随机点击的时候按到的概率比较低。
如果是为了尽可能遍历多的界面,你可以在论坛搜索下 appcrawler 这个遍历工具,可能更满足你的需要。
你说的是 toast 吗?