【问题标题】:JMeter Beanshell - save file as pdfJMeter Beanshell - 将文件另存为 pdf
【发布时间】:2021-11-18 09:24:12
【问题描述】:

目前我正在使用beanshell后处理器将变量值保存在“.txt”文件中,我想将变量值保存到pdf文件中,有什么办法可以实现吗?

要将变量值保存在文本文件中,我使用以下代码:

var1= vars.get("myVariableValue"); 

f = new FileOutputStream("D:/myTextFile.txt",true);
p = new PrintStream(f); 
this.interpreter.setOut(p); 
p.println(var1);

f.close();

【问题讨论】:

    标签: jmeter performance-testing load-testing beanshell


    【解决方案1】:
    1. 为此,您需要像 PdfBox 这样的外部库
    2. 您需要在JMeter Classpath 中拥有 PDFBox
    3. Since JMeter 3.1 you should be using JSR223 Test Elements and Groovy language for scripting

    假设以上所有:

    1. 下载pdfbox-2.0.24.jarfontbox-2.0.24.jar 文件并将它们放到JMeter 安装的“lib”文件夹中

    2. 重新启动 JMeter 以拾取“jar”

    3. 将适当的 JSR223 测试元素添加到您的测试计划中

    4. 将以下代码放入“脚本”区域:

      import org.apache.jmeter.threads.JMeterVariables
      
      JMeterVariables vars = new JMeterVariables()
      vars.put('myVariableValue','hello')
      
      def document = new org.apache.pdfbox.pdmodel.PDDocument()
      def page = new org.apache.pdfbox.pdmodel.PDPage()
      document.addPage(page)
      
      def contentStream = new org.apache.pdfbox.pdmodel.PDPageContentStream(document, page)
      
      contentStream.setFont(org.apache.pdfbox.pdmodel.font.PDType1Font.COURIER, 12)
      contentStream.beginText()
      contentStream.showText(vars.get('myVariableValue'))
      contentStream.endText()
      contentStream.close()
      
      document.save('myPDFFile.pdf')
      document.close()
      
    5. 就是这样,你应该在 JMeter 的工作目录中看到 myPDFFile.pdf 文件

    【讨论】:

    • 非常感谢 Dmitri,它按预期工作。只是一个疑问,如果我想在我的 pdf 的第一页上打印一个变量,在第二页上打印另一个变量,该怎么办?因为现在所有内容都打印在单页上。
    • 忽略我最后的评论,我想通了:),谢谢!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-29
    • 1970-01-01
    • 1970-01-01
    • 2016-06-12
    • 1970-01-01
    • 2012-10-25
    相关资源
    最近更新 更多