首页 > 解决方案 > 检查条件以从 jmeter 中的 html 响应中提取值

问题描述

我是 JMeter 的新手,我正在 JMeter 上做一个项目。我必须从 HTML 响应中提取值取决于条件。

实际数据:

<li class="size size-item 159103">
<button id="productSizesAndGrid-btn-size-1" class="btn selection-button lowStock" data-skucode="159103" data-size="XS 8/10 " data-in-wishlist="false" data-stock-status-name="Low stock"> XS 8/10 </button>
</li>

我想提取数据代码,但如果 data-stock="In stock"。data-stock 也可能缺货,因此如果数据 In Stock 则只有我想提取该值。

我理解使用正则表达式提取器的简单值提取,但不明白如何做到这一点。

当我使用它时,我意识到存在具有相同属性和类的禁用数据

<li class="size size-item 159108">
<button id="productSizesAndGrid-btn-size-1" class="btn selection-button outOfStock disabled" data-skucode="159108" data-size="XS 8/10 " data-in-wishlist="false" data-stock-status-name="Out of stock"> XS 8/10 </button> 
</li>

编辑:

我尝试使用以下答案:在我的情况下它不起作用

Regular Expression : <button id="btnid" class="btn inStock" data-code="(.*?)"(.*?)data-stock="In stock">
Select the first template $1$

使用 CSS 选择器:

#btnid

这在我的情况下有效,现在问题是我有两个元素,因为两个 id 相同,如何获取特定元素;我想要第二个,因为第一个被禁用。

<button id="product-1" class="btn outOfStock disabled" data-code="123456"  wishlist="false" data-stock="Out of stock" style="" css="1"></button>

<button id="product-1" class="btn inStock" data-code="123123" data-size="XS 8/10 " wishlist="false" data-stock="Low stock" style="" css="2"></button>

如果您在Match No: 2中添加 2 则有效

但我不知道这是否正确!

通过上述解决方案,如果我得到了库存,我仍然没有得到实际的库存元素,那么我的问题就解决了,但我只有临时解决方案;如果有人能告诉我正确的方法,我将不胜感激。

答案:以下为我接受的答案工作:

Match count: 13
Match[1]=
Match[2]=159109
Match[3]=159110
Match[4]=159111
Match[5]=159112
Match[6]=159103
Match[7]=159104
Match[8]=159105
Match[9]=159106
Match[10]=159107
Match[11]=
Match[12]=
Match[13]=

标签: jmeter

解决方案


要实现这一点,请执行以下步骤:

  1. 添加正则表达式提取器作为返回响应的采样器的子项

在此处输入图像描述

  1. 正则表达式提取器设置如下:

    Regular Expression : <button id="btnid" class="btn inStock" data-code="(.*?)"(.*?)data-stock="In stock">
    Select the first template $1$
    

在此处输入图像描述

  1. 它工作的证明

在此处输入图像描述

  1. 之后,您可以${dataCode}在脚本中的任何位置使用。

推荐阅读