【发布时间】:2015-08-25 09:28:44
【问题描述】:
我使用 Beanshell-Sampler 在 Jmeter 中编写文件。 我尝试使用一些功能,例如:
status = ${__property(status)};
或
${__time(EEE\, d MMM yyyy)};
它只适用于 Webdriversampler,但不适用于 Beanshell。 是无法在 Beanshell 中使用函数还是只是缺少导入?
【问题讨论】:
我使用 Beanshell-Sampler 在 Jmeter 中编写文件。 我尝试使用一些功能,例如:
status = ${__property(status)};
或
${__time(EEE\, d MMM yyyy)};
它只适用于 Webdriversampler,但不适用于 Beanshell。 是无法在 Beanshell 中使用函数还是只是缺少导入?
【问题讨论】:
您可以在 Beanshell 脚本中内联函数,但需要使用引号,例如:
String status = "${__property(status)}";
String date = "${__time(EEE\, d MMM yyyy)}";
顺便说一句,不建议使用 Beanshell 脚本,因此如果您有可能修改 JMeter 安装,最好将 JSR223 Test Elements 和 Groovy 视为一种语言。
如果您决定切换到 JSR223 和 Groovy - 您应该停止将变量和函数引用为 ${...} 并从 Groovy 代码开始执行此操作,例如:
访问属性值:
String status = props.get("status");
获取当前日期:
import java.text.SimpleDateFormat;
SimpleDateFormat sdf = new SimpleDateFormat("EEE, d MMM yyyy");
String date = sdf.format(new Date());
请参阅 Beanshell vs JSR223 vs Java JMeter Scripting: The Performance-Off You've Been Waiting For! 指南以了解 Beanshell 与 Groovy 基准测试、在 Jmeter 中安装 Groovy 脚本引擎支持和脚本最佳实践的详细信息。
【讨论】: