【问题标题】:JMeter XPath validator using contains argument使用包含参数的 JMeter XPath 验证器
【发布时间】:2021-01-25 15:39:54
【问题描述】:

我正在尝试使用 Apache JMeter 5.4 中的 XPath 验证器来提取值并测试使用状态的 JSF 应用程序,但我遇到了一些问题。

以下是我在响应中返回的 XML 示例。在 XML 中,我需要返回 ViewState 值 3760920573413511484:4790185202922842747。但是,ID j_id1:javax.faces.ViewState:0 在每个响应中并不总是相同(例如,“j_id1”可能是“j_id2”)并且可以更改,因此我需要 XPath 来查询当 id 包含 javax.faces.ViewState 并为其返回 ViewState 值。

我希望这是足够的细节。我确实检查过这是否在其他地方得到了回答,但我看不到任何关于使用“包含”的信息。提前致谢。

<partial-response>
    <changes>
        <update id="uploadForm:globalMessages">
            <![CDATA[<div id="uploadForm:globalMessages" class="ui-messages ui-widget" aria-live="polite"></div>]]>
        </update>
        <update id="uploadForm:messages">
            <![CDATA[<div id="uploadForm:messages" class="ui-messages ui-messages-noicon ui-widget" aria-live="polite"></div>]]>
        </update>
        <update id="uploadForm:uploadPanel">
            <![CDATA[<div id="uploadForm:uploadPanel" class="ui-outputpanel ui-widget"></div>]]>
        </update>
        <update id="j_id1:javax.faces.ViewState:0">
            <![CDATA[3760920573413511484:4790185202922842747]]>
        </update>
    </changes>
</partial-response>

【问题讨论】:

    标签: xpath jmeter


    【解决方案1】:

    XPath 带有contains() function,因此您可以对属性值进行部分匹配,例如:

    //update[contains(@id, 'ViewState')]
    

    演示:

    以防万一,考虑迁移到 XPath2 Extractor(如果还没有的话),它比 XPath Extractor 更强大且运行速度更快,请参阅The JMeter XPath2 Extractor: How to Achieve Better Correlations 文章了解更多详细信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-22
      • 2021-04-24
      • 2019-03-11
      相关资源
      最近更新 更多