iOS自动化测试系列:iOS测试入门杂谈
作者:王劲松 2016-07-25 {{allComments.length}} 64206 干货分享一、入门硬件DIY
1. Mac电脑(必须)
对配置有一定要求,内存要双核4G以上,CPU要intel5~intel7以上。
有三种选择:1. Mac一体机;2. Mac笔记本,分MacBook Pro和Mac Book Air,我们最好选择Pro,性能要好些;3.Mac mini,苹果主机。产品信息大家上网自行查找,可以根据自己的实际需求自行选择。不建议使用黑苹果或者虚拟机。
2. iPhone或者iPad
要进行真机调试,所以需要iPhone或者iPad设备。最好是一台越狱的设备,就不用开发者证书了。最好要有源代码。
二、软件准备
1. Mac OS X系统10.8.X以上(必须)
截止2016年1月14日,最新Mac最新版本是10.11.1,Mac系统更新一般都是在appStore在线更新即可。
2. Xcode5.0以上(必须)
Xcode是iOS开发工具,自带集成了很多自动化测试小工具,如Instruments(可提供查网络、电量、cpu等功能),自己写的demo或者Instruments工具都要在Xcode上运行,现在最新的版本到7.2(截止2016.1.14),UIAutomation在Xcode4.5以后就集成了录制功能,所以不建议用老版本。并且旧版本的Xcode在真机调试时很容易出现编译问题。比如自己设备是iOS8,那么必须要用Xcode7.0才可编译通过(前提要求Mac系统也要更新到最新版本10.11.1,否则Xcode安装不成功)。
3. 开发者证书+密钥(或者企业级证书)
一般单位都提供开发者证书,只要将自己的测试设备加在证书里即可,一个证书可以加200个手机(或者pad),也可以去淘宝买一个盗版的开发者证书,才50¥每年。
4.Python2.5-2.7版本(系统自带)
最好不要用3.x版本的,因为语法改动比较大,可能会出现和你系统不兼容的情况。曾有人做安卓自动化时monkeyrunner部署不上,就是这个原因。
5.TuneUp(必须)
与前几个工具都是在苹果官方AppStore下载不同,TuneUp是自动化测试的一个开源软件,用于批量执行写好的脚本,收集logs,堆栈信息等。
推荐下载地址:https://github.com/alexvollmer/tuneup_js
6. FruitStrap(必须)
虽然现在iOS7和最新的iOS8的用户居多,但旧的系统也会存在,我们写的脚本不可能操控iOS所有系统的app,所以要用到FruitStrap去兼容不同版本。
在网上搜索”itools ipa“会出来苹果装机助手提供的ipa文件,是苹果公司自己将app打包成了ipa文件,如果是越狱的手机可以直接安装。但开发提供的版本一般不会是ipa文件,而是release(签名正式发布的)下的app,(debug(调试的)下也有app文件,但一般用于他们自己调试程序)。苹果的app必须要有证书才能安装,这样可以杜绝盗版病毒。苹果很注重维护版权,审核特别严格,比如发现app上有世界杯篮球比赛的视频,那么必须要有相应的授权书才可以通过。
7.淘宝Athrun&&InstrumentDriver
淘宝自己封装的开源自动化测试框架特别有名,是对Instruments又封装了一遍,全是用java写的。推荐地址:http://code.taobao.org/p/athrun/src/。
8. SubLime(一种文本编辑器)
苹果专有的文本编辑器,直接AppStore下载即可,可以树状的查看代码结构。比如在Instruments编辑框写完脚本后,调试要导出时,可以用这个查看。
三、xcode和instruments
1. Xcode5.X和Instruments体验
Xcode是苹果公司推出的强大集成开发工具,并支持C语言,C++,Fortran, Objective-C, java、Python及Ruby,提供Cocoa,Carbon及java下的编程框架和模型,使用GDB作为后台调试工具,从Xcode3.1开始,可用作iOS的开发工具,目前只能运行再Mac OS X平台下,无Windows版,现在最高版本到7.X。
Instruments是Xcode自带的自动化测试工具,能记录整个应用程序的运行情况,并将所有信息按照时间顺序并排的呈现出来,让我们可视化的对比分析各种指标。
Instruments包含了一下六类分析工具:
1) 用户事件:追踪用户交互动作的精确事件,如鼠标点击等。
2)CPU和进程:监视系统活动、采样、负载图表和线程。
3)内存:跟踪垃圾回收、对象分配和泄露。
4)文件活动:监视磁盘活动,读写和文件锁。
5)网络活动:衡量并记录网络流量。
6)图形:解释openGL驱动的内在工作。
下面介绍打开Instruments的步骤:
准备工作:
1.实现准备好一个工程项目(最好有源码),本例中使用的是自己写的一个Demo:demo_hello;
2. 如果要进行真机调试,所以需要iPhone或者iPad设备,最好是一台越狱的设备,就不用开发者证书了:
Step1:启动Xcode,打开目标project;
Step2:启动Instruments,有三种方法:
l 在状态栏中选Xcode(要在窗口中选中Xcode)->Open Develop Tools->Instruments;
l 在Dock中,右键点击Xcode->Open Develop Tools->Instruments;
l 长按Xcode操作面板的run键,选Profile ;
Step3:Instruments中集成了多种自动化测试工具,界面(Xcode 7.0版本)及常用工具介绍如下(不同版本界面会有差异):
2. UIAutomation体验
是Instruments中集成的测试UI界面的自动化测试工具。
Step1:(接上面Instruments工具的使用)在Instruments面板中,选择Automation工具:
Step2:在UIAutomation中选中项目“demo_hello”和调试设备,图示是模拟器,大家也可以真机调试;
Step3:在控制面板中,切换至Script模式,点击 x 开始录制,操作模拟器(或真机设备),脚本会自动记录下来;
Step4:在脚本点击事件中加入延时代码,代码可参照Instruments User Guide;UIATarget.localTarget().delay(2);
Step5:点击,可以在Trace log中查看运行日志:
注:Instruments User Guide推荐阅读地址:
3. Sublime(文本编辑器)体验
(接上操作)UIAutomation形成的脚本都要从上图的调试窗口保存到Sublime中编辑存档。
4. Terminal(终端)体验
在图形界面下,可在Dock或Finder中依次打开"Application(应用程序)"->"Utilities(实用工具)"->"Terminal( 终端)"即可进入,与Windows中运行"cmd"打开的命令行界面类似,记住常用操作即可:
pwd:显示当前目录的路径名;
ls:显示当前目录的内容;
cd:转到用户指定目录下;
mkdir:简历新目录;
cp:copy文件;
mv:移动文件夹;
rn:删除指定文件或文件夹;
top:显示当前的系统状态,包括内存使用率,CPU使用率,虚拟内存使用情况,网络流量统计等。相当于windows的任务管理器。
还有很多,以后课程中用到,会给大家介绍。
如果你看的意犹未尽,如果你想随时随地充实自己,请扫描以下二维码,关注我们的公众账号,可以获取更多技术类干货,还有精彩活动与你分享~