使用Jmeter进行http post时如何提取响应值

时间:2015-12-16 20:51:42

标签: jmeter

有人可以帮我吗?我试图在Jmeter中做一个http帖子,http工作正常,但是我想从响应中提取LastName值以便在下一个http请求中使用。我已经尝试了几种使用Xpath Extractor的方法,但Debug sampler没有显示任何内容。我已经将XPath_Extractor添加为HTTP Sampler的子代。 我在这做错了什么?

以下是我在XPath Extractor中设置的内容

引用名称= lstname(这是我携带到下一个http请求的变量)

XPath Query = // * [local-name()=' LastName'] / text()

也尝试了

/答复/ CustomerData / @名字

检查主样品

使用NameSpaces-checked

检查Ingnore whitepspace

这是我的http回复

<?xml version="1.0" encoding="UTF-8"?>

<dm:reply xmlns:dm="http://www.xx.com/dm" version="1.0">

<Session>

<TimeDate CurrentDateTime="2015-12-16T08:57:21" CurrentMilliseconds="2881062362"/>
<Reply type="Connection">

<ErrorMessage/>
<ErrorCode>0</ErrorCode>
</Reply>

<TimeDate CurrentDateTime="2015-12-16T08:57:21" CurrentMilliseconds="2881062504"/>

<Reply type="Execute">
<CustomerData FirstName="" LastName="Moni" Address="SD" Chassis="AWD" CountryOfBirth="" CountryOfOriginFullName= Year="2010">
<RecordSet>
</RecordSet>
<ErrorMessage/>
<ErrorCode>0</ErrorCode>
</CustomerData>
</Reply>
<TimeDate CurrentDateTime="2015-12-16T08:57:21" CurrentMilliseconds="2881062590"/>
</Session>
</dm:reply>

2 个答案:

答案 0 :(得分:0)

您可以使用正则表达式提取器 - 后处理器来实现此目的。

您需要填写以下参数

  1. 参考名称:LastName
  2. 正则表达式(看起来像):LastName =“(。*?)”
  3. 模板:$ 1 $
  4. 匹配:1
  5. 默认值:NotFound
  6. 在下一个请求中使用$ {LastName}来访问LastName的提取值。 添加调试采样器以检查是否正在提取正确的值。

答案 1 :(得分:0)

为什么你需要所有这些命名空间的东西?

  1. 不要检查提取器中的任何方框
  2. 使用//CustomerData/@LastName作为XPath表达式
  3. 就是这样
  4. XPath Extractor

    顺便说一下,您可以使用View Results Tree侦听器的XPath Tester模式直接针对响应评估XPath表达式。有关深入了解JMeter测试问题的更多提示,请参阅How to debug your Apache JMeter script文章。