如何在jmeter中编辑响应



我正在使用Jmeter进行服务呼叫。我得到响应在xml格式。与xml响应,我也得到它上面的标题,这不是xml响应的一部分。下面是我得到的响应

令牌

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

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

<<p> //联系/strong>但这行不通。我认为这是因为响应顶部的TOKEN标题。有人知道我们如何编辑回复并从回复中删除标题吗?

Thanks in Advance

首先尝试检查Use Tidy框,它可能有助于在非有效的XML/xhtml

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

如果你需要去掉<?xml version="1.0" encoding="UTF-8"?>行之前的所有内容,你可以通过Beanshell PostProcessor来做。

  1. 添加一个Beanshell PostProcessor 作为返回你的TOKEN和XML的请求的子
  2. 确保Beanshell PostProcessor在XPath Extractor之前
  3. 将以下代码放入Beanshell PostProcessor的"Script"区域:

    String originalResponse = new String(data);
    String filteredResponse = originalResponse.substring(originalResponse.indexOf("<?xml version="1.0" encoding="UTF-8"?>"));
    prev.setResponseData(filteredResponse.getBytes());
    

上面的代码将覆盖响应并切断<?xml version="1.0" encoding="UTF-8"?>

之前的所有内容

解释:

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

参见如何使用BeanShell: JMeter最喜欢的内置组件指南,了解更多关于在JMeter中使用BeanShell脚本的信息。

如果您只想提取链接值,您可以使用正则表达式提取器。你可以在这里找到一些文档:

http://jmeter.apache.org/usermanual/regular_expressions.html

https://docs.blazemeter.com/customer/portal/articles/1743642

http://www.tutorialspoint.com/jmeter/jmeter_regular_expressions.htm

最新更新