список идентификаторов — Автоматизация ALM API

#java #xml #api #nodes #alm

#java #xml #API #узлы #alm

Вопрос:

я делаю автоматизацию api hp-alm, используя rest assured n java.Для тестовых примеров с несколькими запусками я получаю приведенный ниже ответ в формате xml.Я хочу знать список атрибутов идентификатора с его значениями.

введите описание изображения здесь

 RequestSpecification httpRequest10 = RestAssured.given().cookies(loginCookies).cookies(sessionCookies).queryParam("query", "{cycle-id[" cycleId "];test-id[" testCaseId "]}");

        Response testRunId = httpRequest10.request(Method.GET,"/qcbin/rest/domains/" domain "/projects/" project "/runs");
                String testRunIdResponseBody = testRunId.getBody().asString();
                //logger.info("testRunId Response Body is =>  "   testRunIdResponseBody);//test run details in xml format
                statusCode = testRunId.getStatusCode();
                //logger.info("The testRunId status code recieved: "   statusCode);
                String stepID= testRunId.xmlPath().from(testRunIdResponseBody).get("**.find {it.@Name == 'id'}.Value");
                List<String> runIds = testRunId.xmlPath().from(testRunIdResponseBody).getList("**.find {it.@Name == 'id'}.Value");
                logger.info("stepID" stepID);
  

Используя приведенный выше код, я могу получить первый идентификатор, но не список идентификаторов

Комментарии:

1. В какой форме вы получаете ответ? Это org.w3c.dom. Документ, какой-то класс JAXB или просто строка? Не могли бы вы предоставить некоторый код с вашими попытками проанализировать ответ? Это помогло бы дать правильный ответ.

2. i.stack.imgur.com/zHx23.png я предоставил скриншот XML-файла

3. Этого недостаточно. Я могу написать код, который анализирует этот XML как строку или как файл и извлекает список идентификаторов, но решение может быть неприменимо для вас, когда оно анализируется каким-либо другим способом. Вот почему было бы лучше предоставить больше информации.

4. я предоставил код. достаточно ли этого или вам нужны какие-либо другие входные данные?

5. Попробуйте использовать **.findAll вместо **.find

Ответ №1:

Я полагаю **.find , следует заменить на **.findAll :

 List<String> runIds = testRunId.xmlPath().from(testRunIdResponseBody).getList("**.findAll {it.@Name == 'id'}.Value");