4

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

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

问题是我不知道如何动态地构建变量的名称。我必须使用像_p()这样的函数吗?我可以访问变量,只需输入静态名称Result_0_g1

在 LoopCounter 里面我还放了一个 Counter 来将循环计数存储到变量索引中

谢谢

编辑:

解决了我必须写:

${__V(结果_${index}_g1)

4

4 回答 4

5

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

${__V(Result_${index}_g1)
于 2012-05-15T08:50:39.903 回答
1

...只是为了收藏。
另请参阅这篇文章以了解另一种实现(不使用 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)
于 2012-05-18T15:46:09.833 回答
0

使用ForEach 控制器- 它专为此目的而设计,并且完全符合您的要求。

于 2012-05-14T11:16:13.763 回答
0

您可以使用ForEach 控制器

ThreadGroup
    YourSampler
        Regular Expression Extractor (match -1, any template)
    Foreach controller
        Counter(Maximum -> ${Result_matchNr} , Rf Name -> index)
        LinkSamplerUsingParsedData(use -> ${__V(Result_${index}_g1)}

现在,如果您想迭代所有组,则需要另一个 foreach 来执行此操作。正如您知道哪个组代表什么值,您可以使用这种方式。

于 2016-02-13T02:15:27.653 回答