【发布时间】:2017-09-04 15:14:56
【问题描述】:
我正在寻找一些关于 JMeter 编码的建议。我目前正在开发一个使用 https 和 .aspx url 的系统,因此需要对我的发布请求中的所有参数进行编码。就目前而言,我正在从 Fiddler 复制和粘贴 Web 表单以生成我的测试脚本。是否有一种劳动强度较低的方法来编码我的网络表单的所有参数,因为我必须勾选编码每个单独的参数。
【问题讨论】:
标签: jmeter jmeter-3.2
我正在寻找一些关于 JMeter 编码的建议。我目前正在开发一个使用 https 和 .aspx url 的系统,因此需要对我的发布请求中的所有参数进行编码。就目前而言,我正在从 Fiddler 复制和粘贴 Web 表单以生成我的测试脚本。是否有一种劳动强度较低的方法来编码我的网络表单的所有参数,因为我必须勾选编码每个单独的参数。
【问题讨论】:
标签: jmeter jmeter-3.2
JMeter .jmx 脚本基本上是XML files,所以您应该可以在您喜欢的文本编辑器中打开 JMeter 脚本,找到以下行:
<boolProp name="HTTPArgument.always_encode">false</boolProp>
替换成
<boolProp name="HTTPArgument.always_encode">true</boolProp>
您可以使用JSR223 PreProcessor 和以下Groovy 代码将未编码的参数替换为其编码的等效参数:
org.apache.jmeter.config.Arguments args = sampler.getArguments()
sampler.getArguments().removeAllArguments()
args.each {
sampler.addEncodedArgument(it.getName(), it.getValue())
}
上面的代码将修改JSR223 PreProcessor's scope 中的所有采样器,并将参数值替换为它们的编码等效项。这种方法可能会占用大量资源,因此请明智地使用它,如果有可能,请考虑第 1 点和/或第 2 点中描述的替代方案。以防万一,请参阅Apache Groovy - Why and How You Should Use It 以熟悉 JMeter 测试中的 Groovy 脚本概念。
【讨论】: