如何在 JMeter 中通过 XPath Extractor 从响应中提取属性?

发布于 2024-12-11 15:51:18 字数 814 浏览 0 评论 0原文

我需要获取属性。通过 JMeter 从 html 获取值 componentIdinteractionstate,我尝试使用 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

但出现错误:

断言失败消息:/html/body/form@[id=UINavigationComposer]; =>对实体“portal:action”的引用必须以“;”结尾分隔符。

I need get attr. values componentId and interactionstate from html via JMeter, i try with XPath extractor but I can`t do that.

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

I try to use xpath query:

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

but obtain error:

Assertion failure message: /html/body/form@[id=UINavigationComposer];
=> The reference to entity "portal:action" must end with the ';' delimiter.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

眸中客 2024-12-18 15:51:18

我认为你的 xpath 查询有点失误。
@ 放在 id 属性附近,如下所示

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

或使用类似的内容:

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

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

componentId=(.+?);
interactionstate=(.+?);
  1. 提取器从响应中获取完整的操作值 + 保存到变量。
  2. 提取器从变量中获取 componentId 值。
  3. 提取器从变量中获取交互状态值。

希望这会起作用。

I think you have a little lapse in your xpath query.
Put @ near the id attribute like below

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

or use something like this:

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

So, the first step - to extract full action value and store it in separate jmeter variable (e.g. ACTION_TEST), using either RegEx or Xpath Extractor.
The second step - to extract from this variable values for componentId and interactionstate.
RegEx Extractor in jmeter 2.5 (since 2.3.2, afair) has option "Apply to ... Jmeter Variable".
You can add 2 additional RegEx Extractors each with ${ACTION_TEST} in "Apply to ... Jmeter Variable" option and correcponding queries:

componentId=(.+?);
interactionstate=(.+?);
  1. Extractor to get full action value FROM RESPONSE + save to variable.
  2. Extractor to get componentId value FROM VARIABLE.
  3. Extractor to get interactionstate value FROM VARIABLE.

Hope this will work.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文