我的目标是使用Regex从HTML文档中提取具有特定名称的标记的值。代码的相关部分是:
<!-- hidden datas -->
<p class="hidden">
<input type="hidden" name="token" value="6ac2c9b7d56b483ad6b9db051a285637" />
<input type="hidden" name="id_product" value="541" id="product_page_product_id" />
<input type="hidden" name="add" value="1" />
<input type="hidden" name="id_product_attribute" id="idCombination" value="" />
</p>
我需要提取字母数字字符 6ac2c9b7d56b483ad6b9db051a285637 不幸的是,除了通过Regex之外别无他法。
同样的标记也出现在文档的另一部分中。也许在那段代码中提取更容易?
<script type="text/javascript" src="/webshop/js/tools.js"></script>
<script type="text/javascript">
var baseDir = '/webshop/';
var static_token = '6ac2c9b7d56b483ad6b9db051a285637';
var token = '1799f145490151b92137df1493a520cc';
var priceDisplayPrecision = 2;
</script>
答案 0 :(得分:1)
我建议使用XPath Extractor获取它,如下所示:
Reference Name
- 它将成为保存结果的JMeter变量名称,即token
Use Tidy
框在`XPath Query&#34;中使用以下XPath表达式输入:
//input[@name='token']/@value
${token}
。 有关XPath语言的详细信息,请参阅以下资源:
使用Regex也可以工作,但是对于复杂的多行HTML,最好使用XPath或CSS/JQuery提取器。有关说明,请参阅famous answer on StackOverflow。
答案 1 :(得分:0)
以下正则表达式将在第二个示例中捕获令牌:
/var static_token = '([0-9a-f]{32})';/
答案 2 :(得分:0)
使用JMeter的正则表达式提取器组件来提取字符串, 表达式将是,
static_token \= '(\w+)';
Template : $1$
Match no : 1
这应该在指定变量中提取值。
答案 3 :(得分:0)
JMeter文档有一个与您想要实现的内容非常匹配的示例: http://jmeter.apache.org/usermanual/regular_expressions.html
在你的情况下:
<input type="hidden" name="token" value="([^"]+)" />