如何通过Jenkins任务向节点传递JSON字符串并配置构建脚本?
在Jenkins任务中向节点传递指定JSON字符串的配置方案
我来帮你一步步搞定这个配置,确保JSON参数能正确传递给节点的批处理脚本:
1. 准备待传递的JSON内容
你需要传递的JSON字符串如下(已经整理成易读格式):
{ "Automation": { "Env": "XXX", "No of TCs to Run": "08", "Suite": { "SAMPLE1": [ {"testcases": "TC01,TC02,TC03,TC04"}, {"TC_Username": "test@xxxxx.xom", "TC_Password": "P!assword"}, {"TS_Username": "test@xxxxx.xom", "TS_Password": "AgeAS2"}, {"TM_Username": "test@xxxxx.xom", "TM_Password": "P!assword", "TM_Company": "TEST", "TM_FirstName": "Test", "TM_LastName": "FARIZ"} ] } } }
2. Jenkins构建环节的核心配置
在Jenkins任务的构建步骤中,选择“执行Windows批处理命令”,然后填入以下命令:
cd C:\Test && BatchRunner.bat "%JSON%"
关键细节说明:
- 用
&&连接cd和批处理命令:确保切换到C:\Test目录后再执行BatchRunner.bat,避免路径错误。 - 给
%JSON%加上双引号:因为你的JSON里包含空格(比如No of TCs to Run)和特殊字符(比如!),不加引号的话,Windows命令行会把空格当作参数分隔符,导致参数被拆分成多个部分,传递失败。
3. 参数化构建的补充配置(可选但推荐)
如果希望每次构建可以灵活修改JSON内容,建议给Jenkins任务添加字符串参数:
- 进入任务配置页,找到“参数化构建过程”,勾选“字符串参数”
- 参数名称填
JSON,默认值填入上面的完整JSON内容 - 这样构建时,你可以直接引用
%JSON%变量,无需手动修改命令行
额外注意事项
- 确认目标Jenkins节点的
C:\Test目录下确实存在BatchRunner.bat文件,且该脚本能正确接收并解析传入的JSON参数。 - 如果JSON里有更多特殊字符导致传递异常,可以换一种思路:先把JSON写入临时文件,再让批处理读取文件内容,命令示例如下:
对应的,你需要修改cd C:\Test echo %JSON% > automation_config.json BatchRunner.bat automation_config.jsonBatchRunner.bat,让它读取automation_config.json文件里的JSON内容进行处理。
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

