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

时间:2017-11-28 21:20:20

标签: jmeter confluence confluence-rest-api

我想要一种更新维基状态页面并在JMeter测试运行完毕后上传文件的方法。根据Jenkins工作的结果,您可以有条件地启动这项工作。

1 个答案:

答案 0 :(得分:0)

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

    在设置线程组中的
  1. ,添加了一个BeanShell Sampler,用于在我的结果文件夹中找到最新的报告文件。

    import org.apache.commons.io.FileUtils;     import org.apache.commons.io.filefilter;     import org.apache.commons.io.filefilter.WildcardFileFilter;     import 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 PostProcessor将1添加到页面版本号并将该值存储在变量中。当您将更新发布到维基
  6. 时,您将需要这个
  7. 获取rest/api/content?title=${testApp}&spaceKey=${testSpaceKey}&expand=body.storage
  8. 使用JSON Extractor取代页面正文值(results..body.storage.value
  9. 在步骤7中创建的JMeter变量上使用CSS / JQuery Extractor,提取所有表值。例如,CSS / JQuery Expression = td和Match No = 1来提取第一列值。
  10. PUT rest/api/content/${varPageId}并在JSON正文中,更新您需要更新的单个表值,并恢复您不需要更新的提取值。
  11. POST rest/api/content/${varResultsPageId}/child/attachment对于“文件上传”选项卡,文件路径= $ {__ P(test_results_path)} $ {__ P(varResultsReportFile)},参数名称=文件,MIME类型= text / csv
  12. 注销