额,为啥一个 xml 还能 run ?
#6 楼 @seveniruby 啥软件转的?
#4 楼 @haiquan180 你的意思是融合到框架代码还是测试用例代码?
如果是框架代码,现在的实现就已经做到了。
如果是测试代码,这个不是太合理,毕竟测试代码不应该关心 appium server 状态。
那个 bat 文件只是入口,方便放在任意地方双击直接运行而已。它做的是启动整个测试,而不光是启动 appium server 。
#3 楼 @haiquan180 推荐用 pycharm
首先,你的调用应该是没问题的,因为 server log 确实正确打出了你需要操作的 gestures 操作。
对应这个错误,看了下源码:
lib/server/controller.js
// press-wait-moveTo-release is `swipe`, so use native method if (gestures.length === 4 && gestures[0].action === 'press' && gestures[1].action === 'wait' && gestures[2].action === 'moveTo' && gestures[3].action === 'release') { return exports.mobileSwipe(req, res, gestures); }
if (gestures.length === 4 &&
就是错误所说的 329 行,但 gesture 应该是从 post 的 body 提取出来的数组,你前面的 log 里已经说明了 body 里确实有 gestures 这个 json 项,所以应该不会是 undefined 啊。
同时也 google 了一番,没发现类似的问题。
你这个问题是必现的吗?
appium 版本是啥?
我回去再看看。
我作为组织方的一员,回应一下。
首先,上面吐槽的情况确实存在,我也在和其它参与者的交流中了解到他们的意见,大体内容和上面的吐槽差不多。也欢迎大家在后面继续吐槽。
确实,我们这次的 topic 和 ppt 审核没有做到足够严格,外加宣传时 “大牛” 这样的字眼用的并不准确,让大部分这次参加沙龙的参与者失望了,我在这里说一声对不起。 topic 和 ppt 确实是沙龙的灵魂所在,我们没有把握好这个重点,导致大部分人失望了。我们要引以为戒。
我们这一期之所以会比较偏向理论,主要的出发点是上一期收集到不少参加者反馈没听懂,因此我们把相对通用的理论知识比例加大了,更偏向于一些 0 基础或者入门级的同学。但从结果看来,效果和预期相差甚远。一方面是由于宣传的偏差,这次参加的同学里面有相对丰富经验的同学比例比上次高了不少,因此这些 topic 并不十分适合他们。另一方面是部分 topic 的内容确实和移动互联网偏差比较远,因此大家也并不觉得有多大用处,感到失望是可以理解的。
最后,我向参加了此次沙龙的同学说声抱歉,让你们失望了。同时我们会引以为戒,在后面的沙龙中改正这次存在的问题。也希望大家能继续支持我们。我们目前的力量还不是很强大,没有认识到太多广州测试界的人,也希望大家给我们推荐这方面的有比较丰富经验、愿意分享的同学,让我们能有更多机会和这些人交流、合作,并最终帮助参加的同学一起提升。谢谢!
看完了 Xcode7 中你一定要知道的炸裂调试神技
Xcode7 原来已经这么强大了。。。
最后的案例那个 app 太奇葩了。。。压根就没有登录啊。。。
不是用了 https 就万无一失了,最好在应用中 hard code 校验 https 的证书信息,不信任其他所有证书信息。否则只要把自定义的 https 证书加入到手机信任列表,这些请求的内容还是能够被嗅探到。
第一次知道 Monkey 原来有这么多功能。强!
有些系统会提示这个。
可以在 appium 源码里注释掉安装 unlock 和 setting 两个 app 的代码:
lib/devices/android/android.js
async.series([ this.initJavaVersion.bind(this), this.initAdb.bind(this), this.packageAndLaunchActivityFromManifest.bind(this), this.initUiautomator.bind(this), this.prepareDevice.bind(this), this.checkApiLevel.bind(this), this.pushStrings.bind(this), this.processFromManifest.bind(this), this.uninstallApp.bind(this), this.installAppForTest.bind(this), this.forwardPort.bind(this), this.pushAppium.bind(this), this.initUnicode.bind(this),
// DO NOT push settings app and unlock app
//this.pushSettingsApp.bind(this),
//this.pushUnlock.bind(this),
function (cb) {this.uiautomator.start(cb);}.bind(this),
this.wakeUp.bind(this),
this.unlock.bind(this),
this.getDataDir.bind(this),
this.setupCompressedLayoutHierarchy.bind(this),
this.startAppUnderTest.bind(this),
this.initAutoWebview.bind(this),
this.setActualCapabilities.bind(this)
], function (err) {
自己造一个,牛!
appium 官方解释是直到 1.4.11 后才正式支持 9.0 。
iOS 9 is supported only on Appium 1.4.11 and above (1.5 beta). Refer the following link to reconfig your appium client to 1.4.11 to fix the above issue.
:plus1:
#2 楼 @gaopeng1106 被你知道了 [害羞]
Q 都上场啦,好期待~
哇塞!北京又来啦!大赞!
官方解释:
iOS 9 is supported only on Appium 1.4.11 and above (1.5 beta). Refer the following link to reconfig your appium client to 1.4.11 to fix the above issue.
原因是 iOS 9.0 的 simulator 名字改了。原来是 iPhone (8.1 Simulator), 但到了 9.0 把后面的 Simulator 去掉了。 appium 是根据 platform, deviceName 和 platformVersion 组合 simulator 的名字的,Simulator 默认会自己加上,所以开不了。
#10 楼 @shenkai600 我只是搬运工,现在项目中还是 E2E 。要实现上述这种测试方式需要开发和测试一起努力,而且工作量相比直接 E2E 会大一些,所以短期项目估计不会这么干。