首页 > 解决方案 > 如何在 jsf Web 应用程序中使用 jmeter 提取元素的随机 ID 值

问题描述

该应用程序是使用 JSF 制作的。我用JMeter代理记录了脚本,效果很好,但是一天后某些字段的id中的数字会发生变化,所以我需要找到一种方法来提取并传递正确的数字。我不太了解如何使用正则表达式,所以我将非常感谢任何帮助。谢谢你。

我需要生成随机图像的参数和值

这是我需要生成随机Div的 HTML 中的 div

<div id="solicitudSteps:j_idt75" class="ui-wizard ui-widget" style="width: 100%;">

编辑

这是我正在使用的Css 选择器

这是我使用Css Selector Tester 测试时返回的结果

标签: testingjsfjmeter

解决方案


看起来这些动态值来自先前的响应作为隐藏输入,因此这是相关性的问题,您可以使用CSS Selector Extractor提取这些动态输入名称以及值作为

  1. 将 CSS Selector Extractor 添加为上一个请求的子项,并将其配置为提取隐藏的输入名称

    在此处输入图像描述

  2. 再添加一个 CSS Selector Extractor 以获取隐藏的输入值:

    在此处输入图像描述

  3. 添加JSR223 PreProcessor作为请求的子项,您需要在其中提供动态输入并将以下代码放入“脚本”区域:

    1.upto(vars.get('hiddenInputName_matchNr') as int, { index ->
        sampler.addArgument(vars.get('hiddenInputName_' + index), vars.get('hiddenInputValue_' + index))
    })
    

    所以整个测试计划结构看起来像:

    在此处输入图像描述

  4. 就是这样,JMeter 应该从之前的响应中提取所有动态输入,并自动将它们添加到当前请求中。


推荐阅读