我正在与 Jenkins、Appium 和 Ant 合作。当我通过终端通过 Ant 开始测试时,一切运行顺利。但是,当我通过 Jenkins 调用 Ant 开始测试时,我注意到 Jenkins 强制停止应用程序而不是重新启动它(在真实的 Android 设备和 Genymotion 上测试)。
我发现应用程序重新启动时日志中有一些奇怪的东西,测试应用程序已启动但被 Jenkins 杀死,如果我通过 Jenkins 启动测试,Appium 服务器响应 DETELE 而不是 GET:
终端:
[debug] [ADB] 1 device(s) connected
[debug] [ADB] Running /Users/xxx/Library/Android/sdk/platform- tools/adb with args: ["-P",5037,"-s","192.168.57.101:5555","shell","am","start","-n","com.xxx/im.actor.XXXActivity","-a","android.intent.action.MAIN","-c","android.intent.category.LAUNCHER","-f","0x10200000"]
[Appium] New AndroidDriver session created successfully, session d813f8ab-37c1-4f66-8b70-3008eb833c77 added to master session list
[MJSONWP] Responding to client with driver.createSession() result: {"platform":"LINUX","webSto...
[HTTP] <-- POST /wd/hub/session 200 3205 ms - 881
[HTTP] --> POST /wd/hub/session/d813f8ab-37c1-4f66-8b70-3008eb833c77/timeouts {"type":"implicit","ms":10000}
[MJSONWP] Calling AppiumDriver.timeouts() with args: ["implicit",10000,"d813f8ab...
[debug] [BaseDriver] Set implicit wait to 10000ms
[MJSONWP] Responding to client with driver.timeouts() result: null
[HTTP] <-- POST /wd/hub/session/d813f8ab-37c1-4f66-8b70-3008eb833c77/timeouts 200 3 ms - 76
[HTTP] --> GET /wd/hub/session/d813f8ab-37c1-4f66-8b70-3008eb833c77/appium/device/current_activity {}
[MJSONWP] Calling AppiumDriver.getCurrentActivity() with args: ["d813f8ab-37c1-4f66-8b70-3...
[debug] [ADB] Getting focused package and activity
[debug] [ADB] Getting connected devices...
[debug] [ADB] 1 device(s) connected
[debug] [ADB] Running /Users/xxx/Library/Android/sdk/platform-tools/adb with args: ["-P",5037,"-s","192.168.57.101:5555","shell","dumpsys","window","windows"]
[MJSONWP] Responding to client with driver.getCurrentActivity() result: "im.actor.SplashActivity"
Jenkins :
[testng] [debug] [ADB] 1 device(s) connected
[testng] [debug] [ADB] Running /Users/xxxx/Library/Android/sdk/platform-tools/adb with args: ["-P",5037,"-s","192.168.57.101:5555","shell","am","start","-n","com.xxx/im.actor.XXXXActivity","-a","android.intent.action.MAIN","-c","android.intent.category.LAUNCHER","-f","0x10200000"]
[testng] [Appium] New AndroidDriver session created successfully, session 464902e9-5406-4d1e-915e-d4fad4e39da8 added to master session list
[testng] [MJSONWP] Responding to client with driver.createSession() result: {"platform":"LINUX","webSto...
[testng] [HTTP] <-- POST /wd/hub/session 200 3865 ms - 881
[testng] [HTTP] --> POST /wd/hub/session/464902e9-5406-4d1e-915e-d4fad4e39da8/timeouts {"type":"implicit","ms":20000}
[testng] [MJSONWP] Calling AppiumDriver.timeouts() with args: ["implicit",20000,"464902e9...
[testng] [debug] [BaseDriver] Set implicit wait to 20000ms
[testng] [MJSONWP] Responding to client with driver.timeouts() result: null
[testng] [HTTP] <-- POST /wd/hub/session/464902e9-5406-4d1e-915e-d4fad4e39da8/timeouts 200 4 ms - 76
[testng] [HTTP] --> DELETE /wd/hub/session/464902e9-5406-4d1e-915e-d4fad4e39da8 {}
[testng] [MJSONWP] Calling AppiumDriver.deleteSession() with args: ["464902e9-5406-4d1e-915e-d...
[testng] [debug] [AndroidDriver] Shutting down Android driver
[testng] [debug] [ADB] Getting connected devices...
[testng] [debug] [ADB] 1 device(s) connected
[testng] [debug] [ADB] Running /Users/xxxx/Library/Android/sdk/platform-tools/adb with args: ["-P",5037,"-s","192.168.57.101:5555","shell","am","force-stop","com.xxx"]
如果有人就此案给我任何建议,我将非常感激。
最佳答案
我解决了这个问题。使用Appium的重启应用程序功能代替adb命令。
关于java - 重新启动测试应用程序时 Jenkins 停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40945418/