繁体   English   中英

如何用 Groovy ZC1C425268E68389411AB5074C17 参数化 JMeter 循环 Controller

[英]How to parametrize JMeter Loop Controller with Groovy function?

我对 Jmeter 很陌生,但可以处理“简单”的测试计划。 我确实需要帮助解决我面临的问题。 目前我遇到了一个关于如何参数化循环 Controller 循环计数 Groovy function 的问题。

我确实找到了很多示例,但它们都带有 static 循环计数,例如:${__groovy(new File('test.csv').readLines().size(),)}。 我真的很想参数化部分'test.csv'。 因此,我将其替换为 ${csvFile},例如:


${__groovy(new File(${csvFile}).readLines().size(),)}.

在“测试计划”的“用户定义变量”部分中,我创建了变量“csvFile”。 测试计划图片在这里

当我执行脚本时,我在日志中检索到一个错误,例如:

2022-01-25 11:35:14,870 WARN o.a.j.f.Groovy: Error running groovy script
javax.script.ScriptException: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
Script16.groovy: 1: Unexpected input: '\' @ line 1, column 12.
   new File(D:\devenv\projecten\JM_InterestDeterminationService\inputmessages.csv).readLines().size()
              ^

1 error

错误是否指向反斜杠? 那是因为 Windows 操作系统吗?

我必须用“/”替换“\”吗? 我如何以及在哪里可以做到这一点? 我开始摆弄.replaceAll("\\", "/") 和.replaceAll("\\\\", "/"),但我不知道把它放在哪里以及正确的语法是什么。

你们中的任何人都可以帮助我吗?

这就是为什么不建议将 JMeter 函数或变量内联到 Groovy 脚本中的原因之一。

只需使用JMeterVariables class 实例的vars简写来读取您的csvFile变量值,例如:

${__groovy(new File(vars.get('csvFile')).readLines().size(),)}

它应该可以解决您的问题。

More information on this and other JMeter API shorthands: Top 8 JMeter Java Classes You Should Be Using with Groovy

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM