JMeter-前置处理器

前置处理器


在sampler 执行之前用来修改sampler的,无法直接被“察看结果树”记录

JMeter-前置处理器_第1张图片

1. BeanShell PreProcessor

使用BeanShell在请求进行之前进行操作。语法使用与BeanShell Sampler是一样的。但可使用的内置变量稍有不同
JMeter-前置处理器_第2张图片
在线程组中添加2个请求,在HTTP请求2 中添加BeanShell PreProcessor,代码如上图,最终运行结果:
JMeter-前置处理器_第3张图片

  1. vars:操作Jmeter变量
        a) vars.get(“name”):从jmeter中获得变量值
        b) vars.put(“key”,”value”):保存数据到jmeter变量中,如果变量不存在会自动创建
  2. props: 操作Jmeter属性
        a) props.get(“START.HMS”);  注:START.HMS为属性名
        b) props.put(“PROP1”,”1234”); 保存数据到Jmeter属性中,如果属性不存在会自动创建
  3. log: 记录日志
    比如log.info(“日志信息”); 具体查看: https://www.slf4j.org/api/org/slf4j/Logger.html
  4. ctx: 操作上下文,具体查看:
    http://jmeter.apache.org/api/org/apache/jmeter/threads/JMeterContext.html
  5. prev: 操作前一个请求。注意必须有前一个请求才可用,否则会报错,具体查看:
    http://jmeter.apache.org/api/org/apache/jmeter/samplers/SampleResult.html
  6. sampler: 操作当前请求。具体查看:
    http://jmeter.apache.org/api/org/apache/jmeter/samplers/Sampler.html

2. JDBC PreProcessor

在请求运行之前进行数据库操作。
使用方法与JDBC Request 是一样的。
应用场景,比如在修改用户信息,需要知道用户在修改前的信息,可以使用JDBC PreProcessor进行查询
JMeter-前置处理器_第4张图片

3. 用户参数

可以让变量在每个线程中分别使用不同的值。
在多线程测试中可以用到。比如创建用户,用户名不能重复,但要使用多线程进行测试,这时可以用到。
JMeter-前置处理器_第5张图片

比如,添加一个线程组,线程数设置为2,添加一个“用户参数”(上图),再添加一个BeanShell Sampler来获取用户名(打印到日志)
结果,2个线程分别得到不同的name
用户_1: xiaoming,线程1使用的变量
用户_2: xiaohong,线程2使用的变量
JMeter-前置处理器_第6张图片

JMeter-前置处理器_第7张图片

你可能感兴趣的:(jmeter)