葡京网上娱乐场锤子手机使用一个月记

研究小白学习instrument之同周到横,总结在网上搜了一部分零零散散和苹果官网被闹之合法文档介绍,总结了一下友好之学习心得,分享一下咔嚓。

本身直接是老罗的非脑残粉,还记得前年(差点写成去年…)T1问世之当儿,我和森老罗的跟随者一样为那句“我莫是为输赢,我哪怕是当真”深深震撼,我还热血的于简书上勾画下了文章《是的,我不怕一旦进个锤子》。然而,现实和良中的世界总是不同之,在四单月等后,当我好不容易收到锤子可以发货的短信时,正一个人数出差在外边,踌躇一番继择了逃单。原因十分多,但当时类似一彻底刺扎在自的眼前,虽未显却挥之匪去。

UI
Automation就是UI自动化的意思,这个大家还当清楚。既然是自动化工具,那自然要发出自动化的底下论去支持,而UI
Automation它所支撑之脚本语言除了自己原生的swift语言外,还支持JavaScript语言。

去年坚果出品的时,我充分欢乐,我内心深切的感觉到坚果其实是锤子科技越来越老罗重大的丘陵。在此之前,锤子科技是一个理想主义的沙龙,老罗不过是单平凡的理想主义中年;而在此之后,锤子科技终于成了一如既往小理想主义的铺,老罗为好不容易成长也理想主义公司的企业家。不管反对者怎么说,坚果是好成功之,我的老人家、我之同事这些了无打听吗不关注老罗的食指,都以使后喜欢上了马上款手机。我母亲在生丰富一段时间每次打电话,都见面说最好了,太精彩了!我咨询她及事先用过的吉米比呢,她说那么全是殊层次的手机啊!而己的生父,从来教不见面发作短信的人口,居然以采取一个星期后好学会了发少信,更成为了情侣围里活跃的同个。

自家说一下本身先是次等见到这个家伙的场面吧,自从xcode5版本开始(具体是5接触几本子以就是未清楚了),UI
Automation就支持录制用户操作,自动生成为脚本的作用。当初好对app就展开一些操作,发现她自动就自动生成了同一截脚本,感觉好神奇啊,但当自己想去解读脚本语言,发现自己根本对这(八窍通七窍,一窍不通),为了为好看明白这些本子的意思和提高部分操作,就错过学学JavaScript语言。学了一定量完美左右时后,基本的JavaScript语句会刻画了,也会盖因代码去打听其意义,然后又费了2龙时间专程去探听UI
Automation一些特定的操作,就着手写及自己的首先个标准的UI
Automation脚本。

据此坚果之后,我便已经知晓,T2必然会变成可自己的那么一个,而其也完全没有让自己失望:美到窒息的规划,流畅的动,从未感受过之优用户体验,即使是现已的苹果为从未这么惊艳。

//声明变量,减少代码量
var target = UIATarget.localTarget();
var app = target.frontMostApp();
var main = app.mainWindow();

//登录流程
app.tabBar().buttons()["我"].tap();
main.tableViews()[0].cells()[" "].tap();//点击默认头像区域


//因为app已经记住了用户名,这段代码屏蔽
//main.textFields()[0].textFields()[0].tap();
//var name = "skk"
//main.textFields()[0].textFields()[0].setValue(name);


main.secureTextFields()[0].secureTextFields()[0].tap();
//给密码声明变量,并赋予输入框变量的值
var passwd = "123456";
main.secureTextFields()[0].secureTextFields()[0].setValue(passwd);

main.buttons()["登录"].tap();
target.delay(1);//延迟1秒后操作
app.tabBar().buttons()["首页"].tap();
target.delay(5);//延迟5秒后操作
//登录完成

//退出登录流程
app.tabBar().buttons()["我"].tap();
main.tableViews()[0].tapWithOptions({tapOffset:{x:0.60, y:0.85}});//点击【设置】
main.buttons()["退出登录"].tap();
app.actionSheet().collectionViews()[0].cells()["退出"].buttons()["退出"].tap();
app.tabBar().buttons()["首页"].tap();
//退出登录成功
UIALogger.logMessage("登录脚本都运行通过");
//脚本运行完成,输入该内容

自骨子里是怀念写个手机测评还是至少达几乎单图片的,但发现自己几乎从未呀宜的语言来写使用被顺的发,那种用参数无法见的爽,只有将手机抓在当下才会感觉到得到。至于图片嘛,网上到处是美图,唯一要强调的即使是,即使是官的鼓吹图片,也无力回天100%的反映实物的美。

是是咱们合作社一个活的记名流程,写的比较简单,没有特意去优化其。

采用一个月,我更是相信,锤子科技创的连不仅仅是手机,而是科技时代理想主义者的路标,是属于我们这些小一头追求人们的自负。说实话,我莫太信任锤子在手机的销量达会见站暨第几,毕竟可以的创作不是“为发烧而异常”。但自首当其冲预测,锤子科技迟早会创造有现在所未曾的崭新科技产品,提供再周全的用户体验。

​就如标题一样,我不怕是小白,要自者小白去好单独去形容起立即段脚本,那是勿容许的,脚本的兼具的操作都是录制得到的,我只是把录制得到的脚本进行一些优化而已。

脚说有的干货吧,先说一下​UI
Automation的结构吧,拿同样段落脚本代码来说说自己之眼光吧,官网被出控件树图没有实时更新与实际操作上会见聊距离,大家了解一个大约意思即可。推荐一本书《ios测试指南》以此本之第56页有对之控件数的布局来深详细的诠释。

UI
Automation所有的操作事件还必须盖UIATargt开头,如图所示UIATargt是任何控件树的一干二净节点​​​;
UIATarget.localTarget().frontMostApp();应用程序是极度前边的应用程序(或应用程序的对象),也不怕是乘这个app。
UIATarget.localTarget().frontMostApp().mainWindow();到达你的应用程序的主窗口中,也就是凭借这被测app下面的主窗口。

葡京网上娱乐场 1

[
](javascript:;)苹果官方给闹的控件树图

历数部分较常用之操作代码
倘点击两糟同之职务,你可以这代码:
​示例,点击两不善100、200以标置
UIATarget.localTarget().doubleTap({X:100,Y:200});

测试点击图片放大与压缩功能
UIATarget.localTarget().twoFingerTap({X:100,Y:200});

放与压缩手势,你提供的坐标的开头位置和结束位置,以及持续时间,以秒为单位。​
下的演示指定位置,从20、200的位置放大与缩小手势,经过2秒:
UIATarget.localTarget().pinchOpenFromToForDuration({X:20,Y:200},{X:300,Y:200},2);​
UIATarget.localTarget().pinchCloseFromToForDuration({X:20,Y:200},{X:300,Y:200},2);

拖动和轻弹。如果您待滚动表要挪动元素于屏幕及,你得下dragFromToForDuration方法。你提供的坐标的开始位置以及竣工位置,以及持续时间,以秒为单位。​​

脚的以身作则指定位置,从160、200的职拖动手势到160、400底职位,过了一样段1秒:
UIATarget.localTarget().dragFromToForDuration({X:60,Y:200},{X:160,Y:400},1);

本条跟拖动手势是形似的,但它们被设定也一个飞快动作,因此它们不要求一个持续时间参数。
UIATarget.localTarget().flickFromTo({X:160,Y:200},{X:160,Y:400});

输入文字:您的本子可能需要测试你的应用程序正确地处理公事输入。要到位就或多或少,就得透过简单地指定目标文本字段并因此其价设置输入文本的文书字段的setValue方法。
下面的以身作则使用一个片段变量,以供一个长字符串作为测试用例的率先独公文字段(索引[0])在眼前屏幕:var
recipeName = ” “;​
UIATarget.localTarget().frontMostApp().mainWindow().textFields()[0].setValue(recipeName);

操作延时,单位吗秒UIATarget.localTarget().delay(2);

timeout:返回时之超时值,应用如下
UIATarget.localTarget().timeout();

setTimeout:设置一个初的超时值,应用如下
UIATarget.localTarget().setTimeout();

pushTimeout:保存在堆栈的当下超时值,并设置一个新的超时值,应用如下
UIATarget.localTarget().pushTimeout();

popTimeout:从仓库检索以前的超时值,恢复该用作当前之超时值,并以其回来,应用如下UIATarget.localTarget().popTimeout();

打印日志,与document.write()一样,只是这个是打印在ui
autoaction工具内UIALogger.logMessage(“需要打印出的音讯”);​//这个得据此来进展判断

模拟app返回桌面,并且从后台还进app,其中的操作间隔为秒为单位​//下面示例返回桌面,并且10秒后跻身ios后台,返回app内​
UIATarget.localTarget().deactivateAppForDuration(10);


立即有个简易的以身作则,感兴趣的去错过探视:
http://www.minroad.com/?p=799