我正在准备作为HTTP请求的一部分发送的数据,所以数据准备部分是在BeanShell预处理器中完成的。
随着请求大小的变化,我需要传递一个可变长度的JSON。我正在for循环中创建JSON主体,但参数没有改变,例如:
try{
int[] po = {20, 30, 40, 50, 75};
int rNum = getRandom(0,4);
String name="${name}";
String _class="${_class}";
StringBuilder msgBody = new StringBuilder();
msgBody.append("{\"name\":\"")
.append(name)
.append("\", \"class\":\"")
.append(_class)
.append("\", \"marks\":[");
for (int i=0;i<po\"[rNum];i++)
{
msgBody.append("{ \"subject\":\"${__P(marks${line_offset})}\"," },");
}
int length=msgBody.length()-1;
log.info(String.valueOf(length));
msgBody.setLength(length);
msgBody.append("] }");
vars.put("json",msgBody.toString());
}
${u_P(marks${line_offset})}
在循环中保持不变。
如何在循环内部启用更改?
你为什么期望它会改变?JMeter属性是整个JVM的全局属性,并在所有线程之间共享。因此,${u_P(marks${line_offset})}
将始终具有相同的值,除非您在其他地方设置它。根据文件:
属性与变量不同。变量是线程的局部变量;属性对于所有线程都是通用的
还有几件事需要检查/修复:
>
通常,脚本在当前状态下无法工作,因为它充满了错误,例如:
int[] po\" = {20, 30, 40, 50, 75}; // won't compile due to \"
String class="${class}"; // won't compile as "class" is a reserved keyword
etc.
下次遇到问题时,请提供准确的代码
从JMeter 3.1开始,建议使用JSR223 Test Elements和Groovy语言进行脚本编写,主要是因为Groovy的性能比Beanshell好得多。特别是在您的情况下,您可以从使用JsonBuilder和/或JsonOutput中受益
根据JSR223采样器文档,可能是问题的主要原因:
JMeter在将脚本字段传递给解释器之前会处理函数和变量引用,因此这些引用只会被解析一次。脚本文件中的变量和函数引用将逐字传递给解释器,这可能会导致语法错误。为了使用运行时变量,请使用适当的props方法,例如。
props.get("START. HMS");
道具。put(“PROP1”、“1234”)
在scrips中,使用props
代替函数,使用vars
代替变量
props.get("marks" + vars.get("line_offset"));
使用JMeter中的“bzm-Concurrency Thread Group”和“Constant through Timer”组合,我很难实现所需的“每秒请求数”。 结构 我的测试结构如下: Thread组1 > 恒定吞吐量定时器 HTTP请求 线程组2 恒定吞吐量计时器 HTTP请求 Thread组3 恒定吞吐量计时器 HTTP请求 Thread组4 恒定吞吐量计时器 HTTP请求 数字 我
Tomcat为什么要这样做,我可以做些什么来防止它?
问题内容: 我每周有一些设备的日志数据。对于某些设备,它从星期一开始,对于某些设备,它在星期三开始,等等。有时此数据中有〜月的间隔,但是我希望DataFrame索引仍然包含每周具有NaN值的行。 我正在尝试在Python中使用,但是我无法获得期望的结果。 例: 是)我有的: 我期望/想要的(请注意带有NaN的2个新行): 我得到的是: 因此,我获得了每个星期日的所有值和日期。但是我不需要每个星期天
问题内容: 我正在尝试计算中每行显示的数字,例如: 行显示3次。 一个简单的天真的解决方案将涉及将我所有的行都转换为元组,然后应用,如下所示: 产生: 但是,我担心我的方法的效率。也许有一个提供此功能的内置库。我将此问题标记为,因为我认为它可能具有我正在寻找的工具。 问题答案: 您可以使用另一个问题的答案来获得唯一项目的计数。 使用结构化数组的另一种选择是使用一种void类型的视图,该视图将整行连
如何在JMETER中创建一个测试,该测试将: 总共提出100个请求,但是使 每4次请求站点A和 每5次请求站点B
我的代码怎么了???我正试图写一个递归方法来求一个数中出现的数。编写一个递归函数,对一个正整数num进行编码,从另一个整数中提取一个数字,不进行负计数。如果数字显示的次数正好是数字,则函数返回true,否则返回false。 示例:输入:122231位:2计数:3输出:真