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

时间:2015-04-04 12:19:15

标签: jquery html regex xpath jmeter

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

我正在测试的网页有很多字段,其中有一些重复的字段。 其中一个字段是具有不同数量选项的选择列表。有时它只有1个选项("默认"),有时它有2个选项("默认""自定义")。为了进一步处理这个请求,我只对那些选项值为" Custom"选择。因此,如果选择列表具有"默认"选择然后我想忽略它。但我想只提取选项" Custom"被选中。在这种情况下,我想提取选择列表名称和选项的值,两者。

页面中的选择列表如下所示:

<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>

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

  • delOpt2 = 218092
  • delOpt3 = 21921

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

我得到了所有选择列表,如:

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

或者我只获得那些被选中的选项

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个选择列表和4个选项但是如何比较哪些选项值属于那些选项为&#34; Custom&#34;为此我如何获得选择名称?

任何有关解决此问题的指示都将受到高度赞赏。

谢谢。

-Hemal

1 个答案:

答案 0 :(得分:1)

我会选择以下XPath表达式:

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

它将返回类似

的内容
option_1=delOpt2
option_2=18902
option_3=delOpt3
option_4=21921

所以奇数将是选择名称和偶数 - 选项值。

有关XPath语言的详细信息,请参阅XPath specificationXPath TutorialUsing the XPath Extractor in JMeter指南。