1

如果我有两个相同的标签和相同的属性,唯一的区别是值,我如何提取第二个?

<data xsi:type="soapenc:string">0</data>
<data xsi:type="soapenc:string">1</data>

我试过做以下事情。

<data xsi:type="soapenc:string">0</data><data xsi:type="soapenc:string">(.+?)</data>

并将值分配给 myID。但是当我在脚本中输入 ${myID} 时,它使用的是字符串 "${myID}" 而不是实际值。是不是提取不起作用?或者我需要使用不同的变量吗?

我有一个不同的采样器,我只有一个标签。例如,

<data xsi:type="soapenc:string">0</data>

当我做,

<data xsi:type="soapenc:string">(.+?)</data>

并分配给 myAnotherID,我可以使用 ${myAnotherID} 并且该值将在脚本中使用。

那么,为什么 ${myID} 没有返回值呢?

提前致谢, 蒙特

4

1 回答 1

5

使用单个表达式 - <data xsi:type="soapenc:string">(.+?)</data>- 获取所有匹配项。
如果有多个匹配项,jmeter 将根据您尝试提取的变量名称为每个匹配项生成特定变量 - 例如refName_N:myAnotherID_1, myAnotherID_2, ..., myAnotherID_N 在您的情况下。
然后您可以通过相应的变量(在您的示例中为 myAnotherID_1)引用所需的值。

  • 查看正则表达式提取器参考以获取匹配编号说明。
  • 查看这篇关于使用正则表达式提取器提取和访问一批值的帖子。
  • 您还可以使用Debug SamplerJMeter Variables = true查看在提取一批值时生成的所有变量。
  • 查看这篇文章,以在没有 ForEach 控制器的情况下循环多个 RegExp Extractor 输出值。

希望这可以帮助。

于 2012-05-16T21:45:49.913 回答