我正在使用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来做。
- 添加一个Beanshell PostProcessor 作为返回你的TOKEN和XML的请求的子
- 确保Beanshell PostProcessor在XPath Extractor之前
将以下代码放入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
-是包含父采样器响应数据的字节数组 -
substring
和indexOf
-是基本的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