本地可运行AppiumDriverLocalService测试,Jenkins执行失败求助
解决Jenkins上AppiumDriverLocalService启动失败的问题
从错误日志来看,核心问题是Jenkins运行时使用的系统账户(NT AUTHORITY\SYSTEM)找不到Appium的main.js文件——它默认去系统账户的npm目录查找,但你的Appium很可能是安装在本地用户目录下的,系统账户要么无权访问,要么该账户下根本没装Appium。下面是几种可行的解决办法:
1. 给系统账户全局安装Appium
Jenkins默认用系统账户运行,直接给这个账户装Appium就能匹配到日志里的路径:
- 右键点击命令提示符,选择以管理员身份运行
- 执行命令切换到系统账户上下文(需管理员权限):
runas /user:NT AUTHORITY\SYSTEM cmd.exe - 在新打开的系统账户cmd窗口中,全局安装Appium:
npm install -g appium - 安装完成后,验证路径是否存在:
dir C:\windows\system32\config\systemprofile\AppData\Roaming\npm\node_modules\appium\build\lib\,确认main.js已生成
2. 让Jenkins用你的本地用户身份运行
如果不想在系统账户下重装Appium,修改Jenkins的运行账户更直接:
- 按下Win+R,输入
services.msc打开服务管理器 - 找到Jenkins服务,右键选择属性,切换到登录标签页
- 选择此账户,输入你本地安装Appium的用户名和密码,点击确定
- 重启Jenkins服务,这样它就会用你的用户身份运行,能直接访问你本地的Appium安装路径
3. 在代码里硬编码正确的Appium路径
如果上面两种方法都不想用,可以直接在测试代码里指定你本地用户下的Appium路径:
// 替换成你自己的用户目录路径 String APPIUM_JS_PATH = "C:\\Users\\YourActualUsername\\AppData\\Roaming\\npm\\node_modules\\appium\\build\\lib\\main.js"; AppiumServiceBuilder builder = new AppiumServiceBuilder(); builder.usingDriverExecutable(new File(NODE_JS_PATH)); builder.withAppiumJS(new File(APPIUM_JS_PATH)); // 用指定路径替换原来的变量 builder.usingAnyFreePort(); // 后续代码不变...
注意要把YourActualUsername换成你的真实用户名,并且确保这个路径对Jenkins的运行账户有读取权限。
4. 先验证Jenkins的环境配置
在Jenkins的构建步骤里加一段前置命令,检查当前运行环境:
whoami echo %PATH% node -v appium -v
通过这些输出,你能确认Jenkins当前用的是哪个用户,Node.js和Appium是否在环境变量里,以及版本是否正确,方便排查其他潜在问题。
内容的提问来源于stack exchange,提问作者Raw2008
相关产品推荐
相关产品推荐

