macaca ios自动化测试测试可以测试什么

Macaca 最低支持 ios 到9.x 吗?
在官方文档中没有找到相关说明
我自己测试的结果,ios 9系统可以跑起来,ios 8系统跑步起来,不能安装 webdriveragentrunner
从 log 里看,在多次尝试启动 wda server,如果是 iOS 9,会自动进行安装。
Macaca log:
&& xctest-client.js:56:14 [master] pid:1180 project path: /usr/local/lib/node_modules/macaca-ios/node_modules/.1.0.41@webdriveragent/WebDriverAgent/WebDriverAgent.xcodeproj
&& macaca-ios.js:145:10 [master] pid:1180 {
"bundleId": "com.smzdm.client.ios",
"platformVersion": "8.3",
"platformName": "iOS"
&& macaca-ios.js:149:12 [master] pid:1180 Trying to start wda server...
BundleId com.apple.test.WebDriverAgentRunner-Runner does not exist.
&& macaca-ios.js:149:12 [master] pid:1180 Trying to start wda server...
BundleId com.apple.test.WebDriverAgentRunner-Runner does not exist.
&& macaca-ios.js:149:12 [master] pid:1180 Trying to start wda server...
BundleId com.apple.test.WebDriverAgentRunner-Runner does not exist.
&& macaca-ios.js:149:12 [master] pid:1180 Trying to start wda server...
BundleId com.apple.test.WebDriverAgentRunner-Runner does not exist.
&& responseHandler.js:54:12 [master] pid:1180 Send Error Respone to Client: Error:
19:58:08.545 ios-deploy[] [ !! ] [ ERROR ] Could not uninstall package with bundle id com.apple.test.WebDriverAgentRunner-Runner
&& responseHandler.js:60:14 [master] pid:1180 Error:
19:58:08.545 ios-deploy[] [ !! ] [ ERROR ] Could not uninstall package with bundle id com.apple.test.WebDriverAgentRunner-Runner
at ChildProcess.&anonymous& (/usr/local/lib/node_modules/macaca-ios/node_modules/.0.1.4@ios-device/lib/helper.js:46:17)
at emitTwo (events.js:87:13)
at ChildProcess.emit (events.js:172:7)
at maybeClose (internal/child_process.js:818:16)
at Socket.&anonymous& (internal/child_process.js:319:11)
at emitOne (events.js:77:13)
at Socket.emit (events.js:169:7)
at Pipe._onclose (net.js:469:12)
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
wda最低支持9吧,应该可以
在你的 webdriveragent 介绍贴里提到最低只支持iOS 9.0
后方可回复, 如果你还没有账号请点击这里 。
michael_wang (Michael_Wang)
第 2606 位会员 /
什么值得买
共收到 2 条回复中国领先的IT技术网站
51CTO旗下网站
使用macaca进行移动端hybird自动化测试(二)
macaca是阿里开源的基于Node.js开发的自动化测试工具,支持native,hybird,moblie web,关于macaca具体的内容参见官网macaca.macaca是如何驱动自动化测试的呢?事实上macaca和appium在架构和一些应用层面有很多相似的地方。
作者:苹果小萝卜来源:| 22:16
macaca是阿里开源的基于Node.js开发的自动化测试工具,支持native,hybird,moblie
web,关于macaca具体的内容参见官网macaca.
macaca是如何驱动自动化测试的呢?事实上macaca和appium在架构和一些应用层面有很多相似的地方。
作为client的我们可以使用不同语言去编写测试脚本,其中测试脚本遵循webdriver协议,client向测试框架启动的server发送http请求。正因为client和server是基于http进行通讯的,因此client可以支持不同的编程语言。server通过解析HTTP的request,然后调用IOS提供的UIAutomation库来进行模拟点击等的操作,操作完成后移动设备会将操作结果返回给server,然后server将这个操作结果返回给client。
?有提到过webdriver协议:
其实它就是一层基础的协议规范。正是因为这样的协议存在一些自动化测试框架可以使用多种语言编写测试脚本。它提供了web页面操作的相关规范,比如元素的定位,浏览器原生事件的操作,还有获取DOM元素属性等一系列的方法。不管你用什么语言编写测试脚本的话,都应该按照这个协议规范来。WebDriver
通过原生浏览器支持或者浏览器扩展直接控制浏览器。WebDriver 针对各个浏览器而开发,取代了嵌入到被测 Web 应用中的
JavaScript。与浏览器的紧密集成支持创建更高级的测试,避免了JavaScript 安全模型导致的限制。除了来自浏览器厂商的支持,WebDriver
还利用操作系统级的调用模拟用户输入。webDriver 支持了所有的主流浏览器,同时还支持了Iphone和Android的移动应用测试。
接下来就带着大家一步一步使用macaca进行进行自动化测试:
全局安装macaca的cli,如果觉得比较慢,就换淘宝的cnpm镜像吧。
npm&install&macaca&-g&
安装完成后可以输入
//查看cli的提供其他的功能&&&&&macaca&-h&&&&&&&&//用以查看当前的环境配置&&&&&macaca&doctor&&&&&&&&&&&&//用以单独启动一个webdriver&server&&&&&macaca&server&&&&&&&&&&//启动测试&&&&&macaca&run&&
现在输入macaca doctor:
checklist里面出现了2条红色的提示文案,说明这2个选项没有配置完成。我现在是以IOS为例,暂且不管这2个和Andriod相关的配置。不清楚的可以google。其中在IOS
checklist当中:出现了Xcode和ios_webkit_debug_proxy.
首先你需要通过app store安装Xcode。全局安装ios_webkit_debug_proxy这个包,这个包用于测试ios的webview:
brew&install&ios-webkit-debug-proxy&
此外,还需要全局安装ios-driver:
npm&i&macaca-ios&-g&
这样准备好了基础的测试套件。接下来你可以克隆macaca提供的官方示例,其中包括IOS的app和相关的测试脚本,对照着官文文档感受下大致的流程:
git&clone&/macacajs/macaca-test-sample.git&&
接下来进行自己的测试工作:
因为我是前端开发人员,要测试native里面的webview。首先让IOS的同学帮忙打包一个.app格式的应用,并压成zip格式的文件。PS:打包的时候选用debug模式。
准备好了原材料,先让我们停一停。做UI测试的话,要模拟用户各种操作,那么必须得知道native应用上不同界面的元素,就像获取html里面的DOM节点一样。因为macaca提供了通过Xpath去获取native页面上不同的元素节点的API。因此可以通过这种方式。
macaca提供了app-inspector这样一个使用树状态结构查看UI布局,自动生成XPath的工具。
npm&install&app-inspector&-g&
安装完成后,通过macaca-cli启动你的IOS模拟器,运行你的应用。
然后通过app-inspector启动UI检测工具,
app-inspector&-u&YOUR-DEVICE-ID&
获取uuid的方式:
命令行输入:
xcrun&simctl&list&
这行命令会列出你的所以模拟器信息,里面有类似 XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
的代码,就是模拟器UDID,选择当前模拟器状态是Booted的那个。
通过app-inspector启动这个工具后,打开在Chrome里面打开命令行里面提示的浏览器地址,这样在浏览器上就能看到在native里面打开的ios页面。
因为我要测试webview的页面,因此native的页面的所有元素节点通过app-inspector这个工具去获取Xpath,然后编写测试脚本模拟用户的操作,一步一步的进入到webview页面。
在我测试的应用当中,从app打开到进入要测试的webview页面的测试脚本就变成了:
.waitForElementByXPath('//XCUIElementTypeApplication[1]/XCUIElementTypeWindow[1]/XCUIElementTypeOther[2]/XCUIElementTypeButton[1]')&&&&&.click()&&&&&//用户名输入&&&&&.waitForElementByXPath('//XCUIElementTypeApplication[1]/XCUIElementTypeWindow[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeTextField[1]')&&&&&.sendKeys(username)&&&&&//密码输入&&&&&.waitForElementByXPath('//XCUIElementTypeApplication[1]/XCUIElementTypeWindow[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[3]/XCUIElementTypeSecureTextField[1]')&&&&&.sendKeys(password)&&&&&.sendKeys('\n')&&&&&//登录按钮&&&&&.waitForElementByXPath('//XCUIElementTypeApplication[1]/XCUIElementTypeWindow[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeButton[2]')&&&&&.click()&&&&&//更多按钮&&&&&.waitForElementByXPath('//XCUIElementTypeApplication[1]/XCUIElementTypeWindow[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeImage[1]/XCUIElementTypeButton[2]')&&&&&.click()&&&&&.sleep(1000)&&&&&.swipe(200,&400,&200,&100,&500)&&&&&.waitForElementByXPath('//XCUIElementTypeApplication[1]/XCUIElementTypeWindow[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeCollectionView[1]/XCUIElementTypeCell[10]')&&&&&.click()&&&&&.sleep(1000)&&&&&.waitForElementByXPath('//XCUIElementTypeApplication[1]/XCUIElementTypeWindow[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeScrollView[1]/XCUIElementTypeOther[2]')&&&&&.click()&&&&&.sleep(1000)&
这样完成了native进入到webview页面的所有操作。
接下来就是webview的模拟操作啦。放到下一节来讲吧。【编辑推荐】【责任编辑: TEL:(010)】
大家都在看猜你喜欢
头条外电头条原创原创
24H热文一周话题本月最赞
讲师:6人学习过
讲师:3人学习过
讲师:8人学习过
精选博文论坛热帖下载排行
本书为《Eclipse从入门到精通》一书的全新改版。本书以最新的Eclipse 3.2作为写作版本。全书分为5篇:起步篇介绍了Eclipse及相关插件的安装...
订阅51CTO邮刊后使用快捷导航没有帐号?
Mobile Testing Summit China
查看: 1065|
摘要: 中国规模最大、最高水平、最有影响力的移动测试技术大会报名地址http://test-china.orgMobile Testing Summit 是为期 1 天的技术大会,由 TesterHome 社区发起,之前 已经在国内举办了3次小型的移动测试沙龙,分别和 ...
中国规模最大、最高水平、最有影响力的移动测试大会报名地址Mobile Testing Summit 是为期 1 天的技术大会,由 TesterHome 社区发起,之前 已经在国内举办了3次小型的移动测试沙龙,分别和支付宝、ebay 等公司合作,是目前移动无线方面最权威的沙龙之一。 本次大会邀请到多位海内外著名的移动无线测试专家,以及目前行业最火的 Appium 框架的主要者之一的 JLipps。 通过本次大会可以帮助国内移动无线的测试的整体技术水平以及跟国外的开源框架团队建立良好的关系。时间:2015 年 7 月 11 日地点:北京北邮科技酒店海淀区北三环内西土城路10号(四楼大会议厅)主题演讲嘉宾国内外顶尖开发者,感受大师风范Jonathan T LippsSaucelabsAppium Framework DevTopic: The future of Appium(有同传翻译)The tools and practices refined over the last decade by
developers have not crossed over easily into the mobile community. Mobile devs have been without tools like continuous integration and automated testing, which enable delivery of high-quality apps more rapidly, and which are even more essential in the mobile app ecosystem, where quality and experience are king. A key piece of the solution for mobile is Appium, an open-source, cross-platform, language-agnostic mobile automation framework you can use to write automated UI tests for
and iOS apps (native, hybrid, web), to be run on emulators or devices.In this talk we will explore the philosophy that underlies the work behind Appium. Then, after a brief explanation of the technology that powers Appium, we'll move into the technical portion of the talk, where attendees will see easy it is to write Appium scripts using the WebDriver protocol in their favorite language, and integrate Appium tests into a CI system using
Grid or Sauce Labs. We'll also touch on the importance of scaling and parallelism when it comes to automated functional tests.Finally, we'll examine Appium as an Open Source project, explain how the project works, who's involved, and explore how you can become a community member or even a contributor. We'll chart out where Appium is going in the remainder of 2015 and what we hope to accomplish even further ahead.DAN CUELLARFOODit个人介绍:Dan Cuellar&是 Appium 的缔造者。目前是 FOODit 的首席测试工程师。先后就职于 Shazam,Zoosk 和 微软Topic: TBD(有同传翻译)鬼道阿里巴巴天猫事业部技术专家个人主页&新浪微博:@鬼道-徐凯Topic:天猫React Native实战Detail:1. 介绍React Native(RN)产生背景和对Web和Native带来的改变;2. 通过实战,展示RN性能/稳定性数据;3. RN在淘系的规划和进展,以及我们遇到的问题等;4. RN相似方案的进展,以及对行业未来的一些思考。芈峮豌豆荚个人介绍:豌豆荚高级测试专家,有着多年的测试经验, 先后在高德、豆瓣以及豌豆荚从事过测试相关的工作。 实现并且开源了 iOS 的 ynm3k,撰有《iOS测试指南》。Topic:In-house 测试工具开发Detail:相对于自动化测试,In-house 测试工具有着更高的使用频率和更广泛的使用范围。 在一个移动应用的最重要的三个环节(打包、发布和监控)中,都有很多很有意思的工具可以去尝试开发。 本话题讲围绕着这三个重要环节,重点介绍 In-house 测试工具开发的一些技术细节和经验。张文欣OneAPM个人介绍:OneAPM Android高级研发工程师,喜欢接触新事物,独爱IT新技术。曾在谷歌开发者社区活动中担当讲师,并在极客学院,优才网等技术课堂担当讲师,关注移动应用测试领域的发展,研究测试工具与实现原理,探索移动应用测试新思路。Topic:移动应用测试技术与测试数据分析Detail:以插桩技术为基础,介绍测试方法和思路。利用插桩技术来获得测试过程中的关键数据, 然后进行测试分析。 简单讲解插桩所用到的技术方法,重点介绍如何使用类似OneAPM等第三方工具获取APP性能数据,并进行测试分析。徐达峰支付宝个人介绍:先后在天猫和支付宝担任前端工程师,关注移动与nodejs技术领域。Topic:移动端测试工具与持续集成Detail:以介绍移动端测试方案 macaca 为主,详细讲解移动端自动化测试系列工具 macaca 的开发与实践,以及如何与 appium 和其他优秀的测试框架整合。并介绍目前集成测试方案的实现和对移动测试的一些思考。吴穹博士个人介绍:吴穹博士是一位拥有16年实践工作经验并具备深厚理论基础的软件工程专家,致力于帮助大型传统企业互联网化,导入组织级敏捷,精益创业和看板方法。近几年来,他为平安、华为、阿里金融、广东核电等公司辅导了许多大规模的敏捷转型工作,积累了丰富的敏捷实施、组织变革以及敏捷测试经验。Topic:利用Mock API Server来模拟HTTP协议来进行手机App测试(结对演讲)Detail:介绍如何利用Mock API Server来模拟HTTP协议来进行手机App测试,还可以模拟手机的地理信息,传感器状态, 甚至可以先开发App再开发后端系统黄勇ThoughtWorks个人介绍:ThoughtWorks 咨询师。在8年的QA相关领域的工作中,积累了丰富的对企业级应用和大型产品应用的测试和管理经验;近两年关注于移动app的测试和行业发展。Topic:移动app测试的22条军规Detail:在移动app测试中,我们通常不会像测试web那样熟悉需要测试什么,考虑什么。本环节尝试通过讲师总结和分享自己2年多的移动产品测试经验和实践,希望听众能少走一些弯路。大会日程安排7/11/2015上午8:30 - 9:30签到入场9:30 - 9:45Openning9:45 - 10:50JONATHAN LIPPS10:50 - 11:00休息11:00 - 12:00DAN CUELLAR中午12:00 - 13:00酒店午餐下午13:
刚表态过的朋友 ()
上一篇:下一篇:社会化媒体
了解更多>>
桂ICP备 号
桂公网安备 36号
阅读下一篇
自媒体运营攻略行业经验交流
Hi,在你登录以后,就可以永久免费的收藏任何您感兴趣的内容,关注感兴趣的作者!
请输入正确的邮箱
已有帐号请点击
帐号创建成功!
我们刚刚给你发送了一封验证邮件
请在48小时内查收邮件,并按照提示验证邮箱
感谢你对微口网的信任与支持
如果你没有收到邮件,请留意垃圾箱 或 重新发送
你输入的邮箱还未注册
还没有帐号请点击
你输入的邮箱还未注册
又想起来了?
邮件发送成功!
我们刚刚给你发送了一封邮件
请在5分钟内查收邮件,并按照提示重置密码
感谢你对微口网的信任与支持
如果你没有收到邮件,请留意垃圾箱 或 重新发送
对不起,你的帐号尚未验证
如果你没有收到邮件,请留意垃圾箱 或
意见与建议
请留下您的联系方式
* 留下您正确的联系方式,以便工作人员尽快与你取得联系平安金融科技测试技术周报(第十四期) - 热点_【北京联盟】
平安金融科技测试技术周报(第十四期)
/ 作者:互联网
北京联盟摘要:
平安金融科技测试技术周报(第十四期),上一篇:
下一篇: 。注意事项:本文只对每篇推荐文章进行了简单的摘要,由于微信公众号屏蔽外部链接,查看详情请点击底部 阅读原文。 本期导读:原创文章带来APP测试基本流程以及Android内存测试。移动测试技术中带给大家探索APP性能三角区、iOS手工测试代码覆盖率统计以及编写
注意事项:本文只对每篇文章进行了简单的摘要,由于微信公众号屏蔽外部链接,查看详情请点击底部 阅读原文。本期导读:原创文章带来APP测试基本流程以及Android内存测试。测试技术中带给大家探索APP性能三角区、iOS手工测试代码覆盖率统计以及编写移动端Macaca测试用例[单步调试]。后端测试技术介绍了Unittest实现H5页面接口功能测试以及对 Jenkins+ANT+Jmeter 接口测试的实践,后端同学可重点关注。通用测试技术介绍了如何评审功能测试用例以及TDD(测试驱动开发)中Mockito使用浅谈。测试杂谈中介绍了移动互联网测试到质量转变简述。原创文章APP测试基本流程@蔡淑芬本文仅供新入职对银行一账通测试流程不是很熟悉的小伙伴参考,其中也涉及了一些像获取日志,获取包名等小技巧,希望对大家能有所帮助。Android内存测试@徐国诚如何对Android内存进行测试呢?Android程序中每个元素都是以对象的形式存在于内存中,我们可以通过抓取进程的内存快照并分析对象结构得到内存测试的结果。本文图文并茂的介绍了Android内存测试步骤。移动测试技术探秘APP性能三角区APP要做性能测试,什么样的数据能反应应用的性能情况,如何评估应用的性能状态? 不知道该如何入手?一起来分析下如何给APP做性能测试。性能测试三角:性能指标、测试场景、测试工具。首先要思考选哪些指标来评估性能:内存、cpu、电量还是什么?接着,选择你需要测试的场景,测试场景描述了你需要在何种场景下取性能数据,要测试APP何种功能等等。最后,根据你的指标和场景选择适合你的测试工具。iOS·手工测试代码覆盖率统计XcodeCoverage是一个开源框架,可以支持统计iOS客户端的单元测试代码覆盖率。项目地址:/jonreid/XcodeCoverageXcodeCoverage是通过gcc编译的时候加入gcov统计代码覆盖率,Gcov可以执行函数覆盖、语句覆盖和分支覆盖。同样的,我们可以按照这种思路来实现手工测试的代码覆盖率统计。编写移动端 Macaca 测试用例 [单步调试]移动端UI自动化测试与普通的单元测试有一个让人很苦恼的区别,就是测试的前置条件要求太高,先要启动一个模拟器或者插上一台真机,然后安装需要测试的 App,随后启动才能开始跑测试用例,整个过程耗时可能要一两分钟,若由于某个用例没有通过,同一个流程后面的所有用例都可能不过,又得修改用例,然后重新跑一次,那么每次修改之后都得有那么一两分钟是用来准备前置的 App 的,实在是太浪费时间了,有没有办法能够解决这个问题,只要启动一次,就能让我们可以测试当前的 App 呢,答案是肯定的。后端测试技术Unittest实现H5页面接口功能测试目前主流的H5页面动态获取内容的方式是采用ajax异步请求后台数据实现实时刷新,实际上就是用GET/POST的HTTP请求后台接口,再将返回的数据(一般是json或xml格式)渲染在页面上,因此保证H5页面接口的功能正确性就成为了页面内容数据正确的关键,普通的H5页面测试通常会采用手工测试的方式,这样只能模拟到正常的场景,对于异常的数据请求是无法覆盖的,并且对于请求参数很多的情况,效率很低,另外还有一部分数据内容接口是无页面的,如外部合作接口,只提供数据,对应的页面由合作方自己来做,则无法采用手工的方式进行测试。对 Jenkins+ANT+Jmeter 接口测试的实践最近感觉大家都在讲Jenkins+jmeter+ant或maven的使用,但没有说到具体怎么投入到项目使用,只有比较基本的流程说说,所以我今天要说的就是我是怎么将这个方案投入到实际中使用的,先说明一下,本人是今年4月份才开始学jmeter和ant,之前做性能测试是用loadrunner,接口测试使用RobotFramework+Request来做的,loadrunner用来做简单接口测试太笨重而且成效不高,RobotFramework+Request虽然可以使用数据驱动模式,但测试报告就会显示很鸡肋,因为基本是一个测试用例在循环,所以后面使用了Jenkins+jmeter+ant的方案。通用测试技术如何评审功能测试用例?用例评审目的:为了减少测试人员执行阶段做无效工作;(执行无效case,提交无效问题)为了避免三方需求理解不一致;为了每个测试人员的质量标准与项目要求标准达成一致;TDD(测试驱动开发)中Mockito使用浅谈什么是mock?在软件开发的世界之外, "mock"一词是指模仿或者效仿。 因此可以将“mock”理解为一个替身,替代者. 在软件开发中提及"mock",通常理解为模拟对象或者Fake。为什么需要Mock?Mock是为了解决units之间由于耦合而难于被测试的问题。所以mock object是unit test的一部分。测试杂谈移动互联网测试到质量转变简述今年我也不知道为什么会突发奇想来讲这个topic,这与我前几年风格非常不符。但也许这正是我觉得2016年应该说的东西吧,事实证明三场大会讲完之后,很多人第一次私下来找我要PPT,同时也觉得这个topic并不是几个小时能讲完的,所以我在这里还是浓缩的写篇文章说明下吧。欢迎关注我们团队的技术公众号
平安金融科技测试技术周报(第十四期)
免责声明:本站文章除注明来源“北京联盟”外的文章均来自网络和网友投稿,著作权归原作者所有。北京联盟不承担任何连带责任!

我要回帖

更多关于 macaca ios真机 的文章

 

随机推荐