iPhone App自动化测试工具总结
无线客户端的发展很快,特别针对是android和ios两款无线操作系统的客户端应用,相应的测试工具也应运而生,这里主要给大家介绍一些针对iPhone App的自动化测试工具。
首先,我们把这些测试框架分为三大类:接口测试工具、注入式UI测试工具、录放式UI测试工具。
一、接口测试工具,主要在iphone SDK提供的单元测试框架的基础上,完成代码的接口功能测试。
这类工具用的比较多的是SDK本身提供的test unit,以及google的google-toolbox-for-mac工具。google的GTM工具是在test unit上做了一层封装,可以简单、快速的完成测试脚本编写,提供完善的测试日志和报告,并提供部分简单的UI测试功能。
详细的文档可以参考这里:http://code.google.com/p/google-toolbox-for-mac/wiki/iPhoneUnitTesting
二、注入式UI测试工具,可以完成对被测应用的UI功能测试,需要在源代码中加入一些必须的测试代码。优点是可以模拟用户的操作,测试被测应用 的相关功能,可以覆盖比较全的应用功能。缺点是因为在源代码中插入了必须的测试代码,而这些应用发布时需要去除,引入了被测应用和发布应用不一致的风险。 UISpec,提供了用例运行前的准备和运行的恢复功能,UIQuery功能,以及较为完善的校验功能,但该工具的使用比较复杂,脚本的编写也很繁琐,虽然对UI可以query,但无法方便、清晰、直观的查看应用控件的属性。 详细的文档可以参考这里:http://code.google.com/p/uispec/wiki/Documentation
Bromine,脚本编写简单,对控件的操作,完全模拟touch事件实现,但控件的定位通过对控件重画,并插入定位需要的信息,xpath的描述串也稍显复杂,校验功能相对较弱。
详细的文档可以参考这里:http://code.google.com/p/bromine/
三、录放式UI测试工具,主要通过录制用户的操作行为,通过回放来完成对被测应用的功能测试,这类工具对UI的功能测试相对是比较弱的。 比较常用的有Instrument、FoneMonke 。
Instrument,是iOS提供的主要用于分析应用的性能和用户行为的工具,利用它可以完成对被测应用的简单的UI测试。
FoneMonke,是国外提供的一个开源的,免费的录制/回放工具。网站:http://www.gorillalogic.com/fonemonkey
以上是了解的一些针对iPhone App的自动化测试工具,大家感兴趣的可以了解了解,欢迎交流、学习!
Iphone动画学习总结
一、创建UIView动画(块)--(指过渡效果的动画) 基本方式:使用UIView类的UIViewAnimation扩展。
1、代码示例:
//开始准备动画
[UIViewbeginAnimations:nilcontext:nil];
//定义动画加速或减速方式
[UIViewsetAnimationCurve: UIViewAnimationCurveLinear]; //动画时长
[UIViewsetAnimationDuration: 2.7];
//设置过渡效果
[UIViewsetAnimationTransition: transitionforView: self.view cache: YES];
//动画中所做的改变,改变的obj应与forView中的对应 [self.viewexchangeSubviewAtIndex:
[self.view.subviewsindexOfObject(index1)]
withSubviewAtIndex:
[self.view.subviewsindeOfObject(index2)]
];
//动画结束
[UIViewcommitAnimation];
上面提到的transition参数取值范围:UIView类自身提供四种过渡效果。
UIViewAnimationTranstionNone无过渡
UIViewAnimationTranstionFlipFromLeft 从左到右翻转 UIViewAnimationTranstionFlipFromRight从右到左翻转 UIViewAnimationTranstionCurlUp 从下向上卷 UIViewAnimationTranstionCurlDown 从上向下卷
2、还有另一种形式:
//返回当前视图堆栈顶部的图形上下文
CGContextRef context =
UIGraphicsGetCurrentContext();
[UIViewbeginAnimations: nil context: context]; //以下内容如上
……
二、block方式:使用UIView类的
UIViewAnimationWithBlocks扩展
1、代码示例:
[UIViewanimateWithDuration: 2.7 //动画时长 delay: 2.7 //延迟
options: (UIViewAnimationOptions) options animations: ^(void) {
要做的变化
}completion: ^(BOOL finished) {
变化结束时做些事情
}
];
常见的是其嵌套使用。
三、core方式: 使用CATransition类
1、须知:
CATransition只针对图层,不针对视图。图层是Core Animation与每个UIView产生联系的工作层面。使用Core Animation时,应该将CATransition应用到视图的默认图层([myView layer])而不是视图本身。
使用CATransiton类实现动画,只需要建立一个Core Animation对象,设置它的参数,然后把这个带参数的过渡添加到图层即可。
使用前要引入QuartzCore.framework库,并在相应处添加代码#import <QuartzCore/QuartzCore.h>。
2、代码示例:
//定义动画
CATransition *transition = [CATransition animation]; //间隔时间
transition.duration = 0.5f;
//动画开始与结束的快慢
transition.timingFunction =
[CAMediaTimingFunctionfunctionWithName:kCAMediaTimingFunctionEaseInEaseOut];
//动画效果
transition.type = kCATransitionFade;
//动画方向
transition.subtype = kCATransitionFromRight; transition.delegate = self;
[self.layeraddAnimation: transition forkey:nil]; layer所在图层的变化;
3、CATransition的过渡效果类型:
公开的:
kCATransitionFade 淡化
kCATransitionMoveIn 覆盖
kCATransitionPush 推挤
kCATransitionReveal 揭开
非公开的:
@”cube” 立方体
@”suckEffect”吸收
@”oglFlip” 翻转
@”rippleEffect” 波纹
@”pageCurl” 卷页
@”cameraIrisHollowOpen” 镜头开
@”cameraIrisHollowClose” 镜头关
四、UIImageView自身动画属性
可以方便地实现幻灯片效果
1、代码示例:
//齿轮转动
UIImageView *tmpView = [[UIImageViewalloc] initWithFrame:CGRectMake(133, 118, 50, 50)];
[self.viewaddSubview:tmpView];
tmpView.animationDuration = 0.3;
tmpView.animationImages = tmpArray;
tmpView.animationRepeatCount = 0;
[tmpViewstartAnimating];
[tmpView release];
tmpView参数为数组,存放UIImage对象。
五、其它相关总结
因为在设计动画的过程中,为了体现出视图动态的效果,有些属性和方法我们还需深入了解一下。
1、UIView的frame、bounds、center属性的区别。 frame:该View在父View坐标系中的位置和大小。(参照点是父亲的坐标系统)
bounds:该View在本地坐标系中的位置和大小。(参照点是本地坐标系)
center:该View的中心点在父View坐标系中的位置和大小。(参照点是父亲的坐标系)
2、视图缩放、旋转、移动。
//将视图的大小转变为正常大小的200%
CGAffineTransformnewTransform =
CGAffineTransformMakeScal(2.0, 2.0);
//添加到相应视图中
[btnsetTransform: newTransform];
//视图的旋转
CGAffineTransformnewTransform =
CGAffineTransformMakeRotate(transform, M_PI); 或
CGAffineTransformnewTransform =
CGAffineTransformMakeRotation(-M_PI);
//视图的移动
CGAffineTransformnewTransform =
CGAffineTransformMakeTranslation(width, 0.0);
自动化就是工业自动控制,是化工厂的自动控制系统,以前成为仪表专业,大家都说仪表是工厂的眼睛,实际上,现代自动控制系统不仅仅是工业生…
1,智能建筑定义:以建筑物为平台,兼备建筑设备管理系统、信息设施系统、信息化应用系统、公共安全系统等,集结构、系统、服务、管理及其…
一:IE操作题1.设置IE浏览器,使主页地址为:‘djks.edu.cn’IE图标右击—属性—常规2.设置IE浏览器,使得浏览In…
办公自动化实训总结报告姓名班级学号指导教师日期实训内容两周的实训包括windows操作,MicrosoftOfficeWord20…
《办公自动化》高技能课程总结为期一学期的办公自动化高技能课程已经结束。此次课程的主要针对职业经理ZB421001、项目经理ZB42…
个人工作总结有限公司本人于xxxx年参加工作,现任xxxx有限公司经营管理部网络、资产管理。任现职以来,严格履行网络系统自动化的岗…
这已经是我第二次参观自动化展会了,和第一次不同,以前来自动化展会时,因为不了解,不知道自动化行业的技术知识。对好多自动化公司的展示…
年调度自动化专业总结及年工作计划年,我局自动化专业在各级领导关心和支持下,通过自动化人员的团结协作下,圆满地完成了全年的各项工作任…
在老师的指导下,我们班在20xx年x月x日开始进行为期一周的办公自动化实训,这进一步地提高我们对办公自动化基础知识和各种现代办公自…
当今时代,工科人才培养的工程化已被世界高等教育界视为工科人才培养的重中之重。毕业实习作为工科院校教学计划的重要组成部分,不仅是毕业…
不知不觉间一个星期的实训课很快便要结束了,通过这次短暂的实训,是我认识到自己在计算机基础方面很多应用技术上的不足,同时,更让我在这…