java - 重新启动测试应用程序时 Jenkins 停止工作

标签 java android jenkins ant appium

我正在与 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/

相关文章:

java - 让类在 java 中工作,构建 Android 应用程序来解析 XML

jenkins - Groovy:如何将操作字符串定义为变量?

java - 使用线程池将双数组(矩阵)添加在一起

java - 只能在 java sql 上使用有限数量的方法

java - 为什么无法解码 Base64 字符串?

android - 如何检测 ScrollView 何时到达底部以便我可以将更多项目加载到其中?

android - TimePicker SetHour 方法

jenkins - 如何使用 Jenkins Pipeline 属性步骤?

git - Jenkins 不显示配置的 git 凭据

java - Thread.join 不起作用