Мне нужен был способ обновить страницу статуса вики и загрузить файл после выполнения теста JMeter. Это то, что вы могли бы условно начать в зависимости от результатов вашей работы Дженкинса.
Как обновить Atlassian Confluence Wiki с помощью JMeter и REST API
Ответы (1)
Я сделал это с помощью следующих шагов:
в группу потоков установки добавлен пробоотборник BeanShell для поиска самого последнего файла отчета в моей папке результатов.
импортировать org.apache.commons.io.FileUtils; импортировать org.apache.commons.io.filefilter; импортировать org.apache.commons.io.filefilter.WildcardFileFilter; импортировать org.apache.commons.io.comparator.LastModifiedFileComparator;
log.info("GET MOST RECENT RESULTS REPORT FOR THE APP TESTED"); String dir_path = props.get("test_results_path"); File theNewestFile = null; try { File dir = new File(dir_path); FileFilter fileFilter = new WildcardFileFilter("Results_${testApp}*.*"); File[] files = dir.listFiles(fileFilter); if (files.length > 0) { /** The newest file comes first **/ Arrays.sort(files, LastModifiedFileComparator.LASTMODIFIED_REVERSE); theNewestFile = files[0]; String fileName = files[0].getName().toString(); log.info("fileName: "+fileName); print("fileName: "+fileName); props.put("varResultsReportFile",fileName); } return theNewestFile; } catch (Throwable ex) { log.error("Failed in Beanshell", ex); throw ex; }
войти в систему с учетной записью системы wiki/confluence
- ПОЛУЧИТЬ
rest/api/content?title=${testApp}&spaceKey=${testSpaceKey}&expand=version,history
- Используйте экстракторы JSON для извлечения номера версии страницы (
results..version.number
) и идентификатора страницы (results..id
) - Используйте постпроцессор BeanShell, чтобы добавить 1 к номеру версии страницы и сохранить это значение в переменной. Это понадобится вам, когда вы разместите свое обновление в вики.
- ПОЛУЧИТЬ
rest/api/content?title=${testApp}&spaceKey=${testSpaceKey}&expand=body.storage
- Используйте экстрактор JSON для извлечения значения тела страницы (
results..body.storage.value
) - Используя экстрактор CSS/JQuery для переменной JMeter, созданной на шаге 7, извлеките все значения таблицы. Например, CSS/JQuery Expression=td и Match No= 1 для извлечения значения первого столбца.
- PUT
rest/api/content/${varPageId}
и в теле JSON обновите единственное значение таблицы, которое вам нужно обновить, и восстановите извлеченные вами значения, которые вам не нужно обновлять. - POST
rest/api/content/${varResultsPageId}/child/attachment
Для вкладки «Загрузка файлов» путь к файлу = ${__P(test_results_path)}${__P(varResultsReportFile)}, имя параметра = файл, тип MIME = text/csv - выйти
person
joCha
schedule
28.11.2017