我需要使用JMeter 5.1 HttpRequest中的“随请求一起发送参数”,以字符串形式传递字符集,例如'='
'/'
'@'
我尝试将“ RegEx用户参数”与“正则表达式提取器”一起使用
使用几个自定义函数,例如__BeanShell(URLDecoder.decode)
,__unescapeHtml
,__urldecode
使用“ BeanShell PreProcessor”和“ JSR223 PostProcessor”进行解码
我搜索了很多手册,但找不到正确的答案
如果使用变量,我将得到相同的结果
${__BeanShell(URLDecoder.decode("correo@yopmail.com"))}
${__unescapeHtml(correo@yopmail.com)}
${__urldecode(correo@yopmail.com)} // application/x-www-form-urlencoded -- UTF-8
${__urldecode("correo@yopmail.com")} //UTF-8
我希望请求正文为authenticity_token=LzRkqB3M5tXWXZq1axsb9gkhCx3GIAn588RMIkzpRAHqNCkAlCIwMk8pu9jn68Oy1mylI6W/J4AGoE+t1xT15A==&email=correo@yopmail.com
但实际是
authenticity_token=LzRkqB3M5tXWXZq1axsb9gkhCx3GIAn588RMIkzpRAHqNCkAlCIwMk8pu9jn68Oy1mylI6W%2FJ4AGoE+t1xT15A%3D%3D&email=correo%40yopmail.com
它改变了
=
至%3D
@
至%40
/
至%2F
答案 0 :(得分:0)
取消选中“ URL编码”复选框以避免在“参数”标签下进行编码。
更多参考:-https://jmeter.apache.org/usermanual/component_reference.html#HTTP_Request
随请求发送参数
将生成查询字符串 从您提供的参数列表中。每个参数都有一个名称和 值,对参数进行编码的选项以及包括在内的选项 或排除等号(某些应用程序不希望等号 值是空字符串时,请加上符号)。查询字符串将是 以正确的方式生成,具体取决于“方法”的选择 您完成的操作(即,如果您选择GET或DELETE,则查询字符串将为 附加到网址上(如果为POST或PUT,则将单独发送)。 另外,如果您要使用多部分形式发送文件,则查询 字符串将使用多部分表单规范创建。看到 以下有关参数处理的更多信息。 此外,您可以指定每个参数是否应为URL 编码。如果您不确定这是什么意思,最好是 选择它。如果您的值包含以下字符 那么通常需要编码。
ASCII控制字符非ASCII字符保留字符:URL使用 一些特殊字符,用于定义其语法。当这些 字符没有在URL中以其特殊角色使用,它们需要 要进行编码,例如:'$','&','+',',','/',':',';','=','?', '@'不安全字符:某些字符表示可能 由于各种原因而在URL中被误解了。这些字符 还应该始终进行编码,例如:'','<','>','#','%',...
希望这会有所帮助。