如何在jmeter中编辑响应

时间:2015-08-12 09:50:50

标签: xml jmeter

我正在使用Jmeter进行Service Call.I我得到了xml格式的响应。随着xml响应,我也得到了它上面的标题,这不是xml响应的一部分.Below是我得到的响应

TOKEN

<?xml version="1.0" encoding="UTF-8"?>
<xml>
    <URL>https://link.com</URL>
    <ToName>sharnell Kkqwjidzwh</ToName>
    <Link>gsajfgasgfgasjkgfjasgfjgjg</Link>
</xml>

我想提取Link属性的值。我在xpath提取器中尝试了这个路径..

//链接 但它不起作用。我认为这是因为TOKEN标题位于响应之上。任何人都知道我们如何编辑响应并从响应中删除该标题。

先谢谢

2 个答案:

答案 0 :(得分:3)

首先尝试检查Use Tidy框,如果XML / XTML无效,可能会有帮助

如果它没有帮助 - 请参阅下面的解决方法:

如果您需要在<?xml version="1.0" encoding="UTF-8"?>行前删除所有内容,可以通过Beanshell PostProcessor进行删除。

  1. 添加Beanshell PostProcessor 作为返回TOKEN和XML的请求的子项
  2. 确保Beanshell PostProcessor 之前 XPath Extractor
  3. 将以下代码放入Beanshell PostProcessor&#34; Script&#34;面积:

    String originalResponse = new String(data);
    String filteredResponse = originalResponse.substring(originalResponse.indexOf("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"));
    prev.setResponseData(filteredResponse.getBytes());
    
  4. 以上代码将覆盖响应并删除<?xml version="1.0" encoding="UTF-8"?>

    之前的所有内容

    说明:

    • data - 是包含父样本的响应数据的字节数组
    • substringindexOf - 是基本的java.lang.String方法
    • prevSampleResult类的一个实例,它提供对父采样器结果的读/写访问权

    有关JMeter中Beanshell脚本的更多信息,请参阅How to use BeanShell: JMeter's favorite built-in component指南。

答案 1 :(得分:-1)