如何在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.

来完成
  1. 添加一个 Beanshell 后处理器 作为 child 请求的 returns 你的令牌和 XML
  2. 确保 Beanshell 后处理器 XPath 提取器
  3. 之前
  4. 将以下代码放入 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 采样器响应数据的字节数组
  • substringindexOf - 是基本的 java.lang.String 方法
  • prevSampleResult 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