在 JMETER 中,如何根据特定文本提取 select 名称和选项值

In JMETER, how to extract select name and option value both based on specific text

我遇到了一个问题,需要你的帮助来解决这个问题。

我正在测试的网页有很多字段,其中有一些重复字段。 其中一个字段是 select 列表,其中包含不同数量的选项。有时它只有 1 个选项("Default"),有时它有 2 个选项("Default" 和 "Custom")。为了进一步处理此请求,我只对选项值为 "Custom" selected 的那些 select 列表感兴趣。所以,如果 select 列表有 "Default" selected 那么我想忽略它。但我只想提取选项 "Custom" 为 select 的那些字段。在这种情况下,我想提取 select 列表名称和选项的值。

页面中的 select 列表如下所示:

<select id="delOpt1" name="delOpt1" class="dd">
<option select="selected" value="1406">Default</option>
</select>

<select id="delOpt2" name="delOpt2" class="dd">
<option value="13987">Default</option>
<option selected="selected" value="18902">Custom</option>
</select>

<select id="delOpt3" name="delOpt3" class="dd">
<option value="2101">Default</option>
<option selected="selected" value="21921">Custom</option>
</select>

<select id="delOpt4" name="delOpt4" class="dd">
<option select="selected" value="3232">Default</option>
</select>

所以在这种情况下,我只想提取以下两个:

到目前为止,我只能提取 select 名称或选项值,但不能同时提取两者。我试过 XPath Extractor、CSS/JQuery Extractor 和 Regular Expression Extractor。但是他们一次只能提取 1 个值。即使我使用 2 个不同的提取器并将值存储在 2 个变量中,我也无法将 select 名称与选项值相关联。

我得到了所有 select 列表,例如:

CSS/JQuery Extractor
Reference: delOptSelectName
CSS/JQuery expression: select[class=dd]
Attribute: name
Match No.: 1
Default Value: NOTFOUND

这给了我

Match[1]=delOpt1
Match[2]=delOpt2
Match[3]=delOpt3
Match[4]=delOpt4

我可以获得所有选项值,例如:

CSS/JQuery Extractor
Reference: optionValues
CSS/JQuery expression: select[class=dd] option
Attribute: value
Match No.: 1
Default Value: NOTFOUND

这给了我

Match count: 6
Match[1]=1406
Match[2]=13987
Match[3]=18902
Match[4]=2101
Match[5]=21921
Match[6]=3232

或者我只得到那些 selected

的选项
CSS/JQuery Extractor
Reference: optionValues
CSS/JQuery expression: select[class=dd] option[selected=selected]
Attribute: value
Match No.: 1
Default Value: NOTFOUND

这给了我

Match count: 4
Match[1]=1406
Match[2]=18902
Match[3]=21921
Match[4]=3232

所以现在我有 4 个 select 列表和 4 个选项,但是我如何比较哪些选项值属于那些具有选项 "Custom" 的选项值,为此我如何获得 select名字?

任何解决此问题的建议都将不胜感激。

谢谢。

-血管

我会选择以下 XPath 表达式:

//select/option[text()='Custom']/../@name | //select/option[text()='Custom']/@value

它将return类似于

option_1=delOpt2
option_2=18902
option_3=delOpt3
option_4=21921

所以奇数是 select 名字,偶数是选项值。

有关 XPath 语言的更多信息,请参阅 XPath specification, XPath Tutorial and Using the XPath Extractor in JMeter 指南。