今天开始jmeter的核心元素processor (preprocessor|postprocessor)
同样的道理在jmeter中每个testelement元素都对应着他的gui,processor也不例外,可以定位到包org.apache.jmeter.processor和org.apache.jmeter.processor.gui
包下面的类全部都是有关于processor这个元素,processor的元素的界面使用到了Jmete的两种界面策略(用到了TestBean和继承AbstractJMeterGuiComponent的实现方式)
前面分析了AbstractJMeterGuiComponent,TestBean后面会独立开篇分析
processor的testelement接口
1 public interface PostProcessor { 2 /** 3 * Provides the PostProcessor with a SampleResult object from which to 4 * extract values for use in future Queries. 5 */ 6 void process(); 7 }
1 public interface PreProcessor { 2 void process(); 3 }
---------------------------------------------------------------现在是Processor元素在engine中的执行情况----------------------------------------------------------------
可以定位到JMeterThread中的process_sampler方法
runPreProcessors(pack.getPreProcessors())
runPostProcessors(pack.getPostProcessors())
可以看到这两行调用
总之,PreProcessor就是在Sampler执行之前进行操作,PostProcessor就是在Sampler执行之后进行后续操作