JMeter正则表达式提取器forEach控制器

时间:2012-05-14 11:05:24

标签: variables jmeter

我正在使用JMeter创建一些测试,情况非常简单,我有一个搜索页面,其中包含结果列表,我必须从此结果中检索一些值,以便在下一个请求中使用。 这些结果大约是350,我不需要它们。

我使用RegexExtractor来检索这些结果并且它可以工作(我将其设置为仅检索10个结果),但现在我不知道如何在LoopCounter中访问结果。 提取器将结果放入名为Result的变量中。

问题在于我不知道如何建立变量的名称。 我是否必须使用像_p()这样的函数? 我只需输入静态名称​​ Result_0_g1

即可访问该变量

在LoopCounter里面,我还推出了一个计数器,用于将循环计数存储到变量索引

谢谢

编辑:

已解决我必须写:

  

$ {__ V(结果_ $ {索引} _g1)

4 个答案:

答案 0 :(得分:5)

您必须使用以下函数引用变量:

${__V(Result_${index}_g1)

答案 1 :(得分:1)

......仅供收藏。
另请参阅this post了解其他实现(不使用ForEach控制器的情况):

ThreadGroup 
    HttpSampler 
        Regex Extractor (variableName = links) 
    WhileController(${__javaScript(${C} < ${links_matchNr})}) 
        HTTPSampler use ${__V(links_${C})} to access the current result 
        Counter (start=1, increment=1, maximum=${links_matchNr}, referenceName=C)

答案 2 :(得分:0)

使用ForEach Controller - 专为此目的而设计,完全符合您的要求。

答案 3 :(得分:0)

您可以使用ForEach Controller

RedirectMatch 302 ^/articles/(.+)$ /article/$1

现在,如果你想迭代到所有组,你需要另一个foreach来做到这一点。如您所知,哪个组代表什么值,您可以这样使用。