我使用 Jenkins 进行 k6 测试 CI/CD。 在我的管道中,我有代码:
def users = ["user1","user2","user3"]
sh """
export MY_USERS=${users.join(' ')}
./start.sh
"""
在我的 bash 脚本中,我有:
SCRIPT_USERS=$MY_USERS
for user in $MY_USERS; do
eval "$PARAMS $K6 run $user.js -o xk6-influxdb \
--out web-dashboard=port=0\&report=$DIR/${user}.html" &
done
但是,在日志中我得到了
SCRIPT_USERS=user1
如何获取 bash 变量中的值? 我需要所有的价值观。 尝试了不同的传递变量的方法,但没有成功。
在 Groovy 脚本中,您正在动态地“构建”脚本。执行 users.join(' ')
后相当于
export MY_USERS=user1 user2 user3
在赋值
MY_USERS
后导出名称
user1
,同时导出未定义的名称 user2
和 user3
。您需要引用 ${users.join(' ')}
,以便整个结果成为对
MY_USERS
的单个赋值的一部分。def users = ["user1","user2","user3"]
sh """
export MY_USERS="${users.join(' ')}"
./start.sh
"""