【问题标题】:How to extract a response value when doing http post using Jmeter使用Jmeter进行http post时如何提取响应值
【发布时间】:2015-12-16 20:51:41
【问题描述】:

有人可以帮我吗?我正在尝试在 Jmeter 中发布 http 帖子,http 工作正常,但我想从响应中提取 LastName 值以在下一个 http 请求中使用。我尝试了几种使用 Xpath Extractor 的方法,但 Debug 采样器什么也没显示。我已将 XPath_Extractor 添加为 HTTP Sampler 的子项。 我在这里做错了什么?

这是我在 XPath 提取器中设置的内容

Reference Name = lstname(这是我携带到下一个http请求的变量)

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

也试过

/Reply/CustomerData/@LastName

检查主样本

使用命名空间 - 检查

选中忽略空格

这是我的 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>

【问题讨论】:

    标签: jmeter


    【解决方案1】:

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

    需要填写以下参数

    1. 参考名称:姓氏
    2. 正则表达式(看起来像):LastName="(.*?)"
    3. 模板:$1$
    4. 匹配:1
    5. 默认值:未找到

    在下一个请求中使用 ${LastName} 来访问 LastName 的提取值。 添加调试采样器以检查您是否提取了正确的值。

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-06-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-11
        • 2019-10-25
        • 2022-08-10
        • 2019-07-31
        相关资源
        最近更新 更多