刚接触 IOS 自动化测试,工作需要,摸索了一阵,终于可以测试 IOS 了,开始写用例发现,完全是坑
2.环境搭建成功,用 appium 的 inspect 查找控件,一个界面,恨不得 10 分钟才出来
3.公司的开发,应用的控件所有都没有 unique accessibility locators ,我能用的只能是 name,xpath,xpath,两个都设计到多个情况,还要去判断到底是第几个。。。。
4.作为一个急性子,脚本执行的耗时,真是让人奔溃。。。。
真的心累,完全感觉这个功能是鸡肋。。。
哪个大神,看到求解惑
那你用啥来搞自动化呢
搭建环境什么的,不是 appium 的问题吧。定位方面的问题,可以协商推动解决,UI 自动化投入的成本和收益在做之前就要做评估,这个也是提前做好的功课,楼主不如静下心来好好思考思考。
UI 自动化投入的成本和收益在搞之前就要弄清楚。
当然,仅仅是为了学习自动化的话,appium 还是挺不错的
目标不明确啊,建议可以先试试 fastmonkey 投入低成本
https://testerhome.com/topics/9524
你应该推动开发完善 app 控件命名问题。自动化最好用在已经稳定的项目上。当你每天都要手动重复操作同一个动作几百次的时候,就会觉得有必要了。。
可以先研究做出来,做技术储备。实际应用应该很少。
有可能是我环境搭建的有问题吧,第一次踏入 iOS 领域,我的负面情绪爆棚了,inspect 控件的时候各种问题,频繁弹让刷新界面,dump 出来的界面,选控件还是错的,个人对当前需求自动化测试是否必须做也是充满疑惑,以前一直从事测试工具开发的工作,欠缺测试的经验,考虑到一直没有测试的经验,当前相当于转行自动化测试岗位,不能领会项目测试的同事的痛点,仅仅根据导师的需求,就开始写测试脚步,没有自己动脑思考,对自动化测试很多工具也没有了解,感谢回复我的朋友,感恩!!!
如果你这么嫌弃 APPIUM 的话,可以试试 xcode 自带的 UItest。
只做 iOS 自动化可以看看 KIF 或者 Earlgrey,完全基于 iOS XCTest 的第三方 UI 自动化,没有那么多的搭建环境,但是你要会 oc 语言,Appium 适用性更广,iOS,安卓,hybrid 都能搞,只是感觉在 iOS 上 Appium 有点慢,有些方法都不好用
最近也有点 哀怨 appium 了,做 ios UI 自动化真是好费劲啊,整体感觉环境繁琐 笨重,唉,同求有好的 替代品呗
是的;想做 iOS 的 UI 自动化测试,公司主要的 APP 已经很成熟了;找了一个 appium 的框架在写执行脚本进行测试;语言是 java,发现最难的不是用例的编写;是寻找控件的时候各种出错,要不找不到,要不直接乱找,速度还特慢,找一个控件;我用的直接是 xpath;发现底层对 xpath 的支持非常不友善。。。。感觉直接用 iOS XCTest 会速度快很多,试过用 iOSNsPredicateString 就定位特别快,所以现在在学 OC。。。。也不知道能怎样;公司没啥要求,就是自己现在在瞎弄的状态;没事干总想学点啥,目前就这样学着呗,走一步看一步
首先需结合自身情况,确定是否有人力和时间付出大量成本去维护和调试 产品迭代 UI 变更所带来的自动化用例变更甚至扩展、重写等。 如果成本跟不上很可能出现 初版 ui 自动化实现后续无人力做高迭代维护造成自动化效率低致废弃。
不如退而求其次 优先实现类似 android monkey 高收益性自动化工具。抓住减少崩溃率这样一个重点为目标。
实际上过往的经验,实现用例的 ui 自动化未必能发现什么产品上的 bug,仅仅是替换高重复性工作可能还有些价值。
appium 底层是用的 facebook 那套 wda 协议,其实可以理解 wda 是基于 xctest 做各种包装,然后 appium 在 wda 基础上做包装一遍。同时他还使用 b/s 模式 做了多余的网络请求 应答这种机制。造成自身速度慢。也因为这种机制 appium 可以很好的适用 android ios web 等多套平台。 说到底就是自己做的事请太多过于臃肿。
xctest 本身不直接支持解析 xpath 查询。而是借用 iosnspredicatestring 查询 然后做 search 筛选等操作,效率上降低了。
如果是学习 建议详细阅读 facebook 的 wda(macaca 的 xctestwd 同理)以及 xctest 官网 api,同时 google 私有 api。 从而打造适合自己项目的高效率自动化工具
谢谢大神来指点我,还是想再请教一下,请问 OC 这门语言对于做 iOS 自动化是否有必要系统学习?还是等到碰到了要用的时候再去学对应相关的就可以?现在毕业一年,有点迷惘的是貌似做测试要学很多东西,包括 jmeter 也学过,但是几乎都是浅尝辄止的状态;广而不精,很想精一门,但是在平常工作过程中还是会碰到需要去学习其他的东西,分散了注意力;请问是否有必要?怎样才能精一门干下去
14 楼大神已经说得很好 我再说个 appium 里面复杂的 session 机制 会在使用上出现两个问题
1.没有可插拔性 重连 appium 的同时也需要重新初始化 app
2.单一线程 不能一个 appium 同时执行多台手机
但是直接连接 wda 又因为 iproxy 只能转发本地端口不能把手机转发到局域网
所以我自己写了转发模块 楼主可以考虑 考虑
谢谢
请问你用 iOSNsPredicateString,是怎么来处理层级关系的呢?我也刚开始用这个 iOSNsPredicateString