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

本地Jenkins运行JMeter的.jmx文件时出现Permission Denied错误

解决Jenkins运行JMeter脚本时的「Permission Denied」问题

这个问题的核心原因很明确:Jenkins的运行用户和你本地终端的用户权限不匹配。你在终端里用自己的用户身份执行JMeter,对当前目录有读写权限;但Jenkins是用系统分配的专属用户(比如macOS上默认是jenkins用户)来执行脚本,这个用户没有当前工作目录的写入权限,所以无法创建jmeter.log和result.jtl文件,导致报错。

下面给你几个可行的解决方案:

1. 显式指定日志和结果文件的路径到Jenkins有权限的目录

最稳妥的方式是修改JMeter命令,把日志和结果文件放到Jenkins的工作空间目录(这个目录Jenkins用户默认有完全权限)。比如:

jmeter.sh -Jjmeter.save.saveservice.output_format=xml -n -t /Users/Shared/Jenkins/Performance/JMeterTests/Request.jmx -l ${WORKSPACE}/result.jtl -j ${WORKSPACE}/jmeter.log

这里的${WORKSPACE}是Jenkins内置的环境变量,会自动指向当前Job的工作空间路径,不用手动写死路径,通用性更强。

2. 给Jenkins用户授予目标目录的读写权限

如果你不想修改命令路径,可以在本地终端执行命令,给Jenkins运行用户授权:

  • 首先确认Jenkins的运行用户(可以在Jenkins后台「Manage Jenkins」→「Script Console」执行println System.getProperty("user.name")查看)
  • 然后给目标目录授权:
# 替换jenkins为实际的Jenkins运行用户,替换/path/to/your/dir为你的脚本执行目录
sudo chown -R jenkins:jenkins /path/to/your/dir

如果只是临时测试,也可以用宽松权限(不推荐生产环境使用):

sudo chmod -R 777 /path/to/your/dir

3. 先排查当前执行环境的权限状态

在Jenkins的shell步骤开头添加两行命令,先确认当前执行的用户和工作目录:

whoami
pwd

这样你就能直观看到Jenkins是用哪个用户在哪个目录下执行命令,方便快速定位权限问题的根源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:11:26