• 深度学习基础文章合集 at 2018年01月19日

    现在就在搞 AI。对于如何落地到测试也是挺头疼的,关键是数据和业务,很多 QA 的业务根本没有积累下有效、优质的数据。

  • 能并发吗?

  • 可以电话或者视频面试么?

  • 用 opencv 图像识别出控件位置。具体可以参照 AutomatorX 这个框架,将 opencv 模块进行剥离,优化

  • 哈哈,不错,我当初也是看到这行代码,还转门测试过,确实无效。提个分支到 github,让他们合并去啊~

  • 不支持真机,貌似是支持模拟器。

  • 嗯嗯,你只要能把它映射到 PC 端口,改成不一样应该就没问题了。但是我不知道从何下手去改。

  • 最近也在看游戏自动化测试方面的,看了腾讯的 GA 方案,但不支持 iOS,还有网易的这个 AutomatorX(基于 OpenCV, 和 Google 2015 在 GTA 上分享的方案一样),不知道还有其他可用的第三方么?

  • 但问题确实是每次都使用了 8900。

  • 主要是我也不熟悉 node.js 但是大概看了下逻辑,好像是有先检查 8900 有没有被占用,有的话就会使用其他端口。具体我也不清楚,现在没空搞这个了,后面有时间再来看。如果你研究出来了,记得和我分享下啊~ @utopia

  • SwiftMonkey :iOS 上的 monkey at 2017年02月20日

    #13 楼 @Lihuazhang 哈哈,很高兴和你讨论技术问题啊。QA 这边的所谓的侵入式就是必须得嵌入项目,开发层面的侵入式是删除掉这个第三方包还要更改很多代码,依赖太强。所以这边这种侵入式的就必须得和开发配合是吧?你需要项目工程的源代码,这对于我们这边做平台的没多大价值。但不同场景,可能对于你们价值还蛮大的吧~。

  • SwiftMonkey :iOS 上的 monkey at 2017年02月20日

    1.这是侵入式的框架,不像 WDA 是非侵入式的。这也就限制了它的使用范围,最好是在开发那边使用。
    2.测试这边做自动化根本用不上。还有中思路就是用注入的方式,但是又得不偿失。
    3.而且又是 swift,无法嵌入到 OC 项目中使用。

  • #13 楼 @harsayer 不想试了,连这种最基本的简单的测试代码都跑不了。现在我们换方案先替代了。

  • #73 楼 @Tank007 就是和你一样,但我用的是 macaca,开启两个服务端,分别指定不同的端口。但是,客户端出现的情况和你的一模一样

  • 关于 macaca 的并发测试https://testerhome.com/topics/7499

    我这边也出现了和上边你们讨论的和 Appium 一模一样的问题。不知道为什么? @Tank007

  • #4 楼 @harsayer 而且 macaca 这边明显存在问题,你怎么解释他们是根据真机的监听的端口来映射本机的端口这个问题。如果要解决这个问题,要么改服务端的机制。要么改手机上 WDA 的端口监听机制。

  • #7 楼 @harsayer 你说的部署是哪一篇。能给个连接参考么~

  • #7 楼 @harsayer 那我这边这样写为啥不行~, 我关心的是问题的本质。我这样做也没错啊~

  • #4 楼 @harsayer 我们经过测试,加个延迟,偶尔能两部机器同时启动。但是经常是不行,而且就算可以,接下来跑的脚本全部会串到同一部机器上。而且安卓的底层和 iOS 是不一样的。iOS 这边他们用了端口映射工具,这边有点问题。

  • #4 楼 @harsayer 这是安卓,你有试过 iOS 的么?


  • 求个解释,现在是支持还是不支持,就一句话。

  • 👍 👍 👍

  • @AllocAndInit 现在并发整好了吗?

  • 3456 服务器终端的日志输出

    >> proxy.js:56:14 [master] pid:13272 Proxy: /session:POST to http://127.0.0.1:8900/session:POST with body: {"desiredCapabilities":{"bundleId":"com.netdragon.quicktest","platformVersion":"10.1.1","platformName":"ios"}}
    >> proxy.js:84:20 [master] pid:13272 Got response with status 200: {"value":{"sessionId":"DBB9A8A9-008D-4C3F-9D7B-56DA8A847ACB","capabilities":{"device":"iphone","browserName":"思维大学","sdkVersion":"10.1.1","CFBundleIdentifier":"com.netdragon.quicktest"}},"sessionId...
    >> responseHandler.js:47:14 [master] pid:13272 Send HTTP Respone to Client: {"sessionId":"b77bcfa0-513d-49dc-ba37-6c4ad7bb6bd9","status":0,"value":"{\"reuse\":1,\"port\":\"3456\",\"platformVersion\":\"10.1.1\",\"bundleId\":\"com.netdragon.quicktest\",\"host\":\"127.0.0.1\",\"platformName\":\"ios\",\"udid\":\"1de34bc9fca390771d274bd72cd61ec85c750f02\",\"deviceName\":\"iPhone 7 plus\"}"}
    >> proxy.js:56:14 [master] pid:13272 Proxy: /session:POST to http://127.0.0.1:8900/session:POST with body: {"desiredCapabilities":{"bundleId":"com.netdragon.quicktest","platformVersion":"10.1.1","platformName":"ios"}}
    >> proxy.js:84:20 [master] pid:13272 Got response with status 200: {"value":{"sessionId":"F37C9C77-BC69-4852-93B2-7BD8A25A994F","capabilities":{"device":"iphone","browserName":"思维大学","sdkVersion":"10.1.1","CFBundleIdentifier":"com.netdragon.quicktest"}},"sessionId...
    >> responseHandler.js:47:14 [master] pid:13272 Send HTTP Respone to Client: {"sessionId":"77911724-a4eb-4aa6-9bd9-d590d285d2ba","status":0,"value":"{\"reuse\":1,\"port\":\"3457\",\"platformVersion\":\"10.1.1\",\"bundleId\":\"com.netdragon.quicktest\",\"host\":\"127.0.0.1\",\"platformName\":\"ios\",\"udid\":\"55c36c2ae2c7da2091d4b07ef275a7a80cb31167\",\"deviceName\":\"iPhone 7 plus\"}"}