jmeter 如何捕获 url 编码值并在不重新编码的情况下发送它

jmeter how to capture an url encoding value and sending it without re-encoding

我遇到一个已经在 url 编码中的值的问题,我捕获它很好,但是当我要发送它时,该值被重新编码... 这是值:

_TSM_CombinedScripts_=%3b%3bSystem.Web.Extensions%2c+Version%3d4.0.0.0%2c+Culture%3dneutral%2c+PublicKeyToken%3d31bf3856ad364e35%3aes type="text/javascript">

我正在使用 RegEx 捕获:

Reference name: RSM
Regular Expression: _TSM_CombinedScripts_=(.+?)" type="text/javascript">

然后我放了一个 BSF 采样器来查看捕获的值,没问题。

但是,当我将值放入 post 方法 (rsmScriptManager_TSM=${RSM}) 中将其发送到服务器的字段中时,该值将再次重新编码,如下所示:

rsmScriptManager_TSM=%253b%253bSystem.Web.Extensions%252c%2BVersion%253d4.0.0.0%252c%2BCulture%253dneutral%252c%2BPublicKeyToken%253d31bf3856ad364e35%253aes

请注意,例如链的开头是:

 %253b%253bSystem.Web.Extensions

文字值为:

;;System.Web.Extensions

“;;” url 编码为 %3b%3b,与我捕获它的方式完全相同,但是当将其发送到服务器时,使用 %25

重新编码“%”

(HTML URL Encoding Reference)

而不是 %3b%3b 值发送 %253b%253:

%253b%253bSystem.Web.Extensions

并对“+”等其他字符执行相同操作

我该如何解决这个问题?

确保您没有为提取的请求参数勾选 Encode?

还有一个 __urldecode 函数可以提供帮助。

有关 __urldecode 和其他有用的 JMeter 函数的更多信息,请查看 How to Use JMeter Functions 帖子系列