JMeter-前置处理器

前置处理器 

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

这里写图片描述

1. BeanShell PreProcessor 

使用BeanShell在请求进行之前进行操作。语法使用与BeanShell Sampler是一样的。但可使用的内置变量稍有不同  
 

这里写图片描述

  
在线程组中添加2个请求,在HTTP请求2 中添加BeanShell PreProcessor,代码如上图,最终运行结果:  
 

这里写图片描述
  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进行查询  
 

这里写图片描述

3. 用户参数 

可以让变量在每个线程中分别使用不同的值。  
在多线程测试中可以用到。比如创建用户,用户名不能重复,但要使用多线程进行测试,这时可以用到。  
 

这里写图片描述

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

这里写图片描述
这里写图片描述
posted @ 2017-11-28 13:06  春田花花同学会  阅读(1642)  评论(1编辑  收藏  举报