多台设备的话 别用 server 模式了。也就不用 iproxy 了。 直接用新 mode。见 191 楼
新 mode 直接内编码直接启 monkey,跳过了 server 及插入命令的过程。
目前 time 可以设置 见 172 楼
不设则一直 monkey, 我测试一直跑到 iphone 卡死
runtime 加到 cp 里应该就行了。 思寒那个用 sbt 编译的 应该带上了 runtime
没有直接的 swipe 事件
drap 事件、多次 tap 事件 也能达到 swipe 效果
内部调的都是 私有的 api sharedXCEventGenerator.pressAtPoint
你打的 jar,和思寒的 jar 大小有差异吗?
应该是缺少 scala runtime 环境吧?
与 java 不同,打成 jar 包,没有 runtime 调不起来。
这里只是注册一些路由的回调,你那控制台 log 里有 XCTestWDSetup->http://localhost:8001 这段吗?
如果有表示 server 启动成功了
实在不行 你换个个人开发账号试试。占 2 个 bundleID 免费版的就行。
这个... 貌似是 XCTestWD 系统限制了没起来?? 还是回到原点 看看开发者账号那块是不是有什么问题?
嗯。我这是 10.3 之前 10.0 也试了。应该 10,9 问题都不大。
-_- 你的 iphone 手机不会是 ios11 吧?
那这样吧。在 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()
} else {
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
}
sleep(3)
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()
xtestwd 不用管的。就是个空壳
你看下 monkey.swift 里
public class Monkey {
let elapsedTime = 0 // ?s
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 启动就闪退了? 还是一点也没起来? 还是起来跑了一会再闪退的?
这样 你按 #214 楼方法 把崩溃断点加上。跑次看看崩在哪里了
对应 xctestwduitest 的开发者账号需要 信任。
XCTestWDMonkey 是新 mode 用的。如果用 curl 就不用改 XCTestWDMonkey
你那里 iphone 上设备 - 通用 - 设备管理 - 开发者 信任了吗
你上面图里输入的 curl 需要先装熊猫 tv 才能调启它跑 monkey 的。
或者 curl 里 bundleID 改成你自己要测试的 app
建议还是先换 8.3 吧。 9.0beta 或许有其他坑
果不其然。 9.0 太超前了。你看下你那的 swift 版本用的是多少?
需修改为 swift3
你那里 xcode 是多少版本?
第二个图里 报错 是因为去掉了 所以找不到相关的引用
哦。sorry 我 240 楼 回答错了。。
xctestwd 中的去掉,xctestwduitest 需要保留
"xctestwd 中没有用到 oc,swift 混编,header search path,objecktive-c bridging header 配置可去掉再试试。xctestwduitest 中用了混编才需要 xctestwduitest-bridging-header.h"
不是 xctestwd 而是 XCTestWDUITests 你的截图是 xctestwd