从变量 jMeter beanshell 脚本中检索某些值

Posted

技术标签:

【中文标题】从变量 jMeter beanshell 脚本中检索某些值【英文标题】:Retrieving certain values from a variable jMeter beanshell script 【发布时间】:2016-02-07 22:03:40 【问题描述】:

目前在 jMeter 中开发一个脚本,我需要从响应中检索 x 数量的值,然后将这些值推送到另一个 HTTP 请求中,这是响应的棘手部分是一个总是变化的表(例如,行增加或减少每个运行测试的时间)到目前为止,我已经创建了一个 Regex 提取器,它可以检索表之间的任何内容现在我需要创建一个 beanshell 后处理器,它从 Regex 提取器检索到的变量中检索某些值并将它们应用于 HTTP 请求.我不确定这是否是最好的方法,因此我愿意接受有关另一种方法的建议。

【问题讨论】:

【参考方案1】:
    您需要将 Beanshell PreProcessor 应用于第二个请求,而不是将 PostProcessor 应用于第一个请求 我不认为使用正则表达式来解析 html 是个好主意,我建议改用 CSS/JQuery Extractor 或 XPath Extractor

    一旦您以

    的形式获得所需的值
    var_1=foo
    var_2=bar
    var_MatchNr=2
    

    您将能够将这些值添加到第二个 HTTP 请求中,例如:

    import java.util.Iterator;
    import java.util.Map;
    
    
    Iterator iter = vars.getIterator();
    int counter = 1;
    while (iter.hasNext())
    
       Map.Entry e = (Map.Entry)iter.next();
       if (e.getValue() != null)
       
           if (e.getKey().toString().startsWith("var_") && e.getValue().toString().length() >0)
           
              sampler.addArgument("param" + counter, e.getValue().toString());
              counter++;
           
       
    
    

【讨论】:

以上是关于从变量 jMeter beanshell 脚本中检索某些值的主要内容,如果未能解决你的问题,请参考以下文章

Jmeter - BeanShell常用内置变量及脚本开发

jmeter beanshell里面写了函数怎么调用

JMeter学习-033-JMeter BeanShell 脚本应用实例之参数变量修改

JMeter学习-037-JMeter调试工具之四-BeanShell+jmeter.log

Jmeter之BeanShell变量使用讲解

JMeter之Beanshell用法