51Testing软件测试论坛

标题: jmeter 请求中&如何转义& [打印本页]

作者: zhangdizhu    时间: 2014-12-10 17:20
标题: 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
服务器返回的是html代码,那里面的&代表&,java里面\&是非法转义符,把你的那两个反斜杠去掉试试
作者: zhangdizhu    时间: 2014-12-11 08:39
肖德兵 发表于 2014-12-10 23:05
服务器返回的是html代码,那里面的&代表&,java里面\&是非法转义符,把你的那两个反斜杠去掉试试

试过,去掉\也不行,
再问个问题,jmeter中怎么调试这段代码,在调用之前我想先看&是不是替换掉了,变量url中是否保存的是正确的值,
作者: zhangdizhu    时间: 2014-12-16 13:04
String temp = "";
//int i = 1;
temp = vars.get("urls");
vars.put("url",temp.replaceAll("&","&"));

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


作者: fairylly    时间: 2015-3-5 15:04
${__unescapeHtml(“&”)}
会转义为&





欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2