【问题标题】:How to store windows system path in JMeter JSR223 sampler using groovy strings?如何使用 groovy 字符串在 JMeter JSR223 采样器中存储 Windows 系统路径?
【发布时间】:2022-01-13 06:35:59
【问题描述】:

我正在 Jmeter 中构建一个配置,我在其中专门设置一个系统 Windows 路径来加载 CSV 并写入 CSV 文件。路径包含“”符号。 有一些带有 JSR223 PreProcessors 和 JSR223 Samplers 的采样器。使用的语言是 Groovy。 我知道我应该筛选这样的符号,但我现在有点迷茫,因为我不明白为什么不同的选项有时会起作用而其他时候不起作用。 初始路径为“C:\user\jmeter\csv” 我如何在 jMeter JSR223 中定义它:

def systemPath = "C:\\user\\jmeter\\csv\\"

有时它可以工作,但在我更改了几行代码后它就不行了! 下次我试过了:

def systemPath = "C:\\\user\\\jmeter\\\csv\\\"

它对我有用了一段时间,但在此行之后进行了一些代码更改后,它不再起作用。 我也读过一篇文章https://www.baeldung.com/groovy-strings 并尝试了所有方法,但每次我仍然收到此错误:

javax.script.ScriptException: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
Script343.groovy: 2: Unexpected input: '"' @ line 2, column 16.
   def systemPath = "C:\user\jmeter\csv\";

我想可靠地存储此系统路径而不会出现错误,并了解我收到此错误的原因。

【问题讨论】:

  • 我试过像 def systemPath = "C:/user/jmeter/csv/" 这样的路径,它在 jmeter 中对我有用

标签: groovy jmeter jsr223


【解决方案1】:

我看不出这行有什么问题:

def systemPath = "C:\\user\\jmeter\\csv\\"

这个不好:

def systemPath = "C:\\\user\\\jmeter\\\csv\\\"

除非您在“工作”和“不工作”情况下显示 jmeter.log 最好与 debug level of verbosity 一起显示,否则您的“有时工作,其他时间不工作”声明不会增加任何价值。


暂时考虑以下提示:

  • 您可以使用正斜杠而不是转义,即

     def systemPath = "C:/user/jmeter/csv/"
    
  • 或者您可以使用File.separator 属性来获取特定于操作系统的“斜线”值,例如:

     def systemPath = "C:" + File.separator + "user" + File.separator + "jmeter" + File.separator + "csv" + File.separator
    

  • 如果您认为 " 字符有问题(顺便说一下,它也需要转义),您可以使用 ' 字符声明 Groovy 字符串,例如:

     def systemPath = 'C:\\user\\jmeter\\csv\\'
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多