【发布时间】:2011-04-19 10:36:23
【问题描述】:
我的团队使用 JM 进行了很多自动化测试。通常我们有一个属性文件,其中定义了一堆变量。这些又被映射到“用户定义的变量”,我们有许多不同的集合。
这些在 jmx 的其余部分中都被引用了——我觉得很难,因为在这么多不同的地方有这么多的变量来知道什么是什么。有什么方法可以让 jmeter 显示其变量的值 - 自定义采样器可以吗?理想情况下,如果您可以将 var 悬停并显示其值,我会喜欢它。
有什么想法吗?
【问题讨论】:
我的团队使用 JM 进行了很多自动化测试。通常我们有一个属性文件,其中定义了一堆变量。这些又被映射到“用户定义的变量”,我们有许多不同的集合。
这些在 jmx 的其余部分中都被引用了——我觉得很难,因为在这么多不同的地方有这么多的变量来知道什么是什么。有什么方法可以让 jmeter 显示其变量的值 - 自定义采样器可以吗?理想情况下,如果您可以将 var 悬停并显示其值,我会喜欢它。
有什么想法吗?
【问题讨论】:
最新版本的 Jmeter 有一个很棒的采样器,称为“调试采样器”,它将显示以下值:Jmeter 变量、Jmeter 属性或系统属性。
您可以将它们插入脚本中的任意位置,以便在给定时间获取值。您需要启用“查看结果树”来查看采样器。
鉴于 Jmeter 在运行时从文件中声明变量,您将无法获得理想的解决方案。
我很好奇...使用“CSV 数据集配置”而不是从属性文件中填充“用户定义的变量”会更干净吗?
编辑:添加了关于变量声明的解释并询问了 CSV 问题。
【讨论】:
这是我过去如何通过代码直接获取一组变量(JSR223 PostProcessor 中的 Java 代码变体):
import java.util.Map;
String jMeterVars;
jMeterVars = "Quantity of variables: " + vars.entrySet().size() + ".\n\n";
jMeterVars += "[VARIABLE NAME] ==>> [VARIABLE VALUE]\n\n";
for (Map.Entry entry : vars.entrySet()) {
jMeterVars += entry.getKey() + " ==>> " + entry.getValue().toString() + "\n";
}
try {
FileWriter fw = new FileWriter("D:\\jMeterVarsForStackOverflow.txt",true);
fw.write(jMeterVars);
fw.close();
} catch(IOException ioe) {
System.err.println("IOException: " + ioe.getMessage());
}
上面的代码将在 D: 处创建 jMeterVarsForStackOverflow.txt 文件并将所有变量放在那里:
【讨论】: