如何使用 JMeter 和 REST 更新 Atlassian Confluence Wiki API

How to update Atlassian Confluence Wiki using JMeter and the REST API

我想要一种在 JMeter 测试完成后更新 wiki 状态页面和上传文件的方法 运行。这是您可以根据 Jenkins 工作的结果有条件地开始的事情。

我是通过以下步骤完成的:

  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)和页面id(results..id)
  5. 使用 BeanShell 后处理器将页面版本号加 1 并将该值存储在变量中。当您将更新放入 wiki 时,您将需要它
  6. 获取rest/api/content?title=${testApp}&spaceKey=${testSpaceKey}&expand=body.storage
  7. 使用JSON提取器提取页面正文值(results..body.storage.value)
  8. 对您在第 7 步中创建的 JMeter 变量使用 CSS/JQuery 提取器,提取所有 table 值。例如,CSS/JQuery Expression=td 和 Match No= 1 以提取第一列值。
  9. PUT rest/api/content/${varPageId} 并在 JSON 正文中,更新您需要更新的单个 table 值并恢复您提取的不需要更新的值。
  10. POST rest/api/content/${varResultsPageId}/child/attachment 对于文件上传选项卡,文件路径=${__P(test_results_path)}${__P(varResultsReportFile)} , 参数名称=文件, MIME 类型=text/csv
  11. 注销