【问题标题】:How to get the result values appended to an CSV file in jmeter(groovy)如何在jmeter(groovy)中获取附加到CSV文件的结果值
【发布时间】:2018-11-12 15:16:31
【问题描述】:

我从 HTTP 请求中获取一个值,我将其写入 CSV 文件,每次执行程序时,新值都会被覆盖,而不是附加到 CSV。我想附加值而不是覆盖。我正在使用 Regex 和 XPath 提取器从 HTTP 请求中获取值并将其写入 CSV 文件。

new File('/Users/ddd/testgui/queueId1.csv').newWriter().withWriter { w -> 
   w << vars.get('queueid')
}

【问题讨论】:

    标签: groovy jmeter


    【解决方案1】:

    所以这对我有用,在 groovysh 2.5.3 上:

    new File('/Users/ddd/testgui/queueId1.csv').newWriter(true).withWriter { w -> 
      w << vars.get('queueid') 
    }
    

    newWriter 中的 true 用于 append == true。

    【讨论】:

    • 第一个答案不正确。上面的更正是在一个空白的 docker 上完成的,并写了一个随机字符串而不是 vars.get('queueid')。
    • 它被附加在同一行,我希望它在下一行。我用 .txt 文件尝试了这段代码
    • 啊哈元素,您正在捕获需要换行符。更改:
    • 非常感谢。工作:)
    【解决方案2】:

    你可以这样做:

    new File('/Users/ddd/testgui/queueId1.csv') << vars.get('queueid')
    

    请注意,您的代码只有在您有 1 个线程时才能正常工作,如果还有更多线程 - 当 2 个线程同时写入一个线程时,您可能会遇到 race condition文件。

    如果您要使用 > 1 个虚拟用户执行此代码,我宁愿推荐使用 Sample Variables 功能。

    如果您将下一行添加到 user.properties 文件:

    sample_variables=queueid
    

    并在下次运行测试时重新启动 JMeter 以选择属性,.jtl 结果文件将有一个额外的列,其中包含每个线程/请求的 queueid 变量值。

    如果你想将它存储到一个单独的文件中 - 去Flexible File Writer

    【讨论】:

    • 感谢您的帮助@Dmitri T。我试过了,灵活文件写入器存在一些问题,正则表达式的值在灵活文件写入器中显示三次(注意:我有脚本从正则表达式中获取唯一值,因为正则表达式给出的值如 _g, _g0, _g1 )
    猜你喜欢
    • 2021-10-11
    • 2018-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多