我需要得到attr。通过JMeter从html中获取值componentId
和interactionstate
,我尝试使用XPath提取器,但我不能这样做。
<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>
我尝试使用xpath查询:
/html/body/form@[id=UINavigationComposer]/@action
但获得错误:
断言失败消息:/ html / body / form @ [id = UINavigationComposer]; =&GT;对实体“portal:action”的引用必须以';'结尾分隔符。
答案 0 :(得分:2)
我认为你的xpath查询有一点失误。 将 @ 置于 id 属性附近,如下所示
/html/body/form[@id=UINavigationComposer]/@action
或使用类似的东西:
//form[@id='UINavigationComposer']/@action
所以,第一步 - 使用RegEx或Xpath Extractor提取完整的动作值并将其存储在单独的jmeter变量(例如ACTION_TEST)中。
第二步 - 从componentId和interactionstate的变量值中提取。
jmeter 2.5中的RegEx Extractor(自2.3.2以来,afair)具有选项“Apply to ... Jmeter Variable”
您可以在“应用于... Jmeter变量”选项和相应的查询中添加2个额外的RegEx Extractor,每个$ {ACTION_TEST}:
componentId=(.+?);
interactionstate=(.+?);
希望这会奏效。