gpt4 book ai didi

java - 在 JMeter java api 中如何在预处理器采样器中设置 POST 表单值?

转载 作者:太空宇宙 更新时间:2023-11-04 12:51:26 25 4
gpt4 key购买 nike

在我正在编写的预处理器中,我可以通过采样器成功更新 GET 查询字符串。

但是,如果我对 POST 使用相同的方法,虽然我可以通过 getArguments() 列出 FORM 字段,但该值不会被设置。

  Arguments arguments = sampler.getArguments();
for (int i=0; i<arguments.getArgumentCount(); i++) {
Argument argument = arguments.getArgument(i);
if (argument.getName().equals("page_submission_id")) {
String newVal = "8743718386872";
argument.setValue(newVal);
System.out.println("Setting arg["+argument.getName()+"] to["+newVal+"]");
}
}
sampler.setArguments(arguments);
printArgs(arguments);

此输出显示参数值未更改。

Setting arg[page_submission_id] to[8743718386872]
Arguments After
...
Found arg[page_submission_id] is[XXXXXXXXXXXXX]
...

进一步深入研究 jmeter 代码后,发现 Attribute 对象有一个“runningVersion”属性(通过 isRunningVersion())设置为 true。

我尝试了几种方法来解决这个问题:

  • 强制 runningVersion 为 false - 然后设置值,但发送 GET 消息
  • 创建一个新的 Arguments 对象并向其中添加新的 Argument 条目及其值 - 这不会更改值

任何人都可以指出在发送之前设置 POST FORM 字段值的官方方法吗?

谢谢

最佳答案

好吧,您为参数分配了一个新值,但我看不到您在哪里使用具有新值的参数更新采样器的参数。

我是 KISS 的坚定信徒原则,因此我建议不要添加更多行,而是按如下方式简化脚本:

import org.apache.jmeter.config.Argument;

sampler.getArguments().removeArgument("page_submission_id");
sampler.addArgument("page_submission_id","8743718386872");

我也希望您使用JSR223 PreProcessor and Groovy language

关于java - 在 JMeter java api 中如何在预处理器采样器中设置 POST 表单值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35793287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com