Удаленно создать задание jenkins с параметрами файла, используя resassured

Я могу запустить задание, но по какой-то причине файл не загружается в рабочее пространство jenkins. Если я попробую это вручную, работа jenkins будет работать нормально. Я пробовал ниже-

1 )

RestAssured.given()
.auth().basic("USERNAME", "PASSWORD")
//.contentType(ContentType.URLENC)
.when()
.post("https://JENKINS_HOST/hudson/job/RISTSA/job/JOB_NAME/buildWithParameters" + "?file=C:/PATH_TO_FILE/SOMETHING.json&JenkinsStringParamName=test")
.then()
.statusCode(201);

2 )

RestAssured.given().log().all()
.contentType(ContentType.URLENC)
.auth().basic("USERNAME", "PASSWORD")
//.headers(httpHeaders("USERNAME", "PASSWORD"))
.formParam("file0", "C:/PATH_TO_FILE/SOMETHING.json")
.formParam("json", "{\"parameter\":[{\"name\":\"JenkinsFileParamName\",\"file\":\"file0\"},{\"name\":\JenkinsStringParamName\",\"value\":\"test\"}]}")
.when()
.post("https://JENKINS_HOST/hudson/job/RISTSA/job/JOB_NAME/buildWithParameters")
.then()
.statusCode(201);

Я попытался написать этот код с официального URL-адреса, который имеет ссылку на завиток на jenkins документы

Любая помощь приветствуется.


person ashkaps    schedule 28.09.2018    source источник


Ответы (1)


Если вы загружаете файл, вы должны использовать multipart

RestAssured.given().
multiPart("file2", new File("C:/PATH_TO_FILE/SOMETHING.json")).
formParam("name", "value").
when().
post("https://JENKINS_HOST/hudson/job/RISTSA/job/JOB_NAME/buildWithParameters").
then().
statusCode(201);
person Wilfred Clement    schedule 28.09.2018
comment
Вы пробовали этот код? Я знаю, как это должно работать в идеале. Но это зависит от того, как указан API. Ищу рабочее решение. Хотя я пробовал и этот подход - не работает. - person ashkaps; 29.09.2018
comment
Довольно удивительно, потому что это рабочий код, но не с Дженкинсом, а с другим сервером. - person Wilfred Clement; 29.09.2018
comment
Это из официальных документов - curl -X POST JENKINS_URL/job/JOB_NAME/build \ --user USER:PASSWORD \ --form file0=@PATH_TO_FILE \ --form json='{parameter: [{name:FILE_LOCATION_AS_SET_IN_JENKINS, файл: file0}]}' Для этого мне просто нужно надежное преобразование. Я пробовал этот завиток, и он работает. - person ashkaps; 30.09.2018