如何通过JMeter 5.1.1中的“随请求发送参数”来传递带有特殊字符的参数表

时间:2019-07-17 19:40:15

标签: parameters jmeter httprequest jmeter-plugins jmeter-5.0

我需要使用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

1 个答案:

答案 0 :(得分:0)

取消选中“ URL编码”复选框以避免在“参数”标签下进行编码。

更多参考:-https://jmeter.apache.org/usermanual/component_reference.html#HTTP_Request

  

随请求发送参数

     

将生成查询字符串   从您提供的参数列表中。每个参数都有一个名称和   值,对参数进行编码的选项以及包括在内的选项   或排除等号(某些应用程序不希望等号   值是空字符串时,请加上符号)。查询字符串将是   以正确的方式生成,具体取决于“方法”的选择   您完成的操作(即,如果您选择GET或DELETE,则查询字符串将为   附加到网址上(如果为POST或PUT,则将单独发送)。   另外,如果您要使用多部分形式发送文件,则查询   字符串将使用多部分表单规范创建。看到   以下有关参数处理的更多信息。   此外,您可以指定每个参数是否应为URL   编码。如果您不确定这是什么意思,最好是   选择它。如果您的值包含以下字符   那么通常需要编码。

     

ASCII控制字符非ASCII字符保留字符:URL使用   一些特殊字符,用于定义其语法。当这些   字符没有在URL中以其特殊角色使用,它们需要   要进行编码,例如:'$','&','+',',','/',':',';','=','?',   '@'不安全字符:某些字符表示可能   由于各种原因而在URL中被误解了。这些字符   还应该始终进行编码,例如:'','<','>','#','%',...

不使用编码输出 enter image description here

希望这会有所帮助。