通过 JMeter 正则表达式解析 HTML
我在 JMeter 中的正则表达式方面遇到一些问题。 我有这个 HTML 表单
<form class="UIForm" id="UIComposer" action="/portal/intranet/?portal:componentId=b5914710-6c12-4fa9-9a18-2707d97111b7&interactionstate=JBPNS_rO0ABXcmAAt1aWNvbXBvbmVudAAAAAEAClVJQ29tcG9zZXIAB19fRU9GX18*&portal:type=action" onsubmit="return false;" method="post">
,我需要获取 JMeter 中的 componentId
和 interactionstate
的值作为变量。
I have some trouble with a regex in JMeter.
I have this form in HTML
<form class="UIForm" id="UIComposer" action="/portal/intranet/?portal:componentId=b5914710-6c12-4fa9-9a18-2707d97111b7&interactionstate=JBPNS_rO0ABXcmAAt1aWNvbXBvbmVudAAAAAEAClVJQ29tcG9zZXIAB19fRU9GX18*&portal:type=action" onsubmit="return false;" method="post">
and I need to get the values of componentId
and interactionstate
in JMeter, as variables.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
请改用 XPath 提取器。
如果您必须使用正则表达式,只需搜索正则表达式标记解析。
Use an XPath Extractor instead.
If you must use a regex, just search for regex tag parsing.
Jmeter 使用 PERL 正则表达式来提取值并将其存储到变量中。
这是学习如何编写它们的绝佳资源:http://www.regular-expressions.info/
这是 Jmeter 用户手册的链接:http://jmeter.apache.org/usermanual/component_reference.html#Regular_Expression_Extractor
在 Jmeter 中,确保在要存储到变量中的项目两边加上括号 ()。鉴于您是 JMeter 的新手,我建议您使用两个正则表达式 - 每一项一个。这将使您更容易跟踪和调试。您最终会得到如下表达式:
componentId=(.+?);
Jmeter uses PERL regular expressions to extract and store values into variables.
Here is a great resource for learning how to write them: http://www.regular-expressions.info/
Here's the link for the Jmeter user manual: http://jmeter.apache.org/usermanual/component_reference.html#Regular_Expression_Extractor
In Jmeter, make sure you put parentheses () around the items you want to store to the variable. Given you're new to JMeter, I would recommend having TWO regular expressions - one for each item. This will make it easier for you to track and debug. You'll end up with expressions like:
componentId=(.+?);
请不要使用正则表达式来获取属性值。在字符转义方面存在很多极端情况,因此有时可能会崩溃。研究 XML 处理 API,例如 SAX、StAX、DOM 或 XSLT。请注意,这要求 HTML 兼容 XML(如果涵盖了 XHTML)。
一旦通过合适的 API 获取了操作属性的值,您就可以对其使用正则表达式。
或者,了解是否可以通过 Servlet API 或类似的方式利用已有的内容来处理 HTTP posts/gets。他们将 URL 参数放置在映射中以供检索。
Please don't use regular expressions for getting attribute values. There's so many corner cases in terms of character escaping and such that it's likely to break sometime. Look into XML processing APIs, like SAX, StAX, DOM or XSLT. Do mind that this requires the HTML to be XML compliant (if it's XHTML that's covered).
Once you get the value of your action attribute via a suitable API, you can then unleash regular expressions on it.
Alternatively, find out if you can somehow harness what already exists for handling HTTP posts/gets via the Servlet API or something similar. They place URL parameters in a map for retrieval.