AE从有一个合成开始就里镜像了 AE怎么合成改成正常的

北京哪里有可以学AE特效的地方啊 初级的那种就可以了~ [可怜]
北京完美动力AE特效培训班、是程针对想从事影视特效工作的学员,需有三维基础,理论实践结合,通过真实案例使学员达到高端制作水平。以后一般可以到大型电视台、电影制作公司,任特效师、影像合成师、视频制作师、剪辑师等;具体你可以去官网或者是学院详细咨询
只要有了蟑螂就很难根除,因为起其生命力和繁殖能力超强!杀蟑螂没有特效药任何药也不能一次性彻底根除,你只能定期用药杀一遍,注意要坚持,不能短期内看不到蟑螂就不用药...
蟑螂是昼伏夜出的厌光性昆虫,具有喜温、暗、湿、静等特点。前半夜21~23时是蟑螂活动高峰期,午夜以后活动逐渐减少,天亮则停止活动。蟑螂活动的适温范围是28~33...
病情分析:漂唇过敏此类并不少见,易复发,与人体的免疫异常有关意见建议:治疗上可以看中医配中药调理,同时可以外涂些红霉素眼膏等,但要注意最好是少打激素,不然只要复...
答: 软件测试培训哪家机构比较好?针对0基础的那种。
答: 这个问题太泛,是问技能培训还是学历培训?
答: ●创建了一套卓有成效的人才培养、培训、上岗的措施、方法和经验
答: 教育咨询师招生简章职业定义:教育咨询师,是学生的导师,指导学生学习;是家长的顾问,为家庭教育提供咨询;是教师的教练,引导教师专业发展;是成人学习的设计师,规划终...
餐饮业厨房产生的油烟,顾名思义,废气中主要污染物为油烟,一般采用静电除油。
液化气属较清洁能源,废气污染程度不高,主要含二氧化碳一氧化碳吧。
柴油属石油类,废气含二氧化硫和氮氧化物,二氧化硫碱液喷淋即可去除,氮氧化物主要以一氧化氮为主,要催化氧化成二氧化氮才能被碱吸收,造价成本非常高,一般的柴油发电机尾气难以治理,除非大型发电厂。
煤炭废气含二氧化硫多,一般常用的脱硫工艺即可。
无锡至少有两所正规大学:
1、江南大学
2、南京农业大学无锡渔业学院。由于它不直接在无锡召本科生,所以许多人不知道这个学校:它位于山水东[西?]路九号,拥有约20位正教授/研究员,80位副教授/副研究员,和多位首席科学家。去年还有中国工程院的院士一名。
1、江南大学坐落于太湖之滨的江南名城——江苏省无锡市,是教育部直属的国家“211工程”重点建设高校。
  享有“轻工高等教育明珠”美誉的江南大学,有着久远的历史渊源和深厚的文化底蕴。在1902年创建的三江师范学堂基础上发展起来的中央大学(现南京大学)是江南大学办学的前身。1952年全国高校院系调整时,南京大学食品工业系、浙江大学农化系、江南大学食品工业系以及复旦大学、武汉大学的有关系科合并组建成南京工学院(现东南大学)食品工业系。1958年该系整建制东迁无锡,成立无锡轻工业学院,1995年更名为无锡轻工大学,1998年由隶属中国轻工总会划转直属教育部。2001年1月,经教育部批准,无锡轻工大学、江南学院、无锡教育学院合并组建江南大学。
  学校学科涉及经济学、法学、教育学、文学、理学、工学、农学、医学、管理学等九大门类,设有生物工程学院、食品学院、纺织服装学院、化学与材料工程学院、设计学院、机械工程学院、通信与控制工程学院、信息工程学院、商学院、法政学院、文学院、师范学院、理学院、外国语学院、土木工程系、医学系、艺术系、体育系等18个院(系),共56个本科专业,全日制在校本科学生18500余人。成人学历教育在籍学生5000余人,网络学历教育在籍学生1万余人。还有经教育部批准的中外合作办学的莱姆顿学院及与社会力量合作办学的江南大学太湖学院。
  学校设有轻工技术与工程、食品科学与工程等2个博士后流动站和10个博士点,覆盖发酵工程等16个二级博士学科专业和39个硕士学科专业,基本包涵了轻工、纺织、食品的全部领域。现有在校各类硕士研究生、博士研究生2500余人。学校拥有4个国家级和部省级重点学科,建有教育部、国家计委批准的“国家生命科学与技术人才培养基地”,培养本硕连读、本硕博连读的高层次人才。食品科学、发酵工程等2个国家重点学科在国内同类学科中具有独特优势,实力雄厚,处于领先地位,在国际上有较大影响。经近50年的建设与发展,江南大学已成为一所规模结构较为合理,教学质量优异,科研水平上乘,社会服务盛誉,各方面均得到社会公认,在国内外具有较高知名度的多科性大学。
  学校师资力量雄厚,现有专任教师1519名,其中中国工程院院士3名(2名为双聘院士),教授160名,副教授456名。由300多名博士生导师、硕士生导师组成的学术带头群体,为高层次人才培养、科技创新和社会服务奠定了厚实的基础。学校始终坚持社会主义办学方向,坚持以育人为本,把为经济建设和社会发展培养高质量的人才作为学校的根本任务。经过多年努力,形成了具有自身特点的人才培养体系和教学质量保障体系,做到人才培养与市场需求紧密结合,培养高素质创新型的专门人才。学校注重学生综合素质、基础知识和实践能力的培养,如在本科教学中,将相对狭窄的专业对口教育转到本科通识加特色教育;推进多样化的人才培养方式,学生通过辅修、第二专业、第二学位等途径培养复合型人才;让学生早期介入科研活动,从科研实践中感受和理解知识产生和发展过程,培养学生科学素养、科学精神、创新能力。学校十分重视校园精神文明建设。一年一度的江南之春文化艺术节、科技节、金秋体育节等活动精彩纷呈,暑期社会实践、校园文化生活丰富多彩。在大学生数学建模竞赛、数学竞赛、电子制作竞赛、机器人竞赛、艺术设计竞赛等全国性比赛中,学生连年获得大奖。建校以来,学校已为国家输送了数万名毕业生,许多毕业生已成为各条战线的科技精英和领导骨干。
  作为我国轻工、食品、生物技术高科技的摇篮与依托单位之一,“九五”期间,学校承担并完成了大批国家重大科技攻关项目及省部级应用基础研究课题,其中有70多项研究成果填补了国内空白,并达到了国际先进水平,30多项科研成果荣获国家和省级科技进步奖。“十五”以来,学校科研实力进一步增强,科技项目和科技成果逐年增多。2003年取得国家、部省级以上科技成果奖励20项,其中有国家科学技术发明二等奖(一等奖空缺)一项,中国石油和化学工业科学技术一等奖一项等。2004年,科技总经费9000多万元,获准立项的纵向科研项目97项,横向科研270多项;鉴定或验收科技成果86项,其中30%以上成果达到国际领先或国际先进水平。全校教职工共发表各类论文2700多篇,出版专著130多部,被国际三大检索收录论文143篇。学校承担的国家“十五”科技攻关“农产品深加工”、“发酵工程关键技术”课题全面通过结题验收并进入后期滚动;国家自然科学基金项目获资助13项;获部省级以上科技成果奖励8项,其中1项科研成果获得江苏省科技进步一等奖;全年申请专利356项,学校专利申请量位居全国高校第7名、江苏省第1名;人文社科领域承担的项目、层次、经费等方面都有较大增长。
  学校重视面向经济建设主战场,加快科技创新,推进科技成果产业化,建有科技部、国家计委批准的“发酵技术国家工程研究中心”等10个国家级、省部级研究中心、实验室。建立了由海尔集团、茅台酒集团、青岛啤酒集团、北京燕京啤酒集团、绍兴黄酒集团、江苏小天鹅集团等100多家企事业单位加盟的董事会,注重学校与企业、社会之间的联系,促进了产学研的结合和为社会各方面的服务。各院(系)还建有二级董事会,共有400余家企事业单位参加。学校十分重视发挥在轻工、食品、艺术设计、纺织、环境、化工、生物医药等方面的科技优势,积极为全国轻工纺织行业的科技进步、产品开发、人才知识更新服务,积极参与国家西部大开发和为江苏省沿江发展战略、苏北发展战略及海上苏东发展战略服务,积极适应无锡市支柱产业的创新发展、科技和人才需求,在科研开发、技术服务、人才培养等方面与企业开展全面合作,推动企业的技术改造和产品更新换代。与地方政府合资建立的省级大学科技园,成为高科技研究项目的重要孵化基地,为国民经济和社会发展作出贡献。由于学校的优质服务,中国电信、丹尼斯克(中国)有限公司、嘉里粮油(深圳)商务拓展有限公司、东海粮油工业(张家港)有限公司、国民淀粉上海化学有限公司、三得利(中国)投资有限公司、青岛啤酒集团、重庆啤酒集团、杰能科生物工程有限公司、广州天赐高新材料科技有限公司、国际特品(ISP)(香港)有限公司、东洋之花化妆品有限公司等大型企业都在学校设立各类奖学、奖教金,每年发放的奖学金总额达600多万元。
  学校与国内外的教学科研交流合作频繁,是教育部批准的首批接受外国留学生和港澳台学生的高校。自六十年代开始,就接受和培养来自世界各国的留学生,现有本科、硕士、博士等各级各类留学生260余人。学校已与20多个国家和地区的44所大学建立了紧密的校际交流关系,并与美国、加拿大、日本等近20个国家的高校、机构开展办学、科研等方面的合作。目前正在执行的校际合作与交流项目有17个,其中与澳大利亚、英国一流大学之间的“2+2”学分互认合作项目受到学生的欢迎。学校聘请了50多位国外著名的学者和教授担任学校的名誉教授或客座教授,每年举办国际及双边学术交流会,已逐步成为轻纺、食品、艺术设计等领域的国际交流中心。
  学校图书馆现有藏书152.76万余册、电子图书37.40万册,中外文期刊3100余种,建有教育部科技查新工作站。学校编辑出版自然科学、人文社会科学、食品与生物技术、教育科学等4种学报及《冷饮与速冻食品工业》和《电池工业》杂志,向国内外公开发行。
  在教育部、省、市政府的大力支持下,地处无锡蠡湖新城、太湖之畔,占地3100多亩的学校新校区已建成面积36万平方米。新校区以“生态校园•曲水流觞”为设计理念,融青瓦白墙的江南建筑风格与小溪、树林、草坪的多层次园林空间为一体,展现绿色、水乡、文化韵味。设施先进、功能齐全、环境优美的现代化校园,为莘莘学子学习研究提供了良好的条件。
  钟灵毓秀的江南山水,造就了江南校园开拓进取的学术氛围;蕴涵深厚的人文传统,赋予了江南学子锐意求新的创造精神。迈入新世纪,学校迎来了改革、发展的良好机遇,“211工程”将重点建设和发展工业生物技术、食品科学工程和安全、工业设计创新系统、纤维制品现代加工技术、中小企业管理与发展、轻工过程信息化科学与工程等6个优势和特色明显的学科群,进一步提升学校在轻纺、食品等学科领域的优势地位,使学校的整体办学水平和人才培养质量得到全方位的提高。
  积百载跬步,创世纪辉煌。江南大学提出的发展总体目标是,经过五至十年时间的努力,把学校建成以工为主、理工结合、工理文交融,科技教育与人文教育协调发展,具有鲜明特色、先进水平,在国内有较大影响的教学研究型开放式多科性大学;通过不断创特色、上水平、求发展、增实力,力争在本世纪中叶,把学校建成国内一流、国际有影响、部分学科达到国际先进水平的综合性大学。
2、南京农业大学无锡渔业学院是南京农业大学与中国水产科学研究院淡水渔业研究中心,在多年联合办学的基础上于1993年7月成立的,她依托南京农业大学雄厚的基础教学条件,和淡水渔业研究中心优越的专业教学条件,为我国及国际水产事业的发展培养了一大批优秀的专业技术人员和管理人才。
学院的宗旨是以推进我国和发展中国家的渔业科学和渔业生产,使渔业产品在当今人类改革食物结构,提高营养水平,创造经济财富方面起重要作用。通过努力,使该院成为一个国际性的渔业科学教育和研究中心。
学院座落在风景秀丽的太湖之滨,中国著名的旅游城市--无锡的西南角上,与中央电视台太湖影视基地相邻,离市区仅10公里之遥,依山傍水,环境十分幽美,交通便利,有1路和820路公交车直达。学院占地面积26公顷,建筑面积达35000多平方米。
南京农业大学从1984年开始和淡水渔业研究中心联合办学,设淡水渔业专业(专科)。学院于1994年新开设了“淡水渔业”本科专业。现设水产养殖本、专科专业,水产养殖博士点和硕士点,每年招收博士生、硕士、本科、专科各种层次。
该院长期招收外国留学生,为亚太地区名国培养淡水渔业的技术人才,今后还将进一步提高留学生的办学层次,招收硕士研究生,在招收留学生方面曾受到联合国FAO和UNDP、亚洲水产养殖中心网(NACA)的大力支持。
设有以中国工程院院士夏德全研究员为主的淡水鱼类遗传育种生物技术研究室、营养与饲料、特种水产养殖室、水产品病害研究室、渔业环境保护、渔业经济与信息中心、内陆水域增养殖等7个教研室。学院现有教职员工340名,其中具中高级职称的教师有80名。有突出贡献的农业部中青年专家和享受政府特殊津贴的18人。现有博士3人,硕士25人。
在科学研究方面,先后承担和圆满完成了国家自然科学基金、“八六三”、国家攻关和省、部级课题190多项,获得各类奖励成果85项,其中国家科技进步二等奖1项,国家科技进步三等奖4项。92年获农业部农业机构综合科研能力奖。
在多年的联合办学的实践中,南京农业大学无锡渔业学院的领导非常重视提高学院的教学质量,办学条件逐年得到改善,教学管理趋于完善,教风好、学风正,经过多年的努力,学院的各项办学条件已得到改善,教学手段已基本实现了现代化,配备了语音室、电脑房和先进的电教中心。
学院非常重视发展工作。依托淡水渔业研究中心,综合利用经贸部TCDC培训项目的人力、财力、物力。扎实提高教学质量,改善教学条件,学院领导在经费许可的情况下,投入大量的资金,进行教学设施的改造和教学仪器、设备的添置,积极改善学院的办学备件。建院六年来,学院不断改进教学设施,提高教学质量,目前已拥有教学楼、实验室、图书馆、学生宿舍楼、语音室、电脑房、活动健身房、学生食堂、足球场、蓝球场、大客车、教学实习基地等设施,为国家培养水产专业人才创造了较好的条件。
目前我们的生活水平必竟非同以往.吃得好休息得好,能量消耗慢,食欲比较旺盛,活动又少,不知不觉脂肪堆积开始胖啦。                                                                                         减肥诀窍:一.注意调整生活习惯,二。科学合理饮食结构,三。坚持不懈适量运动。
   具体说来:不要暴饮暴食。宜细嚼慢咽。忌辛辣油腻,清淡为好。多喝水,多吃脆平果青香焦,芹菜,冬瓜,黄瓜,罗卜,番茄,既助减肥,又益养颜,两全其美!
有减肥史或顽固型症状则需经药物治疗.
如有其他问题,请发电子邮件:jiaoaozihao53@ .或新浪QQ: 1
关于三国武将的排名在玩家中颇有争论,其实真正熟读三国的人应该知道关于三国武将的排名早有定论,头十位依次为:
头吕(吕布)二赵(赵云)三典韦,四关(关羽)五许(许楮)六张飞,七马(马超)八颜(颜良)九文丑,老将黄忠排末位。
关于这个排名大家最具疑问的恐怕是关羽了,这里我给大家细细道来。赵云就不用多说了,魏军中七进七出不说武功,体力也是超强了。而枪法有六和之说,赵云占了个气,也就是枪法的鼻祖了,其武学造诣可见一斑。至于典韦,单凭他和许楮两人就能战住吕布,武功应该比三英中的关羽要强吧。
其实单论武功除吕布外大家都差不多。论战功关羽斩颜良是因为颜良抢军马已经得手正在后撤,并不想与人交手,没想到赤兔马快,被从后背赶上斩之;文丑就更冤了,他是受了委托来招降关羽的,并没想着交手,结果话没说完关羽的刀就到了。只是由于过去封建统治者的需要后来将关羽神话化了,就连日本人也很崇拜他,只不过在日本的关公形象是扎着日式头巾的。
张飞、许楮、马超的排名比较有意思,按理说他们斗得势均力敌都没分出上下,而古人的解释是按照他们谁先脱的衣服谁就厉害!有点搞笑呦。十名以后的排名笔者忘记了,好象第11个是张辽。最后需要说明的是我们现在通常看到的《三国演义》已是多次修改过的版本,笔者看过一套更早的版本,有些细节不太一样。
考虑是由于天气比较干燥和身体上火导致的,建议不要吃香辣和煎炸的食物,多喝水,多吃点水果,不能吃牛肉和海鱼。可以服用(穿心莲片,维生素b2和b6)。也可以服用一些中药,如清热解毒的。
确实没有偿还能力的,应当与贷款机构进行协商,宽展还款期间或者分期归还; 如果贷款机构起诉到法院胜诉之后,在履行期未履行法院判决,会申请法院强制执行; 法院在受理强制执行时,会依法查询贷款人名下的房产、车辆、证券和存款;贷款人名下没有可供执行的财产而又拒绝履行法院的生效判决,则有逾期还款等负面信息记录在个人的信用报告中并被限制高消费及出入境,甚至有可能会被司法拘留。
第一步:教育引导
不同年龄阶段的孩子“吮指癖”的原因不尽相同,但于力认为,如果没有什么异常的症状,应该以教育引导为首要方式,并注意经常帮孩子洗手,以防细菌入侵引起胃肠道感染。
第二步:转移注意力
比起严厉指责、打骂,转移注意力是一种明智的做法。比如,多让孩子进行动手游戏,让他双手都不得闲,或者用其他的玩具吸引他,还可以多带孩子出去游玩,让他在五彩缤纷的世界里获得知识,增长见识,逐渐忘记原来的坏习惯。对于小婴儿,还可以做个小布手套,或者用纱布缠住手指,直接防止他吃手。但是,不主张给孩子手指上“涂味”,比如黄连水、辣椒水等,以免影响孩子的胃口,黄连有清热解毒的功效,吃多了还可导致腹泻、呕吐。
合肥政务区网络广告推广网络推广哪家公司比较好 一套能在互联网上跑业务的系统,被网络营销专家赞为目前最 有效的网络推广方式!
1、搜索引擎营销:分两种SEO和PPC,即搜索引擎优化,是通过对网站结构、高质量的网站主题内容、丰富而有价值的相关性外部链接进行优化而使网站为用户及搜索引擎更加友好,以获得在搜索引擎上的优势排名为网站引入流量。
良工拥有十多位资深制冷维修工程师,十二年生产与制造经验,技术力量雄厚,配有先进的测试仪器,建有系列低温测试设备,备有充足的零部件,包括大量品牌的压缩机,冷凝器,蒸发器,水泵,膨胀阀等备品库,能为客户提供迅捷,优质的工业冷水机及模温机维修和保养。
楼主,龙德教育就挺好的,你可以去试试,我们家孩子一直在龙德教育补习的,我觉得还不错。
成人可以学爵士舞。不过对柔软度的拒绝比较大。  不论跳什么舞,如果要跳得美,身体的柔软度必须要好,否则无法充分发挥出理应的线条美感,爵士舞也不值得注意。在展开暖身的弯曲动作必须注意,不适合在身体肌肉未几乎和暖前用弹振形式来做弯曲,否则更容易弄巧反拙,骨折肌肉。用静态方式弯曲较安全,不过也较必须耐性。柔软度的锻炼动作之幅度更不该超过疼痛的地步,肌肉有向上的感觉即可,动作(角度)保持的时间可由10馀秒至30-40秒平均,时间愈长对肌肉及关节附近的联结的组织之负荷也愈高。
正在加载...
Copyright &
Corporation, All Rights Reserved
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区
相关问答:123456789101112131415我想在AE中复制一个图层,但是修改了新图层里的内容以后,老图…_ae吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:493,321贴子:
我想在AE中复制一个图层,但是修改了新图层里的内容以后,老图…收藏
层也被改了···求指教啊 本人没学过AE 现在赶一个学校的宣传视频 最好可以远程帮助一下在下 本人qq快抓狂了的说 在线等···
ae,片头,倒计时,相册,党建,特效,粒子,婚庆,快闪,字幕,舞台背景,同学聚会..海量高清视频素材下载,下载编辑即用,简便操作.2018精选视频.
要在项目窗口里复制的
时间线上不管你复制多少都只有一个本体 其他的是副本
复制完后吧他拖进时间线窗口就不会影响了啊
你是想保持原图层的特效,复制一层后保持该特效并改变内容?你可以直接复制原图层(ctrl+d),拖入时间线,然后选择要改变的图层,按住alt不放,去项目把素材替换掉。。。如果你不是指这个,那么就要重新打造一样的图层,新建,然后就复制粘贴希望能帮到你
我刚才也遇到了这种情况 现在解决了
大体意思就是 你现在项目窗口复制你要改的东西(如果里面有很多合成你要把合成也全复制一遍)然后在时间线在CTRL+D复制一个 然后选中你要改的那个
在项目窗口按ALT不放拖到你要改的上面, 里面的合成也是 。最后就能改了
最好的年龄是,那一天,你终于知道并且坚信自己有多好,不是虚张,不是夸浮,不是众人捧,是内心明明澈澈知道:是的,我就是这么好。
火影完结 就像一位在身边多年的老朋友突然离去 残酷的回收了我们原以为理所当然的陪伴 我们只能失落中安静的数一下之后 要为此改掉多少习惯 再不斩倒下的时候 迪达拉为艺术自爆的时候 蝎子为艺术追求永恒安宁的时候 自来也沉入水底的时候 鼬对佐助做出最后一个手势的时候 四代穿上披风的事时候 我爱罗守护村子的眼神瞪的无比坚定的时候, 五影之间抛弃恩怨联手顽强对抗敌人的时候 而这一切 都要嵌入我们的青春 虽然拖沓的剧情反复的煽情和单一的打斗和挖下去却没填完的坑令我抓狂不止一次 但作为火影的一个老朋友 我早已不得不把它的优点和缺点一同揣在心里 没怎么看多火影的各位请原谅上文的剧透 毕竟 这是最后一次了
为什么复制的图层删除不了,以后一直是这个图层
我也来挖个坟!到底是按住ALT吧项目窗口的复制层往工程栏上的需要被替代层上覆盖,还是反过来按住ALT吧工程栏上的层往上拉倒项目层上去覆盖?
反正我吧项目上的合层复制一个后直接拖到工程栏上覆盖,结果只要有改变还是一样的,没办法各自独立
千库网50万ae模板素材,各类ae下载,片头片尾,倒计时,年会颁奖,快闪,婚礼,相册,中国风,精选ae,下载可直接修改套用,轻松完成ae视频制作
你看是不是他们之间建立父子关系了,还有就是你注意是不是你在选择的时候,是不是多选了,再看看他们是不是存在表达式,希望能帮到你
灵活运用预合成
很简介的一个问题,你直接在项目中,把合成项目先复制,然后打开你复制的项目层,把你所需要独立层复制到原项目中,然后再按顺序排好层级就行了!然后随便你怎么修改!
不能直接在时间线面板复制的,想要修改其中的内容,需要到项目面板中复制,然后拖入到时间线(合成)面板中,这样就可以修改了,原来的不会改变的。
不行啊,之前弄过是可以的,但是现在忘记怎么做了,求解啊大叔们
我被搞晕了,请问能说详细点吗,最好有图。。。我是可以复制合成,但是复制出来的合成没有特效,复制粘贴特效也不行
好难啊!!!!看不懂
。。。。无语 终于自己搞明白了 我讲个非常简单口语的你们就知道了时间线上的复制是没有用的
在项目里找到你想复制的复制了在粘贴到项目再从项目拖下时间线
这样改后者前者就不会变
楼主会了没
最简单的方法
再导入一个工程进来
登录百度帐号AE的一个个合成做好了,怎么放到一个大合成里面,就是全部放在一个合成组里面,而且导出视频,求远程_百度知道
AE的一个个合成做好了,怎么放到一个大合成里面,就是全部放在一个合成组里面,而且导出视频,求远程
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
学无止之好学
学无止之好学
采纳数:81
获赞数:89
新建一个合成,接着把子合成拉到合成里面,导出视频的话,菜单栏——图像合成——添加到渲染列表,弹出新窗口,调整一下输出的属性以及存放位置就可以点渲染了
我试过拉动了,但就是拉动不了进去,是悬浮的,能否加个qq远程一下
不知道度娘会不会封我
J此乃神人也
J此乃神人也
采纳数:135
获赞数:2912
给你示范一下01、02、03放的合成里1:双击合成然后把01-03框选拽到合成里就可以了然后排列好顺序 &Ctri+M &渲染输出
本回答被网友采纳
来自电脑网络类芝麻团
采纳数:38
获赞数:157
参与团队:
全选 按快捷键ctrl+shift+c
为你推荐:
其他类似问题
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。本帖已被设为精华帖!
打造一款快速高效且高度可复用的ios自动化测试工具
(qq群 :)
无需插桩!
高效率,每秒4-5个action!
轻量极简!
先致敬两个开源工具;
swiftmonkey
因其直接使用了 苹果的私有api 如XCEventGenerator.tapAtTouchLocations 故执行速度极快。同时也用类似android monkey的事件生成机制,自身源源不断的产生如 tap,swipe,pinchIn等事件使其对被测app产生了极大的压力
缺点:需要插桩
类似facebook wda的方式,在xcode中执行xcuitest时启动一个监听server,可通过外部发送命令来创建待测app对应session并启动app,同时也实现了dump tree 和依据xpath,id等来定位某个控件并操作这些控件
Fastmonkey
Xcode9.0()
Xcode8.3()
结合两者优点并改造两者,在XCTestWD基础上实现一个server路由,外部命令时可引导启动app 并执行monkey
app插桩增加小手的反馈,可以更直观的看到其点击效率! (可选,实际不插也可monkey)
测试时会保存截图,及appcrash log(此处植入广告!)
1.monkey执行过程中跳出app,如何跳回继续跑monkey
增加一个定时执行的action,检测当前app,如果不是待测则重新launcher(其时更好的应该时reactive,但并没有找到类似api)
public func addXCTestCheckCurrentApp(interval:Int, appname:String, application:XCUIApplication)
addAction(interval:interval){ [weak self] in
let current = XCTestWDFindElementUtils.getAppName(underElement: root!)
let isRunning = application.running
if current == appname && isRunning {
for i in 0 ..& application.alerts.count {
let alert = application.alerts.element(boundBy: i)
application.launch()
self!.sleep(5)
2.登陆等业务流程如何解决
同样增加一个定时的action,检测当某个关键点出现时,往事件队列中插入一个业务事件
public func addXCTestAppLogin(interval:Int, application:XCUIApplication) {
addAction(interval:interval){ [weak self] in
if root != nil{
let usage = "xpath"
let tag = "//XCUIElementTypeOther[@name='登录']/XCUIElementTypeTextField"
let element = try? XCTestWDFindElementUtils.filterElement(usingText: usage, withvalue: tag, underElement: root!)
if element != nil {
self?.addXCTestLoginAction(application: application)
public func addXCTestLoginAction(application:XCUIApplication) {
addAction(){ [weak self] in
if root == nil{
let usage = "xpath"
let username = "//XCUIElementTypeOther[@name='登录']/XCUIElementTypeTextField"
let passwd = "//XCUIElementTypeOther[@name='登录']/XCUIElementTypeSecureTextField"
let button = "//XCUIElementTypeOther[@name='登录']//XCUIElementTypeStaticText[@name='登录']"
var element = try? XCTestWDFindElementUtils.filterElement(usingText: usage, withvalue: username, underElement: root!)
if let element = element {
let value = "abc"
let semaphore = DispatchSemaphore(value: 0)
let numberOfTaps = 1
self!.sharedXCEventGenerator.tapAtTouchLocations(locations, numberOfTaps: UInt(numberOfTaps), orientation: orientationValue) {
semaphore.signal()
semaphore.wait()
支持控件,点击序列,跳出监控
总运行时间,总点击次数。action固定间隔,action随机间隔(暂时内编码,后续参数化)
增加跳过server 跳过发请求机制,运行xctestwduitest 直接启动待测app直接跑monkey
支持xcode9, ios11
关于登录输入用户密码等的业务操作未来
实现基于控件的monkey
crash收集上报
社区兄弟的搭建扫盲贴
另一扫盲贴
jenkins部署案例
*基于xcode9.2部署
「All right reserved, any unauthorized reproduction or transfer is prohibitted」
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
期待开源....
这个图片分类有点牛批
好工具,期待开放
请问能加入业务流程脚本嘛?
业务流程脚本? 比如登陆吗? 如果是跑monkey过程中插入一些特定业务逻辑是可以的。
业务逻辑实际就是原子性的一系列点击输入。 如果是按case跑目前还不支持 改造会比较大 但理论上也是可以的
是这样子,就是比如有业务链路:
a-&b-&d-&c-&a
随机可能做不到。那如果我用脚本把这些链路都写成一个个业务脚本,可以当做插件插到框架中去,随机执行的话,就会更加有效果。
可以的。这个链路执行的时候 ,随机会暂停。执行完随机再继续。只要设置好各个链路的触发点即可。相对于单个链路中的行为不随机,而不同链路之间也是随机的
将本帖设为了精华贴
补充一个业务流程
能并发吗?
其实现在的核心应该还是数据监控和数据分析,执行的话相对还比较好实现一些,期待楼主把未来那块补全,加油
稍微改造下可以的。
膜拜大神,期待开源,牛的一批
高效率,每秒4-5个action!
这块是带截图吗?
idevicescreenshot?
截图没有细研究,目前调试看截图是异步的,跟不上action的速度
那会不会出现,截图看到的,和真实的不是一个地方的现象?
另外想咨询一下:
关于检测是否在指定APP,调用的这个方法,是封装的吗?
具体是会调用哪个API? 或者内部的实现机制是?
let current = XCTestWDFindElementUtils.getAppName(underElement: root!)
目前感觉检测是否指定APP,还挺难实现的。 我看你这个方法,挺好。
打个比方,会出现点击了20次 可能才截出6,7张图。 截图比较鸡肋,实际效果不如录像或者log
自己加了个接口。
这个取得是 xml里
节点属性name
这个func大致实现原理是?
log的话,是采用idevicesyslog来收集还是?
录屏是用什么方案
重新launcher。
这块是用的什么方法?
我之前有使用过:idevicedebug 方法
重新launcher 就调的 XCUIApplication.launch()
但这样会重启app,我希望能后台切回前台是最好的。
见 官方api
感觉应该用 activate() 但目前只是beta的
log的 就记录每个action后 点击什么页面什么位置。
已完成 基于控件的点击,解析出所有控件,随机某个控件点其中心点 。每秒大概3-4个action
log的 就记录每个action后 点击什么页面什么位置。
点击什么页面,这个是如何定义页面这个概念的?
iOS端毕竟没有Android端activity
取title辅助定位就行。appname会引起个问题,那个函数要重写了
取title辅助定位,是指类似dump出xml后,然后取里面的title?
这里面有没有什么规则? 如取几个,或者去布局的几个等?
有没有验证过,定义window后的准确率有多高? 即,进入相似页面,或者滑动后,是否认为是同一个页面。
了解了,多谢。
xctestwd里已有api取title
37Floor has been deleted
请问XCEventGenerator这个API怎么获得啊~~~我在iOS-Runtime-Headers里面没找到,求大神分享一下
另外 oc的 wda提供了
楼主太棒啦
但是第二个地址报404不知道是怎么回事~~~
虽然做伸手党有点可耻,但是我还是想问楼主这么强大的工具什么时候开源给大家用啊~~~~~
41Floor has been deleted
404 那个发帖时链接多了个( ,不明所以。。
这个仅仅是api简易说明。google搜搜就有了
application.running , XCUIApplication 好像没有这个吧...
注! 熊猫直播测试组 出品; 玩游戏关注熊猫直播
已开源了1.0.0.1002。
尚有瑕疵,望见谅。
运行说明:
build 配置 类似wda
启动server前
执行 iproxy
做手机与mac的端口映射
在xcode中的XCTestWDUITests target 里执行 run the test case 启动server,开始监听8001端口
执行 ‘curl -X POST -H "xx"
-d "xx" http ://127.0.0.1:8001/wd/hub/monkey’ ,开始执行monkey
XCTestWDMonkeyController.swift
let monkey = Monkey(frame: app.frame)
monkey.addDefaultXCTestPrivateActions()
monkey.addXCTestTapAlertAction(interval: 100, application: app)
monkey.addXCTestCheckCurrentApp(interval: 10, application: app)
# app后台或退出检测
//monkey.addXCTestAppLogin(interval: 50, application: app)
# 登陆业务逻辑
50次事件加入1次业务关键点检查,无登陆逻辑可注释
monkey.monkeyAround()
MonkeyXCTestPrivate.swift
public func addDefaultXCTestPrivateActions() {
addXCTestTapAction(weight: 35)
#随机点击事件
100-200ms/action
//addXCTestElementTapAction(weight: 10)
#基于控件的点击事件
执行概率: 10/(35+10+5)
300-400ms/action
addXCTestLongPressAction(weight: 1)
addXCTestDragAction(weight: 1)
addXCTestPinchCloseAction(weight: 1)
addXCTestPinchOpenAction(weight: 1)
addXCTestRotateAction(weight: 1)
注!事件序列如何实现:
通过设置一个关键点 引入一个事件序列,当检测到出现关键点时插入自定义事件序列,并立即执行;
可按此原理实现自己的事件序列
public func addXCTestAppLogin(interval:Int, application:XCUIApplication) {
addAction(interval:interval){ [weak self] in
let session = try XCTestWDSessionManager.singleton.checkDefaultSessionthrow()
#检测到出现'登录'关键点时 插入
let root = session.application
if root != nil{
let usage = "xpath"
let tag = "//XCUIElementTypeOther[@name='登录']/XCUIElementTypeTextField"
let element = try? XCTestWDFindElementUtils.filterElement(usingText: usage, withvalue: tag, underElement: root!)
if let element = element {
if element != nil {
self?.addXCTestLoginAction(application: application)
#插入一个特殊事件序列
public func addXCTestLoginAction(application:XCUIApplication) {
#该事件为一个原子事件序列,保证事件中不会插入其他事件
addAction(){ [weak self] in
let session = try XCTestWDSessionManager.singleton.checkDefaultSessionthrow()
let root = session.application
if root == nil{
let usage = "xpath"
let username = "//XCUIElementTypeOther[@name='登录']/XCUIElementTypeTextField"
let passwd = "//XCUIElementTypeOther[@name='登录']/XCUIElementTypeSecureTextField"
let button = "//XCUIElementTypeOther[@name='登录']//XCUIElementTypeStaticText[@name='登录']"
var element = try? XCTestWDFindElementUtils.filterElement(usingText: usage, withvalue: username, underElement: root!)
if let element = element {
if let element = element {
NSLog("XCTestWDSetup-&loginuser find?\(String(describing: element))&-XCTestWDSetup")
let value = ""
let rect = element.wdRect()
let point = CGPoint(x:rect["x"]!,y:rect["y"]!)
let locations = [point]
let semaphore = DispatchSemaphore(value: 0)
let numberOfTaps = 1
self!.sharedXCEventGenerator.tapAtTouchLocations(locations, numberOfTaps: UInt(numberOfTaps), orientation: orientationValue) {
#点击使用坐标,调用xctest私有api
semaphore.signal()
semaphore.wait()
注! 屏幕中控件获取如何加快速度
如果使用 app.descendants(matching: .xxx) 可以获取某种类型的控件集,但获取其中某个控件坐标时,xctest内部会再次执行一次当前界面查找确保控件仍存在,该过程测试时间过长,超过500ms甚至1s更多。故此处进行了优化,缩短了时间 ;最终点击某个控件控制在300-400ms
static func xpathToList(_ root:XCElementSnapshot, _ xpathQuery:String) -& [CGPoint]? {
var mapping = [String:XCElementSnapshot]()
let xml = generateXMLPresentation(root,nil,nil,defaultTopDir,&mapping)?.xml
if xml == nil
{return nil}
let tree = try? XMLDocument(string: xml!, encoding:String.Encoding.utf8)
let nodes = tree?.xpath(xpathQuery)
#筛选生成对应节点
var list = [CGPoint]()
for node in nodes! {
if mapping[node.attr("private_indexPath")!] != nil{
let x = (node.attr("x")! as NSString).floatValue
let y = (node.attr("y")! as NSString).floatValue
if (x &= 0) && (y &= 0)
{continue}
let snapshot = mapping[node.attr("private_indexPath")!]
let isvisible = try? snapshot?.isWDVisible()
#仅isvisible的才视为当前可见,加入到point队列
if isvisible == nil || isvisible! == false
{continue}
let w = (node.attr("width")! as NSString).floatValue
let h = (node.attr("height")! as NSString).floatValue
let cX = Int(x + w/2)
let cY = Int(y + h/2)
let point = CGPoint(x:cX,y:cY)
if list.contains(point) == false {
list.append(point)
return list
#最终返回所选控件对应的坐标队列集
注! app退出如何检测
(坑点!!! app切换或者闪退自身也需要时间,可能获取当前pid时app还未完成退出或切换操作)
app退出通过三种方式检测
1) app退出检测线程 每500ms执行一次, 检测耗时50ms
public func addXCTestCheckCurrentApp(interval:Int, application:XCUIApplication) {
addCheck(interval:interval){ [weak self] in
let work = DispatchWorkItem(qos:.userInteractive){
let isRunning = application.running
#获取当前是否在运行中
let current = Int(XCTestWDFindElementUtils.getAppPid())
#获取当前前台pid
if current != self?.pid || !isRunning{
#当切换到后台或已退出时,执行launch
application.launch()
self?.sleep(5)
self?.pid = Int(XCTestWDFindElementUtils.getAppPid())
DispatchQueue.main.async(execute:work)
static func getAppPid() -& Int32{
var activeApplicationElement:XCAccessibilityElement?
activeApplicationElement = (XCAXClient_iOS.sharedClient() as! XCAXClient_iOS).activeApplications().first
if activeApplicationElement == nil {
activeApplicationElement = (XCAXClient_iOS.sharedClient() as! XCAXClient_iOS).systemApplication() as? XCAccessibilityElement
let pid = activeApplicationElement?.processIdentifier
#通过私有api 获取当前前台pid
if pid == nil{
return pid!
上述检测方式 因为使用xcaxclient私有api和launch 只能在主线程中执行,故只能通过定时方式检测并插入高优先级队列执行。而且要尽量缩短其耗时从而不会影响其他各点击事件的执行频率
2) 低概率检测事件,获取pid前增加延迟
public func addXCTestTapAlertAction(interval: Int, application: XCUIApplication) {
addAction(interval: interval) { [weak self] in
usleep(2000000)
let isRunning = application.running
let current = Int(XCTestWDFindElementUtils.getAppPid())
3) 最后一关把控,当resovle前再检测一次
func resolve() throws {
self._application.query()
let pid = self._application.processID
let activeApplicationElement = (XCAXClient_iOS.sharedClient() as! XCAXClient_iOS).activeApplications().first
let currentprocessID = activeApplicationElement?.processIdentifier
if pid != currentprocessID{
#最后把关 pid不同 则抛出异常
throw OperationError.Error
self._application?.resolve()
此处实现目前仍存在瑕疵,如果app在上述处仍在前台,处却切到后台,monkey可能crash,原因是此时application已不在 _application.resolve崩溃。但当xcode9发布时应该就不存在问题了,新api 提供了state,可以线程检测当前状态
(此崩溃仅会出现在 开启基于的控件点击)
1) 瑕疵修正
2) 性能监控
3) 崩溃分析
4) 控件选择子 算法
我测试这个是可以用,可能没公开。我当时搜google 好像在某个stackoverflow里看到的。
楼主强大 问个问题 就是这个录屏是怎么实现的?是通过screenshort()这个返回的截图合成的视频么
还有一个疑问就是getPageSource()这个拿页面的xml结构的api好慢呀 有没有什么好的办法
录屏我也还没有实现,仅仅是个想法。
你说的getpagesource 是哪个框架的api?
在44楼发了个优化的方案,牺牲一些准确度来提升获取速度。
@感谢楼主回复 getpagesource这个是appium的实际上就是调用的wda的source 取页面的xml结构 因为我现在做了一个事实操控ios的平台 其他部分已经优化了但就是唯独获取页面xml这块 复杂的页面居然要10s 不好意思 还有一个问题 就是XCTestWD貌似要安装两个app 表示没有开发者账号很蛋疼 你这个要安装多少个app呀 在手机上 谢谢
还有一个就是我发现wda的查找控件我一般是根据id 需要1s多 然后点击啥的也要1s多
是的,需要占两个bundle id
我在想一个问题 是不是swift比object-c的效率要高点 我发现相同的操作 wda的运行速度要低于XCTestWD
我一开始就选的wda 所以我现在执行一个action 基本上都要2-3s
真想换成XCTestWD
没有 我看wda,xctestwd代码大致类似。
理论上oc的应该更快些,你那里速度慢 根本原因是用的appium,中间经过了太多过程,比如网络请求
iOS初级用户请教,我在打开XCTestWD.xcodeproj 文件时,提示我下图错误(我的是xcode9 beta5)说是缺少文件,请教如何解决,谢谢~
55Floor has been deleted
我在取xml的时候 是直接通过调用的wda没有经过appium还是差不多慢一点
而且这又有个新的问题 当我用iproxy得时候 映射到本地mac的ip地址是127.0.0.1也就是说 我通本机的ip地址是无法访问的 这个有木有比较好的解决办法呀 对了性能数据的获取我已经做好了 需要的话 可以找我拿
大佬你怎么做的性能数据的获取啊?注入式还是?
是的 直接把代码注入到wda中然后以rest服务的形式发布出来
谢谢楼主回复,我打开后里面还是没找到,我是刚从你的git上clone 下来的,里面没这个文件,能发一个给我吗或者楼主重新传一个到git上,谢谢~
我今天WDA不知道怎么回事报错:
15:23:50.0 XCTRunner[] Running tests...
15:23:50.0 XCTRunner[] Connection peer refused channel request for "dtxproxy:XCTestDriverInterface:XCTestManager_IDEInterface"; channel canceled
Failed to run tests: The operation couldn’t be completed. (DTXProxyChannel error 1.)
大佬知道这个该怎么解决吗?
1.断掉use线 然后重启wda
2.重启手机 重启wda
能解决95%的wda问题
楼主 你的xml是通过sctestwd取得么 怎么取得呀
刚从楼主的git上clone的zip包,报错缺少project.pbxproj 文件,各位大神们,谁有这个文件发一个呗,万分谢谢~邮箱:
所有文件又重新提交了。你再clone试试,应该是环境问题
44楼的 xpathToList
我取的point集合
25楼那个 func 效率低 重写了
我已找到了
XCTestWDXPath 这个类中就有 生成xml的方法 哈哈 好开心
谢谢楼主,还是不行,不知道是不是我的环境问题(我xcode版本Xcode 9 beta 5),还是同样的错误,提示我缺少那个文件,楼主直接发我一个这个文件,我拷贝过来可以用吗?如果可以的话,楼主可以邮件发我下吗?谢谢~麻烦了~ 我邮箱
楼主,我这边遇到了同样的问题,提示
“....Fastmonkey/XCTestWD-master/XCTestWD/XCTestWD.xcodeproj cannot be opened because it is missing its project.pbxproj file.”
刚重新下载,还是不行,在线等~
Xcode 8.3.2
打开同样问题
XCTestWD-master/XCTestWD/XCTestWD.xcodeproj cannot be opened because it is missing its project.pbxproj file.
可能我少传了.. 马上看下
发现那个缺失的文件是写到了 .gitignore 文件里,他已经给复制出来了,其他朋友如果遇到这个问题,可以.gitignore 里找,或者直接clone ,谢谢楼主的积极回复,万分感谢~
感谢 ,已修正了问题。
75Floor has been deleted
我还在晕头中,你已经改好了。
感谢各位大神们,可以打开了!!激动中~
我把项目克隆下来, 发现打不开, 把错误Google了一下, 从原版XCTestWD当中xcodeproj文件的包内容, 复制了一个文件过去, 再重新拉项目文件, 又提示缺东西, 我看又有新的更新, 我pull了就好了, 其他人还说有问题, 然后我发现我修改了xcodeproj文件后git没有提示任何变动, 想了一会才发现是 .gitignore 文件的问题
请问楼主这怎添加
第三方库都用cartfile安装
81Floor has been deleted
application.running 没公开的话,是如何能使用的呢? 你用的是Xcode9?
我的是8.3.3 ,这个试试便知了
谢谢回复,安装好了,再问一下可否做到多台设备一起测试
可以的。但需要代码修改下。
1启动server监听的端口 2iproxy端口 3curl命令请求的端口
有空我再改下,xcodebuild 直接完成 1,2,3 ,这样可以简单对接到jenkins支持多机了
楼主 swift 里面怎么取一个map的value值么
这个语言真的是坑呀
有那么点像python。但!,?,_ 这些并不友好。而且异常捕获也很坑
// 查询字典
dict["name"]
// 遍历字典中所有的值
for value in dict.values {
print(value)
if mapping[node.attr("private_indexPath")!] != nil{
let snapshot = mapping[node.attr("private_indexPath")!]
参照swiftMonkey的似乎没有限制时长的,我在原地方看到有个扩展方法设置跑的时间
extension Monkey {
func startTesting(forDuration duration: TimeInterval) {
let start = CFAbsoluteTimeGetCurrent() // start time
actRandomly()
actRegularly()
} while ((CFAbsoluteTimeGetCurrent() - start) & duration)
ok这个时长已计划
突然发现xctestwd 不支持utf-8的中文 怎么搞呀
输入中文字符 ?
查询控件的时候
控件的id为中文
let value = request.jsonBody["value"].string 这里取出来的就是???????
request这个里面就已经解析成?了 转码也转不鸟了 我看了下源码 是把所有的存成了Uint8
不知道作者怎么想的
调式下看看 是从哪里开始存成??了。感觉上层macaca也会有获取中文的需求,不应该啊
解析请求的时候 存成了Uint8 这玩意 这玩意存不鸟中文
我明白了。你是说,发给 xctestwd的请求
如 控件的id是个中文。 xctestwd接收到就解析成 uint8了。。
达峰帮看看?
对的 对的 而且能不能把两个应用合成一个呀 没有开发者账号 要是再加一个应用就不行了
clear 清除文本这个方法写的也有问题
哪个clear清除?
你发的请求是什么?
确认的问题请提issue
已在github上提了
(RequestRoute("/wd/hub/session/:sessionId/element/:elementId/clear", "post"), clearText),
这个方法 element?.typeText(“”) 这样是不会清除文本的 我改了下:
let text:String = firstNonEmptyValue(element?.wdValue() as? String, element?.wdLabel()) ?? ""
let l = text.characters.count
var bb = "\u{8}"
var typeString = ""
for _ in 1...l {
typeString=typeString + bb
element?.typeText(typeString)
这样就可以清除了 谢谢
clear的方法麻烦给xctestwd提个merge request
105Floor has been deleted
刚才试了下 最新版的 只test xctestwduitests 只会安装一个应用了
? 我也同步下
中文的还没回复 清除的 看下103楼 目前还发现xpath定位不是很准确
用真机跑可以得到截图和crash日志吗
xcode里点结束时有个日志路径
xxxxx/test/attachments/
包含截图和crash
github上XCTestWD的管理员SamuelZhaoY 这哥们大家遇到么 有点无语呀
你好,我是XCTestWD 的作,对于你提出的部分问题, 因为考虑到实际价值,所以做了bypaas.
只是觉得 应该充分的沟通 这个github 评论模式不太习惯
欢迎钉钉留言 Samuel.蕉庵 +65-, 提交issue 建议提供多的信息, 关于一些想法可以给一些完整的建议,而不是只言片语.
对issue 处理及时,其实在作者的角度已经是对答问者最大的负责.
特别是同时提出4 - 5 个issue 的时候, 不妨先整理一下思绪
115Floor has been deleted
您好 我这边成功用carthage安装了swiftJSON.framework,但是swifter.framework却失败,查看发现git地址已经404了,不知道是该如何解决呢?
github "glock45/swifter" == 1.3.3
试试这个。
成功了!感谢回复
每次执行如下命令后
都会造成如下错误
不知道该如何解决?
monkey 跑起来了吗?
可以把异常断点开下,看看crash在哪里?
运行命令后终端有输出后中途停止在这里了
找到报错的地方是这里
是说 server都没起来吗?
你那里xcode版本是多少的?
先试试xcode中启动 server能运行起来不?
这样是不是运行成功了?
server启来了。
curl -X POST -H "Content-Type:application/json" -d "{\"desiredCapabilities\":{\"deviceName\":\"xxxx\",\"platformName\":\"iOS\", \"bundleId\":\"xxxx\",\"autoAcceptAlerts\":\"false\"}}"
看看monkey能跑起来不?
大神 有如上的报错
没明白他说的找不到的文件是什么??
这步执行过了吗?
显示如上。
这时我应该做什么操作?
我执行了如下命令
就报了最初的错误
执行只需要三步就可
启动server (或xcode中启动) (或xcodebuild) 2选1
3.curl -X POST -H "Content-Type:application/json" -d "{\"desiredCapabilities\":{\"deviceName\":\"xxxx\",\"platformName\":\"iOS\", \"bundleId\":\"xxxx\",\"autoAcceptAlerts\":\"false\"}}"
正常情况 执行完curl app就启来开始跑monkey了
你那里是不是重复启动server了?
132Floor has been deleted
确实是重复启动server了!
但是第二步(xcodebuild)报如下错
我把设备断开连接后重启 再次执行第二步(xcodebuild -project XCTestWD.xcodeproj \
-scheme XCTestWDUITests \
-destination 'platform=iOS,name=我的devicename' \
XCTESTWD_PORT=8001 \
clean test)
后,又报另外的错误!
先用xcode启动的吧。 xcodebuild的回头我看看
跑fastmonkey时,xcode要一直打开么?
如果是用xcodebuild执行, 则不需要xcode
xcodebuild我多试了几次
如上,这种情况就是成功了吧?
然后我执行了第三步后
您知道是什么情况吗??
多试了几次,居然莫名可以跑起来了
你的mac插了多台iphone吗?
如果是的话,iproxy
后需要加serialid 指定哪台iPhone设备做端口映射。 然后curl 中执行对应iPhone设备
只插了一台呢~
我用xcodebuild方式跑起来的截图和crash日志在哪里找呢
xcode里中断运行时 有个log路径的日志输出
xxx/XCTestWD-xxx/Logs/Test/Attentment
您说的这个是在xcode中启动server的时候的方式吧?
我这边想问的是在终端用xcodebuild启动server的那种,结束与获得截图与log的方式?
应该是一样的。同个目录
楼主,我前几天由于工作原因,一直没来得及使用你的,今天git下来体验,run的时候报错:bridging header '/Users/xiatian/Fastmonkey/XCTestWD-master/XCTestWD/XCTestWD/XCTestWD-Bridging-Header.h'不知道是楼主没上传还是要在哪下载呢?
楼主这边提供的没有问题,应该是你的路径错了
我直接git clone 的,接着在路径下carthage update,然后运行xcode打开XCTestWD.xcodeproj,运行,就报这个错误啊~~~
你看下 你工程里应该没有XCtestWD-Bridging-Header.h文件,应该有一个XCTestWDUITests-Bridging-Header.h文件,看它在什么路径下,并在 Build Settings -& Header Search Paths 项里做修改试试
确实没有XCtestWD-Bridging-Header.h文件,在XCTestWDUITests里面有一个XCTestWDUITests-Bridging-Header.h文件
还是报那个错误
xcode buildsetting有问题。
xctestwd中没有用到oc,swift混编,header search path,objecktive-c bridging header 配置可去掉再试试。xctestwduitest中用了混编才需要 xctestwduitest-bridging-header.h
我现在可以在xcode/DerivedData/xxxx/Logs/Test/Attachments 路径里面找到截图,您说的crash log也是会生成在 Attachments文件夹里面吗?
该crash log是否可以追踪到app代码问题?
crash 也在Attachments里
就是系统生成的崩溃堆栈文件,研发有对应的符号文件是可以定位的
中提及了此贴
为了不只做伸手党,我把我的配置过程以及一些遇到的简单问题做了个总结,萌新们可以来看下具体的配置流程,遇到大问题再来问大佬吧~~
iproxy ,iproxy命令怎么安装的?
brew install usbmuxd
多谢,我也刚找到
之前配置的比较乱,打算重新配置下,结果遇到了这个问题,尝试解决未成功...
重装下那个 fuzi
登录这块的用户名和密码如何配置?iOS代码没去学习过,看的不是太懂。。。- -
自己重新carthage update了很多次都没解决原来是 cezheng/Fuzi 版本的问题,之前1.0.1一直失败。
请问Monkey时间设定的功能快完成了吗,小白伸手党万分感谢
这个还没有上日程。。有其他 job 要先弄
登录的 可以先看看 44楼
懂了,设计的很好,自定义事件处理,赞
你说的时间设定 是指 设 monkey最多跑多久吧?
就是给monkey设定运行时间,例如在如下命令行里添加 time = 1000s 一项,它就会自动在1000秒时停止monkey.
curl -X POST -H "Content-Type:application/json" -d "{\"desiredCapabilities\":{\"deviceName\":\"xxxx\",\"platformName\":\"iOS\", \"bundleId\":\"xxx\",\"autoAcceptAlerts\":\"false\"}}"
18:03:52.821 xcodebuild[6] Error Domain=IDETestOperationsObserverErrorDomain Code=4 "Test operation was canceled. If you believe this error represents a bug, please attach the log file at /Users/xxxxxxxx/Library/Developer/Xcode/DerivedData/XCTestWD-ecleedtsdbxztvfcvaqqgwnsgqxl/Logs/Test/932A09AF-A07A-45B2-BBDB-42CAE9A7F4C5/Session-XCTestWDUITests-_180350-vRucrT.log" UserInfo={NSLocalizedDescription=Test operation was canceled. If you believe this error represents a bug, please attach the log file at /Users/xxxxxxxx/Library/Developer/Xcode/DerivedData/XCTestWD-ecleedtsdbxztvfcvaqqgwnsgqxl/Logs/Test/932A09AF-A07A-45B2-BBDB-42CAE9A7F4C5/Session-XCTestWDUITests-_180350-vRucrT.log}
Testing failed:
Command /bin/sh failed with exit code 127
** TEST FAILED **
The following build commands failed:
PhaseScriptExecution Run\ Script /Users/xxxxxxxx/Library/Developer/Xcode/DerivedData/XCTestWD-ecleedtsdbxztvfcvaqqgwnsgqxl/Build/Intermediates/XCTestWD.build/Debug-iphoneos/XCTestWDUITests.build/Script-7FA43F311F0CB5.sh
请问这个错误怎么处理
这段Log 没有什么有用的信息,没能看出是什么错误,再详细描述下?
评论都看了 其中出现的错误也都改了 然后run的时候 报这个
不知道怎么
export XCODE_APP_SUPPORT_DIR=/Applications/Xcode.app/Contents/Developer/Library/Xcode
export XCODE_PRODUCT_BUILD_VERSION=8E3004b
export XCODE_VERSION_ACTUAL=0833
export XCODE_VERSION_MAJOR=0800
export XCODE_VERSION_MINOR=0830
export XCTESTWD_PORT=8001
export XPCSERVICES_FOLDER_PATH=XCTestWDUITests.xctest/XPCServices
export YACC=yacc
export arch=armv7
export YACC=yacc
export arch=armv7
export diagnostic_message_length=116
export variant=normal
/bin/sh -c /Users/xxxxxxx/Library/Developer/Xcode/DerivedData/XCTestWD-ecleedtsdbxztvfcvaqqgwnsgqxl/Build/Intermediates/XCTestWD.build/Debug-iphoneos/XCTestWDUITests.build/Script-7FA43F311F0CB5.sh
d2af20afea33edcaf515e
/Users/xxxxxxxxx/Library/Developer/Xcode/DerivedData/XCTestWD-ecleedtsdbxztvfcvaqqgwnsgqxl/Build/Intermediates/XCTestWD.build/Debug-iphoneos/XCTestWDUITests.build/Script-7FA43F311F0CB5.sh: line 12: ideviceinstaller: command not found
Command /bin/sh failed with exit code 127
18:15:54.733 xcodebuild[7] Error Domain=IDETestOperationsObserverErrorDomain Code=4 "Test operation was canceled. If you believe this error represents a bug, please attach the log file at /Users/jxxxxxx/Library/Developer/Xcode/DerivedData/XCTestWD-ecleedtsdbxztvfcvaqqgwnsgqxl/Logs/Test/F063AE42-B5A6-41C3848607/Session-XCTestWDUITests-_181552-bw8Dwx.log" UserInfo={NSLocalizedDescription=Test operation was canceled. If you believe this error represents a bug, please attach the log file at /Users/xxxxxxx/Library/Developer/Xcode/DerivedData/XCTestWD-ecleedtsdbxztvfcvaqqgwnsgqxl/Logs/Test/F063AE42-B5A6-41C3848607/Session-XCTestWDUITests-_181552-bw8Dwx.log}
Testing failed:
Command /bin/sh failed with exit code 127
** TEST FAILED **
The following build commands failed:
PhaseScriptExecution Run\ Script /Usersx'x'x'x'x'x'x'xLibrary/Developer/Xcode/DerivedData/XCTestWD-ecleedtsdbxztvfcvaqqgwnsgqxl/Build/Intermediates/XCTestWD.build/Debug-iphoneos/XCTestWDUITests.build/Script-7FA43F311F0CB5.sh
(1 failure)
/Users/xxxxxxxxx/Library/Developer/Xcode/DerivedData/XCTestWD-ecleedtsdbxztvfcvaqqgwnsgqxl/Build/Intermediates/XCTestWD.build/Debug-iphoneos/XCTestWDUITests.build/Script-7FA43F311F0CB5.sh: line 12: ideviceinstaller: command not found
Command /bin/sh failed with exit code 127
brew install ideviceinstaller
这个装下试试
尴尬 看到了。。。。
装完了可以run了
不过这个参数制定在哪 比如多少次 还有间隔
目前这块还缺少 后续会补充上的。比如总运行时间,或者总点击次数。每次点击固定间隔,以及每次点击随机间隔
1.总运行时间,总点击次数。action固定间隔,action随机间隔(暂时内编码,后续参数化)
Monkey.swift
let elapsedTime = n
//设定跑monkey n秒后退出
let actionMax = n
//设定跑monkey n个action后退出
(elapsedtime 与actionmax 二选一)
let throttle = n * 1000
randomize_throttle=false,则每个action之间 sleep throttle( n个毫秒)
let randomize_throttle = false
// randomize_throttle=true,则每个action之间 sleep
ramdom(throttle) 个毫秒
"多少次 还有间隔 "
已更新 看看是否符合需求
“添加 time = 1000s 一项,它就会自动在1000秒时停止monkey”
已更新 看看是否符合需求
不知道为什么跟着步骤走 都是这个报错
"code signing is required .."
你那里XCTestWDUITests配置的签名有问题
XCTestWDUITests-&General-&Signing
与 XCTestWD 一样
大神!!拜谢!!在github上下载最新的就可以了是吧!
最近发现经常会有这个问题,自己实现的解决办法是设备断连再重启,想知道大神有没有在根本上解决问题的方式?
从log上看 是报的签名invalid。
iphone上的 ‘设置-&通用-&设备管理’ XCTestWDUITests 设置受信任了吧?
一般跑完一次后,再跑第二次或第三次会发生这样的错误。
请问xxx/XCTestWD-xxx/Logs/Test/Attentment路径下的crashlog是发生了闪退才会生成相应文件是吗?
app闪退后仍会重新跑知道完成1000s才停止吗?
嗯 app闪退之后,监控线程就检测到了,然后会自动拉活待测的app然后继续跑monkey。 除了退出还有跳转到其他app也会切回继续跑。
crashlog 会生成在Attentment目录里,让研发查查崩溃的堆栈看是否能定位闪退。
第二次,第三次会出这个错误?我有空了调试看看。
请问下,第一步执行iproxy 命令,一直显示 waiting for connecting,是不是苹果手机需要越狱?;用xcode运行XCTestWD在真机上跑起来了,不过控制台没有输出。还有devicename就是苹果手机的udid吗?
iproxy后显示waiting for connecting 是对的,说明8001端口已经开始做映射了。 iphone 不需要越狱
需用xcode运行 XCTestWDUITests ,而不是XCTestWD,运行成功控制台会显示 server已启动并监控8001
devicename 不是udid 在xcode设备info里可以看到 是个string
感谢大佬的细心指点,我大概理解了,不过还是想请问下devicename
在xcode设备info里 是哪个string
是在 Xcode -& Window -&Devices
这是什么原因呢
第一步执行了,第二步成功了,第三步报这个错
或者在设备中,打开 通用→关于本机→名称
(该名称就是你的devicename)
iproxy 没执行成功 或 server没起来?
只是每次粗暴的全都停止,重新来一遍才能解决问题,不清楚具体原因。
你这个是不是上一个session还在占用着端口,下一次测试就开始了。 感觉像是这样子, 这两天我再改下版。跳过server这环节 到时候再试试。
private func fetchPort() -& in_port_t {
let arguments = ProcessInfo.processInfo.arguments
let index = arguments.index(of: "--port")
var startingPort:Int = Int(portNumber())
if index != nil {
if index! != NSNotFound || index! & arguments.count - 1{
startingPort = Int(arguments[index!+1])!
var (isValid, _) = checkTcpPortForListen(port: in_port_t(startingPort))
while isValid == false {
startingPort = startingPort + 1
(isValid, _) = checkTcpPortForListen(port: in_port_t(startingPort))
return in_port_t(startingPort)
查了下代码 原因基本明了。server启动时会检测端口是否被占用,如果占用则继续检测+1端口。直到有空闲端口
所以从log上看 你那里8001 应该是上个task还在占用中,本次监测完可能已经建立8002连接了。
增加跳过server 跳过发请求机制,运行xctestwduitest 直接启动待测app直接跑monkey (临时内编码,后续参数化)
XCTestWDMonkey.swift
public class XCTestWDMonkey {
func swiftmonkey() -& Int {
let bundleID = "com.pandatv.test.meizi"
//修改bundleid 为待测app 即可
var app : XCUIApplication!
var session : XCTestWDSession!
let path :String? = nil
app = XCUIApplication.init(privateWithPath: path, bundleID: bundleID)!
app!.launch()
XCTextWDRunner.swift
class XCTextWDRunner: XCTestCase {
var serverMode = true
// true 为原server 请求模式, false 为直接启动跑monkey模式
var server: XCTestWDServer?
var monkey: XCTestWDMonkey?
新增加的 XCTestWDMonkey.swift 项目中自行添加下
已更新 用新Mode 试下看看
“再问一下可否做到多台设备一起测试”
应该可以支持你说的需求了
使用新mode , xcodebuild时用不同的 -destination 'platform=iOS,name=(your device name)'
只需执行第二步和第三步?
只需要执行第二步就行了
大神报错情况如下,是不是少上传了某文件?
这个就在server目录下,工程里自己添加下就行。 我本地开发用的另一套工程怕全拷过来又出最开头那个问题了。
左侧选server。 File-&Add Files to "XCTestWD" -& 选XCTestWDMonkey.swift -&add
按照大神描述的设置完成后
项目运行无报错后
xcodebuild -project XCTestWD.xcodeproj \
-scheme XCTestWDUITests \
-destination 'platform=iOS,name=xxxx' \
XCTESTWD_PORT=8001 \
clean test
结果一直报错如下
Xcode的手动执行看能跑起来吗?
bundleID改成你自己app了吧?
能跑起来了,几秒种后报错
报的错误是什么?
XCTestWDMonkey我内编码的bundleID是我测试用的,这个你那修改的对吧?
终端运行报这样的错,和上面截图一样的
都是能看到成功启动了app,短暂的跑了几秒后就失败报错
你那里把 异常断点打开,再跑次看看崩到哪句里了
开启方法在120楼。exception 勾选上
我本地也调式看看。。
这边为什么乘两次1000??
前面的 “0”
是默认0 秒吗
支持的是微秒,所以 秒*
0表示不生效
我这里调试没出问题 -_-。 你把那个xxx.log发出来看看。
那边elapsedTime时间到了后
终端输出的log 也是
Testing failed:
Run test suite XCTextWDRunner encountered an error (Early unexpected exit, operation never finished bootstrapping - no restart will be attempted)
Failing tests:
-[XCTextWDRunner testRunner()]
** TEST FAILED **
这样的吗??
正常结束 什么样子的?
你那里是用新mode 然后设的 elapsedtime = 0了?
超时时 我直接exit了 所以xctest会认为test failed 。是正常的。后续看看怎么改下 正常结束下
serverMode 设为了 false
elapsedtime = n * 1000 * 1000
(n分别设置过10000 或 30 等等 )
按这个增加下崩溃断点。
跑下看具体崩溃到哪里了。
发现elapsedtime 设置稍微大一些就会这样,比如10000s就会发生以上错误
THX 是个bug。
U32int 越界了
设置比如100s的时候是可以正常运行的,10000s则报错,可以解决吗
已修改。更新下吧
嗯,谢谢了
221Floor has been deleted
222Floor has been deleted
223Floor has been deleted
elapsedtime =10000 就行,不用*了
225Floor has been deleted
帮来个215楼那个带具体定位。
这个截图没法定位错误。
这次没有绿色的崩溃点。。
有红色错误如206楼
设10000s时,那边可以坚持运行多久?
这边可以正常运行,但没几秒就停止了
我这能一直跑着的。 要不你随机加一些断点?
尝试了下,有几次是运行到这里就报错
usleep 你这是老代码了。又新更新了,解决了elapsedtime &10000 越界的问题。 你update新的再试试看?
DispatchQueue.global().async {
if self.elapsedTime != 0{
usleep(useconds_t(self.elapsedTime))
Thread.sleep(forTimeInterval: TimeInterval(self.elapsedTime))
232Floor has been deleted
不应该呢,我12点多重新拉取了一次的,后来就是觉得是不是没更新好 在快两点的时候又重新拉取得呢
最后一次拉取的时候 以下部分显示的是
" 2 hours ago "
拉取方法是 git clone xxxx
我再一次通过另一种download的方式新拷下来了代码。
发现大神拷出来的这段代码是应该是在174行,
我上方断点部分的是在203行
这两段代码类似
经确认发现
Monkey.swift文件中
174~177行 代码为大神新修改的代码
203~207行 代码仍为老代码
我将第二部分照着上方做了修改,目前已经打破无法跑过8秒的问题,已经跑了一段时间了!! 拜谢大神耐心回复
重新拉下 应该就行
中提及了此贴
,求教大神,执行xcodebuild -project XCTestWD.xcodeproj -scheme XCTestWDUITests -destination 'platform=iOS,name=lemon' XCTESTWD_PORT=8001 clean test 出现如下错误,求教如何解决,新手伸手党,惭愧~~
谢谢大神回复,这个设置我已经按照 的扫盲帖子修改过了,如下图:还是不行,跟上面同样的错误,疑惑
不是xctestwd 而是XCTestWDUITests 你的截图是xctestwd
谢谢大神的细心回复,看了你的回复和的帖子我有点不解,在步骤中描述说修改的是XCTestWD 的build settings,见下图,所以又蒙圈了~~
我自己实际操作了两种配置方案,都会报错,由于是小白级的伸手党,所以感觉无从下手,还请大神帮忙看下如何处理,万分感谢。
哦。sorry 我240楼 回答错了。。
xctestwd中的去掉,xctestwduitest需要保留
"xctestwd中没有用到oc,swift混编,header search path,objecktive-c bridging header 配置可去掉再试试。xctestwduitest中用了混编才需要 xctestwduitest-bridging-header.h"
第二个图里 报错 是因为去掉了 所以找不到相关的引用
谢谢回复,依旧还是出现之前我截图的那个错误, 我自己先搜搜看有没有解决方案,其他人有遇到或者知道解决方案的,帮忙回复下,万分感谢~
你那里xcode是多少版本?
果不其然。 9.0 太超前了。你看下你那的swift版本用的是多少?
需修改为swift3
我看了下,我选的是3.2,我再搜搜看,实在不行我就重新下个8.3的xcode再试试看 ,谢谢了
建议还是先换8.3吧。 9.0beta 或许有其他坑
中提及了此贴
我装了个8.3的,xctestwd运行成功了,但执行最后一个命令时,xctestwd自动打开后闪一下就关闭了,然后就出现下图的错误,monkey没有跑起来,辛苦帮忙再看下,感恩~?。另外我想问下,我时跑你的demo的,熊猫直播我真机上需要安装吗?
你上面图里输入的curl 需要先装熊猫tv才能调启它跑monkey的。
或者curl里bundleID改成你自己要测试的app
嗯 谢谢楼主,熊猫直播和熊猫主播版我都安装了,运行还是没跑起来 ,错误跟上面#251一样,我用我们自己要测的app,也是同样的错误失败提示,xctestwd一闪就关闭了。
我把XCTestWDMonkey.swift.中 的bundleID修改成要测试的app bundleID,也是老样子,
XCTestWDMonkey是新mode用的。如果用curl 就不用改XCTestWDMonkey
你那里iphone上设备-通用-设备管理-开发者 信任了吗
是这个信任吗?下图的这个信任我是确认了的。还是说要在设置-&通用-&描述文件与设备管理 里去信任什么证书之类的东西?
对应xctestwduitest的开发者账号需要 信任。
这样 你按#214 楼方法 把崩溃断点加上。跑次看看崩在哪里了
hi 楼主,断点显示没有错误,如下图所示:
另外我在xtestwd页面加了个button看了下,运行后,进到这个xcrtestwd主页面之后就停留在这个页面了,然后就没有调起熊猫tv
Xcode显示:
xtestwd 不用管的。就是个空壳
你看下 monkey.swift里
public class Monkey {
let elapsedTime = 0
let actionMax = 0
let throttle = 0 * 1000
// ?ms *1000
let randomize_throttle = false
这几个值设的多少?
class XCTextWDRunner: XCTestCase {
var serverMode = true
var server: XCTestWDServer?
xctestwd一闪就关闭了 是对的。
另外你那里 熊猫tv app启动就闪退了? 还是一点也没起来?
还是起来跑了一会再闪退的?
谢谢回复,我是直接从你github上clone下来的,所以没改动
那这样吧。在XCTestWDMonkeyController里 随机加些断点,单步调试跑下 看看?
internal static func swiftmonkey(request: Swifter.HttpRequest) -& Swifter.HttpResponse {
var app : XCUIApplication!
var session : XCTestWDSession!
let desiredCapabilities = request.jsonBody["desiredCapabilities"].dictionary
let path = desiredCapabilities?["app"]?.string ?? nil
let bundleID = desiredCapabilities?["bundleId"]?.string ?? nil
if bundleID == nil {
app = XCTestWDSession.activeApplication()
app = XCUIApplication.init(privateWithPath: path, bundleID: bundleID)!
app!.launchArguments = desiredCapabilities?["arguments"]?.arrayObject as! [String]? ?? [String]()
app!.launchEnvironment = desiredCapabilities?["environment"]?.dictionaryObject as! [String : String]? ?? [String:String]();
app!.launch()
if app != nil {
session = XCTestWDSession.sessionWithApplication(app!)
XCTestWDSessionManager.singleton.mountSession(session)
try? session.resolve()
if app?.processID == 0 {
return HttpResponse.internalServerError
NSLog("XCTestWDSetup-&start fastmonkey&-XCTestWDSetup")
_ = app.descendants(matching: .any).element(boundBy: 0).frame
let monkey = Monkey(frame: app.frame)
monkey.addDefaultXCTestPrivateActions()
monkey.addXCTestTapAlertAction(interval: 100, application: app)
monkey.addXCTestCheckCurrentApp(interval: 10, application: app)
//monkey.addXCTestAppLogin(interval: 50, application: app)
monkey.monkeyAround()
xetestwd闪先后,熊猫tv app没起来
-_- 你的iphone手机不会是 ios11吧?
不是,我试了两台:iPhone6s
iPhone6 10.3.2
你用的是多少的,我换个一样的看下
嗯。我这是10.3 之前10.0也试了。应该10,9 问题都不大。
我在 private func registerRouters() 打了个断点,貌似这个方法都没调起来,XCTestWDMonkeyController也没进去,心塞~
貌似是XCTestWD
系统限制了没起来??
还是回到原点 看看开发者账号那块是不是有什么问题?
我的开发者账号配置,楼主辛苦~感谢不厌其烦的回复,iOS伸手党小白?
269Floor has been deleted
hi 楼主 跟研发确认了,我用的公司的测试设备,你说的那些都是添加了的,但是还是依旧。。。。。
实在不行 你换个个人开发账号试试。占2个bundleID 免费版的就行。
hi 楼主,又来麻烦你了,我在XCTestWDMonkeyController里打了断点,发现到下图所示的位置后,继续执行就自动跳出去了,然后就一直不再往下执行了。
这里只是注册一些路由的回调,你那控制台log里有 XCTestWDSetup-&
如果有表示server 启动成功了
嗯,谢谢楼主回复,有看到,启动xctestwd后,就一直停在这个位置了,然后就没有然后了 ,我自己慢慢调调看吧,谢谢楼主,辛苦
14:05:18.752445 XCTRunner[5] Running tests...
14:05:20.780470 XCTRunner[5] Continuing to run tests in the background with task ID 1
Test Suite 'All tests' started at
14:05:21.378
Test Suite 'XCTestWDUITests.xctest' started at
14:05:21.379
Test Suite 'XCTextWDRunner' started at
14:05:21.380
Test Case '-[XCTestWDUITests.XCTextWDRunner testRunner]' started.
Start Test at
14:05:21.381
14:05:21.412191 XCTRunner[5] com.apple.test.XCTestWDUITests-Runner
14:05:21.412314 XCTRunner[5] XCTestWDSetup-&&-XCTestWDSetup
谢谢楼主提供的源码,我的问题解决了,现在可以跑起来了,发现问题竟然出现在设备名的命名上,我把我全英文字符的设备名改成xx's iphone,竟然跑起来了,但是没搞明白为什么会这样。
build 一直卡在这个地方
/bin/sh -c /Users/myName/Library/Developer/Xcode/DerivedData/XCTestWD-bskdnjihiujjaraablsvmjfcodst/Build/Intermediates/XCTestWD.build/Debug-iphoneos/XCTestWDUITests.build/Script-7FA43F311F0CB5.sh
ecab65eca01ae1da33aee78296b6 ecab65eca01ae1da33aee78296b6
这个脚本是不是需要网络?之后莫名奇怪的好了。
swipe事件源码在哪个位置?表示看不懂swift代码
没有直接的swipe事件
drap事件、多次tap事件 也能达到swipe效果
内部调的都是 私有的api
sharedXCEventGenerator.pressAtPoint
好的,测试支持最大的时间是多久?
目前time可以设置 见
不设则一直monkey, 我测试一直跑到iphone卡死
大师没时间搞了
282Floor has been deleted
请问你用多台设备测试成功了吗?我这边用xcodebuild方式,在iproxy中添加了serialid之后,再通过curl会提示number of avaible devices == 2,是因为curl中的内容填写的不正确吗?
xcodebuild设置不同的deviceName也不行,iproxy
serialid xxx设置了之后,curl运行之后提示number of available devices == 2,不知道是哪里出错了,大神能不能说的更详细一些呢?
多台设备的话 别用server模式了。也就不用iproxy了。 直接用新mode。见191楼
新mode直接内编码直接启monkey,跳过了server及插入命令的过程。
跑多台设备的话,xcodebuild -project XCTestWD.xcodeproj
-scheme XCTestWDUITests
-destination 'platform=iOS,name=xxx'
XCTESTWD_PORT=8001
clean test,还是用这个命令吗?这个destination将name=xxx修改成另一台设备的名字即可对吧?这个port需要做修改吗?
嗯 还是的。 port 可以不用。带上也没事
只修改了name的字段之后,在跑第二台设备的时候,是一台5C设备,系统是10.3.3,先跑起来了,然后出现了这个异常:
Find the Application "com.xxx" 0x15e064c0
Snapshot accessibility hierarchy for com.xxx
15:23:11.0 XCTRunner[314:39254] XCTestWDSetup-&start fastmonkey&-XCTestWDSetup
Find the Any
Use cached accessibility hierarchy for com.xxx
Find: Descendants matching type Any
Find: Element at index 0
Find the Application "com.xxx" 0x15e064c0
Use cached accessibility hierarchy for com.xxx
XCTRunner(314,0x3b7b1e40) malloc: *** mach_vm_map(size=) failed (error code=3)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
15:23:20.0 XCTRunner[314:39254] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSXPCEncoder checkObject:]: This coder only encodes objects that adopt NSSecureCoding (object is of class 'NSMallocBlock_').'
*** First throw call stack:
(0x1dfdbb3d 0x1dx1dfdba85 0x1e836ecd 0x1e836c2f 0x2cad7d 0x1ex1ex1ex1ex1eaeaex1dfdef63 0x1df07dc8 0x2da867 0x240dd8c 0xxxxxx1d6bd6b8d77 0x1d6ad6add05 0x1df97d69 0x1df95e19 0x1dee91af 0x1dee8fd1 0x1e83daf5 0x1e88adb9 0x24040ac 0xxx1dfedf042b9 0x2d06bd 0xx2d12b 0x2cffeb 0x2d0a39 0x2cdc23 0x2cd74b 0x2cd9bf 0x2cdc23 0x2cd74b 0x2cd9bf 0x2cdc23 0x2cd74b 0x2cd9bf 0x3160cb 0x2dc279 0x315f63 0x2b962b 0x30c439 0x1df97f15 0x1dfdf95f47 0x1dee91af 0x1dee8fd1 0x1f693b41 0xxf6fc5 0x1d6d64eb)
这个错误是代表有些区域获取结构的时候出现了异常吗?
mach_vm_map(size=) failed (error code=3)
*** error: can't allocate region
内存ran out了?
每次都在固定的位置Terminatie吗?
XCTRunner(242,0x3b9c9e40) malloc: *** mach_vm_map(size=) failed (error code=3)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
17:00:07.0 XCTRunner[242:6204] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSXPCEncoder checkObject:]: This coder only encodes objects that adopt NSSecureCoding (object is of class 'NSMallocBlock_').'
这个mach_vm_map括号里面的size值都是一样的,基本都是刚起来到了某一个页面加载页面的时候出现的
哦。单个机跑的时候到 同样这个页面能monkey吗?
每步执行截图如何保存,runner没有权限写相册。另外截图量太大,对手机硬盘是个考验,大神们有何看法
好像跟是不是单机没关系,而且后来再跑的时候,不知道是不是因为没有正常结束,会出现这个错误提示:
), NSLocalizedRecoverySuggestion=Too many instances of this service are already running., NSLocalizedDescription=Too many instances of this service are already running.}
17:51:19.038 xcodebuild[6] Error Domain=IDETestOperationsObserverErrorDomain Code=6 "Early unexpected exit, operation never finished bootstrapping - no restart will be attempted" UserInfo={NSLocalizedDescription=Early unexpected exit, operation never finished bootstrapping - no restart will be attempted}
Testing failed:
Test target XCTestWDUITests encountered an error (Early unexpected exit, operation never finished bootstrapping - no restart will be attempted)
** TEST FAILED **
你那个内存ran out 是因为多机并行跑出的?
还是解析某个页面时出的?
用另一台6P就没有出现这个问题,用5C的这个单机跑也出现过这个问题~
ok 这次明白了。 这台5c支持的有问题,你在github上提交个issue简单说下问题吧,我这先记录下。但是我没有5c 具体原因不是很确定
并且xctest里面不能发起网络请求
截图无非是用来查看crash前一些截图 及 log来分析崩溃场景。
所以无需大量保存截图,只需保留crash前十几张即可。
我在代码中增加了手动造了一个崩溃,具体如下:
在Delegate.m中添加: self.window.rootViewController = self.tabBarC
self.window.backgroundColor = [UIColor orangeColor];
[self.window makeKeyAndVisible];
[NSTimer scheduledTimerWithTimeInterval:5 target:self selector:(test) userInfo:nil repeats:NO];
NSMutableArray *array1 = [NSMutableArray array];
self.array = array1;
return YES;
并且添加函数: - (void)test{
[self.array addObject:@"1"]; }
然后运行之后出现错误:(一般是在app自己卡住出现了崩溃的情况下会出现下面这样的错误)
Snapshot accessibility hierarchy for com.xxx
15:22:03.469370 XCTRunner[404:27133] *** Terminating app due to uncaught exception '_XCTestCaseInterruptionException', reason: 'Interrupting test' *** First throw call stack: (0x184cb41c0 0xx184cb1db1f0 0x 0xxc 0xxxxc 0xx 0x 0xx 0xx183b48dd4 0x183b3d1c0 0x183b4e0c4 0x183b3d1c0 0x183b41d6c 0x184c61f2c 0x184c5fb18 0x184b8e048 0x1x 0x1x 0x 0x184cba160 0x184badc3c 0x1001dca30 0xx100217dac 0xx1001dcd80 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x1001e88dc 0xx 0x 0x184ccc5f7b0 0x184b8e048 0xx18abab09c474 0x183b705b8) libc++abi.dylib: terminating with uncaught exception of type _XCTestCaseInterruptionException
15:22:09.940061 XCTRunner[419:27958] Running tests...
15:22:10.819493 XCTRunner[419:27958] Continuing to run tests in the background with task ID 1
Restarting after unexpected exit or crash in XCTextWDRunner/testRunner(); summary will include totals from previous launches.
Test Suite 'Selected tests' started at
15:22:11.419
Test Suite 'XCTestWDUITests.xctest' started at
15:22:11.422
Test Suite 'XCTestWDUITests.xctest' failed at
15:22:11.423.
Executed 1 test, with 1 failure (0 unexpected) in 0.000 (0.001) seconds Test Suite 'Selected tests' failed at
15:22:11.426.
Executed 1 test, with 1 failure (0 unexpected) in 0.000 (0.007) seconds Failing tests:
-[XCTextWDRunner testRunner()]
** TEST FAILED **
dump生成了吗?
修改了新的mode,然后用xcodebuild -project XCTestWD.xcodeproj -scheme XCTestWDUITests -destination 'platform=iOS,name=a' -destination 'platform=iOS,name=b' clean test,只能run起来a设备,b设备还是没有run起来。
修改了下运行时间,发现是a运行结束后,b才开始运行。
但是一修改

我要回帖

更多关于 AE怎么镜像 的文章

 

随机推荐