zhangdizhu 发表于 2014-12-10 17:20:03

jmeter 请求中&如何转义&

jmeter 请求中&如何转义&

后一个sampler中需要用到前一个sampler 中服务器返回的下载地址
但是返回的地址里面& 显示的是&
直接用这个返回的地址进去请求时,返回空,
所以我想把这个&替换成&
在前一个sampler中加了断言,
在两个sampler之间加了 BeanShell PostProcessor
在后一个sampler中调用
代码如下:
//int num = ${urls_matchNr};
String temp = "";
int i = 1;
temp = vars.get("urls_" + i);
temp.replaceAll("\&","\&");
vars.put("url",temp);

但是运行时,请求中直接发送的是 “${url}”这个字符,而不是希望的地址
请问,是我上面的代码有问题吗,还是其他什么原因??

肖德兵 发表于 2014-12-10 23:05:43

服务器返回的是html代码,那里面的&代表&,java里面\&是非法转义符,把你的那两个反斜杠去掉试试

zhangdizhu 发表于 2014-12-11 08:39:16

肖德兵 发表于 2014-12-10 23:05
服务器返回的是html代码,那里面的&代表&,java里面\&是非法转义符,把你的那两个反斜杠去掉试试

试过,去掉\也不行,
再问个问题,jmeter中怎么调试这段代码,在调用之前我想先看&是不是替换掉了,变量url中是否保存的是正确的值,

zhangdizhu 发表于 2014-12-16 13:04:32

String temp = "";
//int i = 1;
temp = vars.get("urls");
vars.put("url",temp.replaceAll("&","&"));

还有一点注意:执行了替换操作后,源字符串的内容是没有发生改变的.

fairylly 发表于 2015-3-5 15:04:08

${__unescapeHtml(“&”)}
会转义为&
页: [1]
查看完整版本: jmeter 请求中&如何转义&