JMeter中的Regex-在模式匹配后捕获特定字段

时间:2018-08-10 07:25:27

标签: regex jmeter expression

对于我在JMeter中的一个HTTP请求,我得到了以下响应:

  <div class="container">
    <h2>Choose your departure city:</h2>
    <form action="reserve.php" method="post">
    <select name="fromPort" class="form-inline">
        <option value="Paris">Paris</option>
        <option value="Philadelphia">Philadelphia</option>
        <option value="Boston">Boston</option>
        <option value="Portland">Portland</option>
        <option value="San Diego">San Diego</option>
        <option value="Mexico City">Mexico City</option>
        <option value="São Paolo">São Paolo</option>
    </select>
    <p>
    <h2>Choose your destination city:</h2>
    <select name="toPort" class="form-inline">
        <option value="Buenos Aires">Buenos Aires</option>
        <option value="Rome">Rome</option>
        <option value="London">London</option>
        <option value="Berlin">Berlin</option>
        <option value="New York">New York</option>
        <option value="Dublin">Dublin</option>
        <option value="Cairo">Cairo</option>
    </select>

现在,我想在两个不同的变量中选择fromPort值以及toPort值,然后将其传递给下一个请求。我构建了regex表达式,但它在单个数组中捕获了fromPort和toPort的所有值。我需要将它们提取为两个不同的数组,然后调用它们。所以我想知道正确的正则表达式??

2 个答案:

答案 0 :(得分:1)

我尝试使用CSS / JQuery Extractor。检查以下快照以获取格式和输出。 下面是“ from port”的,第二个CSS选择器是“ TO port”。只需将第二提取器的CSS表达式从 select [name = fromPort] 更改为 select [name = toPort] enter image description here

在查看结果中输出 enter image description here 现在,您有了数组。 我希望这会有所帮助。

更新:-

对CSS / JQuery提取器使用以下语法。

enter image description here

以下是必需的输出。由于我们将匹配编号设为0,因此每次迭代的值都是随机的。

enter image description here

答案 1 :(得分:0)

提取此类值的最简单方法是使用Xpath Extractor. 将xpath提取器作为子项添加到请求中。 要提取fromPort,您可以将//select[@name='fromPort']/*用作Xpath,并使用match no 0从fromport选项获取任何随机值

要提取toPort,您可以使用//select[@name='toPort']/*并且不匹配0,如下所示

enter image description here

结果: enter image description here 在脚本中使用${variableName}

更多信息:

Jmeter- extract variables

请告诉我是否有帮助。