Как обновить Atlassian Confluence Wiki с помощью JMeter и REST API

Мне нужен был способ обновить страницу статуса вики и загрузить файл после выполнения теста JMeter. Это то, что вы могли бы условно начать в зависимости от результатов вашей работы Дженкинса.


person joCha    schedule 28.11.2017    source источник


Ответы (1)


Я сделал это с помощью следующих шагов:

  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;
    }
    
  2. войти в систему с учетной записью системы wiki/confluence

  3. ПОЛУЧИТЬ rest/api/content?title=${testApp}&spaceKey=${testSpaceKey}&expand=version,history
  4. Используйте экстракторы JSON для извлечения номера версии страницы (results..version.number) и идентификатора страницы (results..id)
  5. Используйте постпроцессор BeanShell, чтобы добавить 1 к номеру версии страницы и сохранить это значение в переменной. Это понадобится вам, когда вы разместите свое обновление в вики.
  6. ПОЛУЧИТЬ rest/api/content?title=${testApp}&spaceKey=${testSpaceKey}&expand=body.storage
  7. Используйте экстрактор JSON для извлечения значения тела страницы (results..body.storage.value)
  8. Используя экстрактор CSS/JQuery для переменной JMeter, созданной на шаге 7, извлеките все значения таблицы. Например, CSS/JQuery Expression=td и Match No= 1 для извлечения значения первого столбца.
  9. PUT rest/api/content/${varPageId} и в теле JSON обновите единственное значение таблицы, которое вам нужно обновить, и восстановите извлеченные вами значения, которые вам не нужно обновлять.
  10. POST rest/api/content/${varResultsPageId}/child/attachment Для вкладки «Загрузка файлов» путь к файлу = ${__P(test_results_path)}${__P(varResultsReportFile)}, имя параметра = файл, тип MIME = text/csv
  11. выйти
person joCha    schedule 28.11.2017