如何在jmeter中编辑响应
How to edit response in jmeter
我正在使用 Jmeter 服务 Call.I 在 xml format.With xml 响应中得到响应,我也在它上面得到标题,这不是xml response.Below 是我得到的回复
令牌
<?xml version="1.0" encoding="UTF-8"?>
<xml>
<URL>https://link.com</URL>
<ToName>sharnell Kkqwjidzwh</ToName>
<Link>gsajfgasgfgasjkgfjasgfjgjg</Link>
</xml>
我想提取 Link 的值 attribute.I 在 xpath 提取器中尝试了这个路径..
//Link
但这并不是 working.I 认为这是因为 response.Do 顶部的 TOKEN 标题 任何人都知道我们如何编辑响应并从响应中删除该标题。
提前致谢
首先尝试选中 Use Tidy
框,这可能有助于 non-valid XML/XTML
如果没有帮助 - 请参阅以下解决方法:
如果您需要删除 <?xml version="1.0" encoding="UTF-8"?>
行之前的所有内容,您可以通过 Beanshell PostProcessor.
来完成
- 添加一个 Beanshell 后处理器 作为 child 请求的 returns 你的令牌和 XML
- 确保 Beanshell 后处理器在 XPath 提取器
之前
将以下代码放入 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
- 是包含 parent 采样器响应数据的字节数组
substring
和 indexOf
- 是基本的 java.lang.String 方法
prev
是 SampleResult class 的一个实例,它提供 read/write 访问 parent 采样器的结果
有关 JMeter 中 Beanshell 脚本的更多信息,请参阅 How to use BeanShell: JMeter's favorite built-in component 指南。
如果只想提取 Link 值,可以使用正则表达式提取器。在这里您可以找到一些文档:
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
我正在使用 Jmeter 服务 Call.I 在 xml format.With xml 响应中得到响应,我也在它上面得到标题,这不是xml response.Below 是我得到的回复
令牌
<?xml version="1.0" encoding="UTF-8"?>
<xml>
<URL>https://link.com</URL>
<ToName>sharnell Kkqwjidzwh</ToName>
<Link>gsajfgasgfgasjkgfjasgfjgjg</Link>
</xml>
我想提取 Link 的值 attribute.I 在 xpath 提取器中尝试了这个路径..
//Link 但这并不是 working.I 认为这是因为 response.Do 顶部的 TOKEN 标题 任何人都知道我们如何编辑响应并从响应中删除该标题。
提前致谢
首先尝试选中 Use Tidy
框,这可能有助于 non-valid XML/XTML
如果没有帮助 - 请参阅以下解决方法:
如果您需要删除 <?xml version="1.0" encoding="UTF-8"?>
行之前的所有内容,您可以通过 Beanshell PostProcessor.
- 添加一个 Beanshell 后处理器 作为 child 请求的 returns 你的令牌和 XML
- 确保 Beanshell 后处理器在 XPath 提取器 之前
将以下代码放入 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
- 是包含 parent 采样器响应数据的字节数组substring
和indexOf
- 是基本的 java.lang.String 方法prev
是 SampleResult class 的一个实例,它提供 read/write 访问 parent 采样器的结果
有关 JMeter 中 Beanshell 脚本的更多信息,请参阅 How to use BeanShell: JMeter's favorite built-in component 指南。
如果只想提取 Link 值,可以使用正则表达式提取器。在这里您可以找到一些文档:
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