Jmeter-如何替换字符串并重新发送?

Jmeter-如何替换字符串并重新发送?,jmeter,Jmeter,我正在尝试创建一个脚本,该脚本将从响应中提取URL并再次发送。 使用正则表达式提取器,我成功地获取了想要的URL,但是当发送请求失败时,它会很自然地保留“&”。 例子: 获取http://[ia-test01.internal-active.mobi:8080/simpleM2M/ClientUpdateStatus?cn=WS2006&v=2_1_0-iOS-2_0_3_7&ci=99999&s=3852719769860497476&cip=113-170-93-111&po=642&re=

我正在尝试创建一个脚本,该脚本将从响应中提取URL并再次发送。 使用正则表达式提取器,我成功地获取了想要的URL,但是当发送请求失败时,它会很自然地保留“&”。 例子: 获取http://[ia-test01.internal-active.mobi:8080/simpleM2M/ClientUpdateStatus?cn=WS2006&v=2_1_0-iOS-2_0_3_7&ci=99999&s=3852719769860497476&cip=113-170-93-111&po=642&re=1<=0&cc=VN&acp=&pcp=]/

我想用一个“&”来代替“&”。 我已经尝试过:${uuu javaScript(${url}.replace(“&“,“&”)} 但它没有起作用。我也尝试过regex函数-同样的。 我不确定请求中的IP字段是否支持USE函数


我目前正在尝试使用beanshell后处理器。但是我很确定我缺少了一个更简单的解决方案。

不确定用
&
替换
&
得到了什么,但是我会尝试做出响应

  • 首先:给定多个
    &
    实例,您需要使用
    replaceall
    函数,而不是replace
  • 第二:replace/replaceall函数以RegEx作为参数,因此需要转义
    &
  • 如果您试图实时替换URL路径,则需要的是,而不是后处理器
  • Beanshell预处理器代码示例

    import java.net.URL;
    
    URL myURL = sampler.getUrl();
    String path = myURL.getPath();
    String path_replaced = path.replaceAll("\\&", "&");
    vars.put("NEW_PATH", path_replaced);
    
    然后将
    ${NEW_PATH}
    放入HTTP请求的“PATH:”部分


    希望这有帮助

    不确定用
    &
    替换
    &
    想要得到什么,但会尝试响应

  • 首先:给定多个
    &
    实例,您需要使用
    replaceall
    函数,而不是replace
  • 第二:replace/replaceall函数以RegEx作为参数,因此需要转义
    &
  • 如果您试图实时替换URL路径,则需要的是,而不是后处理器
  • Beanshell预处理器代码示例

    import java.net.URL;
    
    URL myURL = sampler.getUrl();
    String path = myURL.getPath();
    String path_replaced = path.replaceAll("\\&", "&");
    vars.put("NEW_PATH", path_replaced);
    
    然后将
    ${NEW_PATH}
    放入HTTP请求的“PATH:”部分


    希望这有帮助

    非常感谢。然而,我从最近的经验中看到,要替换一个实际上是RegExp特殊字符的字符,如\“()等,需要加3个反斜杠,而不是1,不是2。这很奇怪

    所以你写

    var res = str.replaceAll("\\\\u003c", "<");              
    

    var res=str.replaceAll(“\\\\u003c)”,“非常感谢。但是,我从最近的经验中看到,要替换一个实际上是RegExp特殊字符的字符,如\“()”等,需要加3个反斜杠,而不是1,而不是2。这很奇怪

    所以你写

    var res = str.replaceAll("\\\\u003c", "<");              
    

    var res=str.replaceAll(“\\\\u003c”),“代码较少的解决方案:

    • 安装

    • 使用以下语法

       ${__strReplace(ImAGoodBoy,Good,Bad,replaceVar)}
      
    • “ImAGoodBoy”是一个字符串,将在其中进行替换

    • “Good”是要替换的子字符串

    • “Bad”是替换字符串

    • “replaceVar”是用于保存结果字符串的变量


    代码更少的解决方案:

    • 安装

    • 使用以下语法

       ${__strReplace(ImAGoodBoy,Good,Bad,replaceVar)}
      
    • “ImAGoodBoy”是一个字符串,将在其中进行替换

    • “Good”是要替换的子字符串

    • “Bad”是替换字符串

    • “replaceVar”是用于保存结果字符串的变量


    你能说清楚你到底在做什么吗?你是否试图在HTTP请求中使用变量并将其替换为值?如果是,你在哪里使用变量?作为服务器名称?或作为路径?或其他?你能说清楚你到底在做什么吗?你是否试图在HTTP请求中使用变量并将其替换为值?如果是,你在哪里使用变量e?作为服务器名?或作为路径?或其他?因此,有4个反斜杠:“\\\\”。双引号有时也会出现这种情况:“”。如此常见:这是Java,伙计们!;)它已经以这种方式工作了20年。因此,有4个反斜杠:“\\\”。双引号有时也会出现:“。如此常见:这是Java,伙计们!;)它已经用了20年了,习惯吧。