You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Appium 2.0移动端自动化脚本报错:InvalidServerInstanceException及空指针问题

测试执行错误日志

初始检测信息

[RemoteTestNG] 检测到TestNG版本6.14.3
[TestNGContentHandler] [警告] 强烈建议在文件顶部添加<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">,否则TestNG可能执行失败或无法正常工作。
null

配置失败:@BeforeClass ConfigureAppium

io.appium.java_client.service.local.InvalidServerInstanceException: 主Appium脚本不存在于路径'\usr\local\lib\node_modules\appium\build\lib\main.js'
位于 io.appium.java_client.service.local.AppiumServiceBuilder.validatePath(AppiumServiceBuilder.java:131)
位于 io.appium.java_client.service.local.AppiumServiceBuilder.loadPathToMainScript(AppiumServiceBuilder.java:294)
位于 io.appium.java_client.service.local.AppiumServiceBuilder.createArgs(AppiumServiceBuilder.java:361)
位于 io.appium.java_client.service.local.AppiumServiceBuilder.createArgs(AppiumServiceBuilder.java:60)
位于 org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:444)
位于 org.rahulshettyacademy.utils.AppiumUtils.startAppiumServer(AppiumUtils.java:55)
位于 org.rahulshettyacademy.TestUtils.AndroidBaseTest.ConfigureAppium(AndroidBaseTest.java:34)
位于 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
位于 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
位于 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
位于 java.lang.reflect.Method.invoke(Method.java:498)
位于 org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:124)
位于 org.testng.internal.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:59)
位于 org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:458)
位于 org.testng.internal.Invoker.invokeConfigurations(Invoker.java:222)
位于 org.testng.internal.Invoker.invokeConfigurations(Invoker.java:142)
位于 org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:168)
位于 org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:105)
位于 org.testng.TestRunner.privateRun(TestRunner.java:648)
位于 org.testng.TestRunner.run(TestRunner.java:505)
位于 org.testng.SuiteRunner.runTest(SuiteRunner.java:455)
位于 org.testng.SuiteRunner.runSequentially(SuiteRunner.java:450)
位于 org.testng.SuiteRunner.privateRun(SuiteRunner.java:415)
位于 org.testng.SuiteRunner.run(SuiteRunner.java:364)
位于 org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
位于 org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:84)
位于 org.testng.TestNG.runSuitesSequentially(TestNG.java:1208)
位于 org.testng.TestNG.runSuitesLocally(TestNG.java:1137)
位于 org.testng.TestNG.runSuites(TestNG.java:1049)
位于 org.testng.TestNG.run(TestNG.java:1017)
位于 org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
位于 org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
位于 org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)

配置失败:@AfterClass tearDown

java.lang.NullPointerException
位于 org.rahulshettyacademy.TestUtils.AndroidBaseTest.tearDown(AndroidBaseTest.java:50)
位于 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
位于 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
位于 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
位于 java.lang.reflect.Method.invoke(Method.java:498)
位于 org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:124)
位于 org.testng.internal.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:59)
位于 org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:458)
位于 org.testng.internal.Invoker.invokeConfigurations(Invoker.java:222)
位于 org.testng.internal.Invoker.invokeConfigurations(Invoker.java:142)
位于 org.testng.internal.TestMethodWorker.invokeAfterClassMethods(TestMethodWorker.java:214)
位于 org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
位于 org.testng.TestRunner.privateRun(TestRunner.java:648)
位于 org.testng.TestRunner.run(TestRunner.java:505)
位于 org.testng.SuiteRunner.runTest(SuiteRunner.java:455)
位于 org.testng.SuiteRunner.runSequentially(SuiteRunner.java:450)
位于 org.testng.SuiteRunner.privateRun(SuiteRunner.java:415)
位于 org.testng.SuiteRunner.run(SuiteRunner.java:364)
位于 org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
位于 org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:84)
位于 org.testng.TestNG.runSuitesSequentially(TestNG.java:1208)
位于 org.testng.TestNG.runSuitesLocally(TestNG.java:1137)
位于 org.testng.TestNG.runSuites(TestNG.java:1049)
位于 org.testng.TestNG.run(TestNG.java:1017)
位于 org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
位于 org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
位于 org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)

配置与测试跳过信息

配置已跳过:@BeforeMethod preSetup
已跳过:FillForm_ErrorValidation
io.appium.java_client.service.local.InvalidServerInstanceException: 主Appium脚本不存在于路径'\usr\local\lib\node_modules\appium\build\lib\main.js'
位于 io.appium.java_client.service.local.AppiumServiceBuilder.validatePath(AppiumServiceBuilder.java:131)
位于 io.appium.java_client.service.local.AppiumServiceBuilder.loadPathToMainScript(AppiumServiceBuilder.java:294)
位于 io.appium.java_client.service.local.AppiumServiceBuilder.createArgs(AppiumServiceBuilder.java:361)
位于 io.appium.java_client.service.local.AppiumServiceBuilder.createArgs(AppiumServiceBuilder.java:60)
位于 org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:444)
位于 org.rahulshettyacademy.utils.AppiumUtils.startAppiumServer(AppiumUtils.java:55)
位于 org.rahulshettyacademy.TestUtils.AndroidBaseTest.ConfigureAppium(AndroidBaseTest.java:34)
位于 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
位于 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
位于 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
位于 java.lang.reflect.Method.invoke(Method.java:498)
位于 org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:124)
位于 org.testng.internal.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:59)
位于 org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:458)
位于 org.testng.internal.Invoker.invokeConfigurations(Invoker.java:222)
位于 org.testng.internal.Invoker.invokeConfigurations(Invoker.java:142)
位于 org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:168)
位于 org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:105)
位于 org.testng.TestRunner.privateRun(TestRunner.java:648)
位于 org.testng.TestRunner.run(TestRunner.java:505)
位于 org.testng.SuiteRunner.runTest(SuiteRunner.java:455)
位于 org.testng.SuiteRunner.runSequentially(SuiteRunner.java:450)
位于 org.testng.SuiteRunner.privateRun(SuiteRunner.java:415)
位于 org.testng.SuiteRunner.run(SuiteRunner.java:364)
位于 org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
位于 org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:84)
位于 org.testng.TestNG.runSuitesSequentially(TestNG.java:1208)
位于 org.testng.TestNG.runSuitesLocally(TestNG.java:1137)
位于 org.testng.TestNG.runSuites(TestNG.java:1049)
位于 org.testng.TestNG.run(TestNG.java:1017)
位于 org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
位于 org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
位于 org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)

测试执行统计

===============================================
默认测试
执行测试数:1,失败数:0,跳过数:1
配置失败数:2,跳过数:1
===============================================
默认测试套件
总执行测试数:1,失败数:0,跳过数:1
配置失败数:2,跳过数:1
===============================================

内容的提问来源于stack exchange,提问作者Daxesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 13:00:56