如何从Jmeter中的href链接获取属性值

时间:2015-06-10 23:42:50

标签: html xpath jmeter

我在表格中有一个链接列表。表格中的一个链接如下所示:

<a href="/hix/entity/assisteradmin/viewassisterinformation?assisterId=CSyTid9fDmtJ4OqoMA3mvA">
   A1 Counselor
</a>

在JMeter中的HTML响应中。

我试图通过JMeter从HTML响应的href链接文本中获取assisterId(CSyTid9fDmtJ4OqoMA3mvA)的值。

有人可以帮我解决这个问题吗?

3 个答案:

答案 0 :(得分:1)

我不熟悉JMeter,但从xpath的角度来看,您可以尝试使用substring-after()函数来提取"assisterId="之后发生的文本,如下所示:

substring-after(//a/@href, 'assisterId=')
在上面的HTML片段作为输入的情况下,在xpath tester输出

String='CSyTid9fDmtJ4OqoMA3mvA'

答案 1 :(得分:1)

根据 har07 的回答,您可以使用XPath extractor作为HTTP请求采样器的子项,从中获取链接列表。

XPath提取器的主要缺点是,如果返回Tidy错误,它将无法正常工作。

请考虑使用Regular Expression extractor,因为如果您的正则表达式与服务器返回的HTML响应匹配,它将始终有效。

在您的情况下,正则表达式和其他正则表达式提取器参数将类似于:

  • 参考名称(存储正则表达式匹配的变量):ASSISTER_ID
  • 正则表达式<a href=".*?viewassisterinformation\?assisterId=(.*?)">
  • 模板(要存储在ASSISTER_ID中的正则表达式的捕获组):$1$
  • 匹配编号1
  • 默认值(如果没有匹配项):REGEX_FAILED

如果您要处理列表中的所有链接,请将匹配编号设置为-1,并将其与ForEach Controller一起使用。

答案 2 :(得分:0)

您可以通过Regular Expression Extractor获取此值:

  1. 将正则表达式提取器添加为返回数据片段的请求的子项
  2. 按如下方式配置:

    • 参考名称:任何有意义的内容,即assisterId
    • 正则表达式:<a href="/hix/entity/assisteradmin/viewassisterinformation\?assisterId=(.+?)">
    • 模板:$1$
  3. 您可以在必要时将提取的值${assisterId}
  4. 访问

    有关使用正则表达式在JMeter中进行关联的更多详细信息,请参阅USING REGULAR EXPRESSION EXTRACTOR指南。