频道栏目
读书频道 > 移动开发 > 其他综合 > 移动App测试实战:顶级互联网企业软件测试和质量提升最佳实践
2.2.2.1 基于Instrument的iOS UI自动化
2015-08-13 14:37:57     我来说两句
收藏   我要投稿
《移动App测试实战:顶级互联网企业软件测试和质量提升最佳实践》由三位国内顶级互联网企业软件测试工程师联手打造,根据移动产品的特点,深入讲解了移动App测试的最佳实践,从移动互联网产品测试的准备工作到产  立即去当当网订购
2.2.2 iOS的UI自动化技术
 
关于iOS的UI自动化,这里结合实例介绍两个方面的内容,一个是基于Instrument的UI自动化,另一个是目前比较常用的Appium框架。
 
2.2.2.1 基于Instrument的iOS UI自动化
 
对于iOS的UI自动化,Instrument 提供了最基本的自动化测试功能。我们可以通过Automation工具实现基本的自动化测试需求。该工具支持真机和模拟器两种测试方式:
模拟器:执行速度快,无须证书, 测试门槛较低, 但对于一些特定功能如相机、跳转就无能为力了。
 
真机:App的所有功能均能自动化实现,但需调试证书,且执行效率低。
 
下面用一个示例介绍整个使用过程。
 
1. 开始使用Automation
 
下面我们以Xcode 6为例, 介绍使用Automation的步骤。
 
1)选择要测试的target, 选定要编译安装的平台,若在真机上测试就选择真机设备,同时指定好调试证书及对应的provision文件。若在模拟器上测试就选择模拟器环境,我们这边指定iPhone6模拟器,如图2-27所示。
 
2)在刚才选择界面,点击Edit Scheme,指定Profile选项以Debug模式编译,点击关闭,如图2-28所示。
 
3)点击Product菜单下的Profile选项来编译项目工程,如图2-29所示。
 
 
 
 
4)等待编译完成后,弹出Instrument界面,选择Automation,如图2-30所示。
 
 
5)系统自动选择模拟器中的测试App,如果要改成真机运行,修改界面上方的测试平台至真实设备,选择相应的App即可,如图2-31所示。
 
2. 录制脚本
 
我们可以通过录制的方式生成测试脚本,切换到Script界面,点击下方的录制按钮,App在模拟器中就启动了,我们对App的操作,就会被自动录制成回放脚本,录制完成后,点击终止按钮,结束录制。点击运行按钮,就可以执行回放刚才录制的操作了,如图2-32所示。
 
 
 
3. 编写自己的脚本
 
录制的方式虽然很方便,但是缺乏灵活性。大多数时候,我们需要自己编写脚本。我们的测试App是一个很简单的登录界面,输入用户名panxiaoming,密码:Ilovetest,就会登录成功,弹出一个欢迎界面,如图2-33所示。
 
 
如果输入错误的密码,会提示错误信息,如图2-34所示。
 
 
输入正确的密码,提示欢迎信息,如图2-35所示。
 
 
我们可以通过logElementTree的方法查看App的UI元素布局。点击运行,在Editor Log界面中查看这些UI元素,如图2-36所示。
 
 
Editor Log很有用,在这里可以查看脚本中所有的log信息以及断言结果,同时它会自动记录点击操作和一些其他的操作,同时还有截图,方便查看。
 
于是我们就可以编写一个正常登录的测试脚本,脚本如图2-37所示。
 
执行结果如图2-38所示。
 
我们看到在自己编写的脚本中加入逻辑和判断,使得脚本的可靠性更强,同时log信息可以帮助我们去分析定位问题,这种方式要比简单录制强上不少,脚本的语句类似JavaScript,可以到苹果官网查看具体语法和API,网址为:
 
(https://developer.apple.com/library/mac/documentation/DeveloperTools/Conceptual/InstrumentsUserGuide/UsingtheAutomationInstrument/UsingtheAutomationInstrument.html)。
 
4. Automation的高级用法
 
我们完全可以通过shell脚本去驱动执行Automation的测试用例, 通过定时执行shell脚本来完成我们的自动化测试任务,具体方法如下:
 
instruments -t <automationTracetemplate路径> <模拟器App路径> -e UIASCRIPT <testcase路径>
 
我们只需要在自动化测试代码中使用performTaskWithPathArgumentsTimeout的方法把断言执行结果通过shell脚本写到外部文件中,就可以查看所有case的执行结果了。
 
5. Automation的总结
 
Instrument的Automation总体来说还是比较强大的,首先它不需要对App作任何修改、插桩,保证了App的原生功能。其次对iOS的控件支持非常好,同时支持暂停、截图等一系列功能,基本上能够满足我们对自动化测试的需要。不过它也有不少缺点,首先它没有case管理概念,其次是它的扩展性不是很好,还有就是它的执行经常会中断。
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:2.2.1.4 基于图像识别的自动化测试
下一篇:2.2.2.2 自动化测试框架之Appium
相关文章
图文推荐
排行
热门
最新书评
特别推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站