如何在JMeter中使用XPath Extractor从响应中提取属性?

xvw2m8pv  于 2023-03-23  发布在  其他
关注(0)|答案(1)|浏览(107)

我需要得到属性值componentIdinteractionstate从HTML通过JMeter,我尝试与XPath提取器,但我不能这样做。

<html>
    <body>
        ...
        <form ...>
        <form class="UIForm" id="UINavigationComposer" action="/portal/intranet/home?portal:componentId=d934d0f3-d465-4c1d-880a-45f54b3c48e2&amp;interactionstate=JBPNS_rO0ABXcwAAt1aWNvbXBvbmVudAAAAAEAFFVJTmF2aWdhdGlvbkNvbXBvc2VyAAdfX0VPRl9f&amp;portal:type=action" method="post">
        <form ...>
        ...
    </body>
</html>

我尝试使用xpath查询:

/html/body/form@[id=UINavigationComposer]/@action

但获得错误:
Assert失败消息:/html/body/form@[id=UINavigationComposer];=〉对实体“portal:action”的引用必须以';'分隔符。

wi3ka0sx

wi3ka0sx1#

我认为您在xpath查询中有一点小失误。在id属性附近放置**@**,如下所示

/html/body/form[@id=UINavigationComposer]/@action

或者使用类似这样的东西:

//form[@id='UINavigationComposer']/@action

因此,第一步-使用RegEx或Xpath Extractor提取完整的action值并将其存储在单独的jmeter变量(例如ACTION_TEST)中。
第二步-从该变量中提取componentId和interactionstate的值。
jmeter 2.5中的RegEx Extractor(自2.3.2起,afair)具有“应用于... Jmeter变量”选项。
您可以添加2个额外的RegEx提取器,每个提取器在“应用于... Jmeter变量”选项中具有${ACTION_TEST}并更正查询:

componentId=(.+?);
interactionstate=(.+?);

1.提取器从RESPONSE获取完整的操作值+保存到变量。
1.提取器从VARIABLE获取componentId值。
1.提取器从VARIABLE中获取interactionstate值。
希望这能管用。

相关问题