- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
iOS开发教程:iOS UI自动化测试iOS开发教程:iOS UI自动化测试
iOS开发教程:iOS UI自动化测试
一、关于iOS UI自动化测试?
要测试一个已成型的应用,从用户所见的角度来做自动化收益还是比较高的。
目前了解的UI测试方法分为两类,一种是iOS4提供的UI Automation,一种是把测试代码注入到应用中。
1)iOS4的UI Automation
用JavaScript驱动在应用上模拟用户行为,由 Instruments的Automation工具执行。具体的可以参考这篇文章在iOS 4 中实现UI自动测试,操作很简单,先编写自动化测试的Javascript文件,在Automation工具中选择这个文件,选择测试的target(模 拟器和真机都可以),然后点Record(这个名字起得很坑爹,我一度以为它支持录制,像Selenium一样转化为js代码呢),此时会运行所选的应用 同时自动化脚本也开始运作了。
API可以在SDK Developer Document里找到,主要的是UIAElement、UIAElementArray、UIALogger这几个。但是API不是很完善,比如我要得 到整个elementTree可以通过UIATarget.localTarget().logElementTree()得到,但是没有API能获取所 有的Element,获取Element只能以获取子控件的形式一级一级查找,最后的代码可能就会变成这样:
window.tableViews()[0].cells()[1].buttons()[2].tap();
即使可以通过button的name直接找到这个button也需要写成这样:
window.tableViews()[0].cells()[1].buttons().firstWithName(search);
非常难看难维护。我尝试遍历一个view上的所有控件整整运行了两分钟。
另外推荐一个测试框架,Working with UIAutomation这篇文章中提供了tuneup_js这样一个框架,封装得非常简单,除了没有before after之类的封装外对我来说暂时已经够用了(需要每个case执行完后或者执行开始前恢复默认状态,不过这个很容易实现),可以参考。
2)测试代码注入到应用代码中
大致的思路是,新建一个测试的target,在 applicationDidFinishLaunching最后创建一个测试对象,这个对象封装在测试的代码中,那么此时这个target就是应用+测 试的新的东西了,安装后可以看到应用一直在模拟用户行为,也就是测试代码在运行。
这种测试方法其他部门的同事在研究,这里可以介绍几个测试框架:
FoneMonkey,这是我最早接触的iOS自动化框架,支持录制回放,但是不知道怎么对结果做验证。如果仅仅是录制回放的话,UI Recorder已经挺好用了。
Bromine,这个框架还不错,封装到最后只需要填几个Plist就可以完成testcase,只是不方便扩展,可以模拟用户行为无法做数据验证,同事基于这个框架在做定制,想法是做成C/S模式,这样如果server端没有发送请求测试就不会进行。
Google Toolbox for Mac (GTM),Google的一个开源项目。GTM + TestMerge.app = UI testing bliss据说也是类似的思路。
总结存在的问题:
iOS4的UI Automation有一个硬伤,就是4.0以下iOS不支持,这对自动化来说是打点折扣的。但是既然是Instruments的工具,不知道能否和其他 工具一起使用,比如用leak检测内存泄露,比如用UI Recorder记录操作,然后回放到低版本的iOS设备或者模拟器上,可行性没了解过。
第一种方案使用Javascript,相对第二种方案的Objective C上手还是要简单一些。
需要解决的问题还有,如果应用crash,测试就不能继续了。如果crash后重跑下一个case,那就不能有case之间的耦合。如何重新运行app有待研究。
另外以上两种方案最后都要做到可持续集成,第一种方案需要做的是把 build app、run app testcase、generate testresult整个流程串起来,Automation这个工具提供可以测试报告,Instruments可以Shell运行,是否可行还需要研究, 如果行不通的话可以尝试用Apple Script运行;第二种方案难点在于如何生成报告,需要把测试的log重定向到某个文件输出,这也是他们准备做成C/S结构的原因之一,可以在 server端直接得到测试结果。
PS:如果测试的不是客户端而是web应用的话
您可能关注的文档
- HSE-XQDS-P-0001HSE-XQDS-P-0001.doc
- HSE专项方案HSE专项方案.doc
- HSE体系推进知识问答HSE体系推进知识问答.doc
- HSE体系知识题库最终版参考解答HSE体系知识题库最终版参考解答.doc
- HSE体系评估领导访谈方法和技巧HSE体系评估领导访谈方法和技巧.doc
- HSE作业指导HSE作业指导.doc
- HR必备法律知识及风险防控HR必备法律知识及风险防控.doc
- HSE作业指导书.doc436HSE作业指导书.doc436.doc
- HSE体系审核关键项HSE体系审核关键项.doc
- HSE作业指导书2011-A1HSE作业指导书2011-A1.doc
- IPO路演PPT-云计算供应链管理方案商E2openIPO路演PPT-云计算供应链管理方案商E2open.docx
- iPad维修指南iPad维修指南.doc
- ISO22000基础知识试题ISO22000基础知识试题.doc
- ISO19001外审使用的审核检查表 第 页 共 页ISO19001外审使用的审核检查表 第 页 共 页.doc
- ISO14000环境质量ISO14000环境质量.doc
- IMX283学习笔记 - 10月更新IMX283学习笔记 - 10月更新.doc
- ISO14001审核员试题及答案3ISO14001审核员试题及答案3.doc
- ISO9000介绍ISO9000介绍.doc
- ISO9000基础知识ISO9000基础知识.doc
- ISO9001-2008内部审核ISO9001-2008内部审核.doc
最近下载
- 2023年06月国家国防科技工业局核技术支持中心社会招考聘用笔试历年难、易错考点试题含答案解析.docx
- 人教版七年级上册英语单词表2115.pdf VIP
- 台达 VFDB4132系列刹车模块说明书.pdf
- 河南省郑州市外国语学校2025-2026学年高三上学期第三次阶段检测语文试题(含答案及解析).docx VIP
- 中国马克思主义与当代知到智慧树期末考试答案题库2024年秋北京工业大学.docx VIP
- 2024最新不予立案通知书.doc VIP
- 工业网络技术教材PPT10 Modbus TCP通信及应用.pptx VIP
- 2025年中国亚克力镜面板市场调查研究报告.docx
- 账号内容打造方案.docx VIP
- 锋芒全系列笔记低吸有道系统课程.pdf VIP
原创力文档


文档评论(0)